vserver 2.0 rc7
[linux-2.6.git] / drivers / media / video / saa7134 / saa7134-cards.c
index 53bce03..c51eb7f 100644 (file)
@@ -1,5 +1,6 @@
+
 /*
- * $Id: saa7134-cards.c,v 1.35 2004/11/07 14:44:59 kraxel Exp $
+ * $Id: saa7134-cards.c,v 1.54 2005/03/07 12:01:51 kraxel Exp $
  *
  * device driver for philips saa7134 based TV cards
  * card-specific stuff.
@@ -156,11 +157,11 @@ struct saa7134_board saa7134_boards[] = {
                        .gpio = 0x8000,
                },
        },
-       [SAA7134_BOARD_FLYTVPLATINUM] = {
+       [SAA7134_BOARD_FLYTVPLATINUM_MINI] = {
                /* "Arnaud Quette" <aquette@free.fr> */
-               .name           = "LifeView FlyTV Platinum",
+               .name           = "LifeView FlyTV Platinum Mini",
                .audio_clock    = 0x00200000,
-               .tuner_type     = TUNER_PHILIPS_SECAM,
+               .tuner_type     = TUNER_PHILIPS_TDA8290,
                .inputs         = {{
                        .name = name_tv,
                        .vmux = 1,
@@ -176,6 +177,47 @@ struct saa7134_board saa7134_boards[] = {
                        .amux = LINE2,
                }},
        },
+       [SAA7134_BOARD_FLYTVPLATINUM_FM] = {
+               /* LifeView FlyTV Platinum FM (LR214WF) */
+               /* "Peter Missel <peter.missel@onlinehome.de> */
+               .name           = "LifeView FlyTV Platinum FM",
+               .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_PHILIPS_TDA8290,
+               .gpiomask       = 0x1E000,      /* Set GP16 and unused 15,14,13 to Output */
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = TV,
+                       .gpio = 0x10000,        /* GP16=1 selects TV input */
+                       .tv   = 1,
+                },{
+/*                     .name = name_tv_mono,
+                       .vmux = 1,
+                       .amux = LINE2,
+                       .gpio = 0x0000,
+                       .tv   = 1,
+               },{
+*/                     .name = name_comp1,     /* Composite signal on S-Video input */
+                       .vmux = 0,
+                       .amux = LINE2,
+//                     .gpio = 0x4000,
+               },{
+                       .name = name_comp2,     /* Composite input */
+                       .vmux = 3,
+                       .amux = LINE2,
+//                     .gpio = 0x4000,
+               },{
+                       .name = name_svideo,    /* S-Video signal on S-Video input */
+                       .vmux = 8,
+                       .amux = LINE2,
+//                     .gpio = 0x4000,
+               }},
+               .radio = {
+                       .name = name_radio,
+                       .amux = TV,
+                       .gpio = 0x00000,        /* GP16=0 selects FM radio antenna */
+               },
+       },
        [SAA7134_BOARD_EMPRESS] = {
                /* "Gert Vervoort" <gert.vervoort@philips.com> */
                .name           = "EMPRESS",
@@ -436,6 +478,7 @@ struct saa7134_board saa7134_boards[] = {
                .audio_clock    = 0x00187de7,
                .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
                .tda9887_conf   = TDA9887_PRESENT,
+               .mpeg           = SAA7134_MPEG_DVB,
                .inputs = {{
                        .name   = name_tv,
                        .vmux   = 1,
@@ -444,11 +487,11 @@ struct saa7134_board saa7134_boards[] = {
                },{
                        .name   = name_comp1,
                        .vmux   = 0,
-                       .amux   = LINE2,
+                       .amux   = LINE1,
                },{
                        .name   = name_svideo,
                        .vmux   = 8,
-                       .amux   = LINE2,
+                       .amux   = LINE1,
                }},
                .radio = {
                        .name   = name_radio,
@@ -544,6 +587,34 @@ struct saa7134_board saa7134_boards[] = {
                         .amux = LINE1,
                 },
        },
+       [SAA7135_BOARD_ASUSTeK_TVFM7135] = {
+                .name           = "ASUS TV-FM 7135",
+                .audio_clock    = 0x00187de7,
+                .tuner_type     = TUNER_PHILIPS_TDA8290,
+               .gpiomask       = 0x200000,
+                .inputs         = {{
+                        .name = name_tv,
+                        .vmux = 1,
+                        .amux = TV,
+                       .gpio = 0x0000,
+                        .tv   = 1,
+                },{
+                        .name = name_comp1,
+                        .vmux = 4,
+                        .amux = LINE2,
+                       .gpio = 0x0000,
+                },{
+                        .name = name_svideo,
+                        .vmux = 6,
+                        .amux = LINE2,
+                       .gpio = 0x0000,
+                }},
+                .radio = {
+                        .name = name_radio,
+                        .amux = TV,
+                       .gpio = 0x200000,
+                },
+       },
        [SAA7134_BOARD_VA1000POWER] = {
                 .name           = "AOPEN VA1000 POWER",
                .audio_clock    = 0x00187de7,
@@ -749,7 +820,7 @@ struct saa7134_board saa7134_boards[] = {
                },{
                        .name = name_tv,
                        .vmux = 3,
-                       .amux = LINE2,
+                       .amux = TV,
                        .tv   = 1,
                }},
                .mpeg      = SAA7134_MPEG_EMPRESS,
@@ -828,6 +899,10 @@ struct saa7134_board saa7134_boards[] = {
                        .name = name_radio,
                        .amux = LINE2,
                },
+               .mute = {
+                       .name = name_mute,
+                        .amux = LINE1,
+               },
        },
        [SAA7134_BOARD_MANLI_MTV001] = {
                /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
@@ -975,6 +1050,9 @@ struct saa7134_board saa7134_boards[] = {
                .inputs         = {{
                        .name = name_comp1,
                        .vmux = 3,
+               },{
+                       .name = name_svideo,
+                       .vmux = 8,
                }},
        },
         [SAA7134_BOARD_NOVAC_PRIMETV7133] = {
@@ -995,11 +1073,12 @@ struct saa7134_board saa7134_boards[] = {
                         .vmux = 8,
                 }},
         },
-       [SAA7134_BOARD_AVERMEDIA_305] = {
-               .name           = "AverMedia 305",
+       [SAA7134_BOARD_AVERMEDIA_STUDIO_305] = {
+               .name           = "AverMedia AverTV Studio 305",
                .audio_clock    = 0x00187de7,
-               .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+               .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
                .tda9887_conf   = TDA9887_PRESENT,
+               .gpiomask = 0x3,
                .inputs         = {{
                        .name = name_tv,
                        .vmux = 1,
@@ -1104,23 +1183,23 @@ struct saa7134_board saa7134_boards[] = {
                         .name = name_svideo,
                         .vmux = 8,
                         .amux = LINE1,
-                       .gpio = 0x00080
+                       .gpio = 0x00080,
                 },{
                         .name = name_comp1,
                         .vmux = 3,
                         .amux = LINE1,
-                       .gpio = 0x00080
+                       .gpio = 0x00080,
                 },{
                         .name = name_tv,
                         .vmux = 1,
-                        .amux = LINE2,
+                        .amux = LINE2_LEFT,
                         .tv   = 1,
-                       .gpio = 0x00080
+                       .gpio = 0x00080,
                 }},
                .radio = {
-                        .name = name_radio,
-                        .amux = LINE2,
-                       .gpio = 0x80000
+                       .name = name_radio,
+                       .amux = LINE2,
+                       .gpio = 0x80000,
                 },
                .mute = {
                        .name = name_mute,
@@ -1129,20 +1208,19 @@ struct saa7134_board saa7134_boards[] = {
                },
         },
         [SAA7134_BOARD_SABRENT_SBTTVFM] = {
-               /* Michael Rodriguez-Torrent */
+               /* Michael Rodriguez-Torrent <mrtorrent@asu.edu> */
                 .name           = "Sabrent SBT-TVFM (saa7130)",
                 .audio_clock    = 0x00187de7,
                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
-               .tda9887_conf   = TDA9887_PRESENT,
                 .inputs         = {{
+                       .name = name_comp1,
+                       .vmux = 1,
+                       .amux = LINE2,
+               },{
                         .name = name_tv,
                         .vmux = 3,
                         .amux = LINE2,
                         .tv   = 1,
-                },{
-                        .name = name_comp1,
-                        .vmux = 1,
-                        .amux = LINE2,
                 },{
                         .name = name_svideo,
                         .vmux = 8,
@@ -1208,32 +1286,41 @@ struct saa7134_board saa7134_boards[] = {
                 }
        },
         [SAA7134_BOARD_AVERMEDIA_307] = {
-               /* Nickolay V. Shmyrev <nshmyrev@yandex.ru> */
+               /*
+               Nickolay V. Shmyrev <nshmyrev@yandex.ru>
+               Lots of thanks to Andrey Zolotarev <zolotarev_andrey@mail.ru>
+               */
                .name           = "Avermedia AVerTV Studio 307",
                .audio_clock    = 0x00187de7,
-               .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+               .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
                .tda9887_conf   = TDA9887_PRESENT,
+               .gpiomask       = 0x03,
                .inputs         = {{
                        .name = name_tv,
                        .vmux = 1,
                        .amux = TV,
                        .tv   = 1,
+                       .gpio = 0x00,
                },{
                        .name = name_comp1,
                        .vmux = 0,
                        .amux = LINE2,
+                       .gpio = 0x00,
                },{
                        .name = name_comp2,
                        .vmux = 3,
                        .amux = LINE2,
+                       .gpio = 0x00,
                },{
                        .name = name_svideo,
                        .vmux = 8,
                        .amux = LINE2,
+                       .gpio = 0x00,
                }},
                .radio = {
                        .name = name_radio,
-                       .amux = TV,
+                       .amux = LINE1,
+                       .gpio = 0x01,
                },
         },
        [SAA7134_BOARD_AVERMEDIA_CARDBUS] = {
@@ -1263,10 +1350,17 @@ struct saa7134_board saa7134_boards[] = {
        [SAA7134_BOARD_CINERGY400_CARDBUS] = {
                .name           = "Terratec Cinergy 400 mobile",
                .audio_clock    = 0x187de7,
-               .tuner_type     = UNSET /* not supported yet :/ */,
+               .tuner_type     = TUNER_ALPS_TSBE5_PAL,
+               .tda9887_conf   = TDA9887_PRESENT,
                .inputs         = {{
                                .name = name_tv,
-                       .vmux = 5,
+                       .vmux = 1,
+                       .amux = TV,
+                       .tv   = 1,
+               },{
+                       .name = name_tv_mono,
+                       .vmux = 1,
+                       .amux = LINE2,
                        .tv   = 1,
                 },{
                         .name = name_comp1,
@@ -1274,8 +1368,182 @@ struct saa7134_board saa7134_boards[] = {
                         .amux = LINE1,
                 },{
                         .name = name_svideo,
+                        .vmux = 8,
+                        .amux = LINE1,
+               }},
+       },
+       [SAA7134_BOARD_CINERGY600_MK3] = {
+                .name           = "Terratec Cinergy 600 TV MK3",
+                .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+               .tda9887_conf   = TDA9887_PRESENT,
+                .inputs         = {{
+                        .name = name_tv,
+                        .vmux = 1,
+                        .amux = TV,
+                        .tv   = 1,
+                },{
+                        .name = name_comp1,
                         .vmux = 4,
                         .amux = LINE1,
+                },{
+                        .name = name_svideo,
+                        .vmux = 8,
+                        .amux = LINE1,
+                },{
+                        .name = name_comp2, // CVideo over SVideo Connector
+                        .vmux = 0,
+                        .amux = LINE1,
+                }},
+               .radio = {
+                       .name = name_radio,
+                       .amux = LINE2,
+               },
+        },
+       [SAA7134_BOARD_VIDEOMATE_GOLD_PLUS] = {
+               /* Dylan Walkden <dylan_walkden@hotmail.com> */
+               .name           = "Compro VideoMate Gold+ Pal",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_PHILIPS_PAL,
+               .gpiomask       = 0x1ce780,
+               .inputs         = {{
+                       .name = name_svideo,
+                       .vmux = 0,              // CVideo over SVideo Connector - ok?
+                       .amux = LINE1,
+                       .gpio = 0x008080,
+               },{
+                       .name = name_comp1,
+                       .vmux = 3,
+                       .amux = LINE1,
+                       .gpio = 0x008080,
+               },{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = TV,
+                       .tv   = 1,
+                       .gpio = 0x008080,
+               }},
+               .radio = {
+                       .name = name_radio,
+                       .amux = LINE2,
+                       .gpio = 0x80000,
+               },
+               .mute = {
+                       .name = name_mute,
+                       .amux = LINE2,
+                       .gpio = 0x0c8000,
+               },
+       },
+       [SAA7134_BOARD_PINNACLE_300I_DVBT_PAL] = {
+                .name           = "Pinnacle PCTV 300i DVB-T + PAL",
+                .audio_clock    = 0x00187de7,
+                .tuner_type     = TUNER_MT2032,
+                .tda9887_conf   = TDA9887_PRESENT | TDA9887_INTERCARRIER,
+               .mpeg           = SAA7134_MPEG_DVB,
+                .inputs         = {{
+                        .name = name_tv,
+                        .vmux = 3,
+                        .amux = TV,
+                        .tv   = 1,
+                },{
+                        .name = name_comp1,
+                        .vmux = 0,
+                        .amux = LINE2,
+                },{
+                        .name = name_comp2,
+                        .vmux = 1,
+                        .amux = LINE2,
+                },{
+                        .name = name_svideo,
+                        .vmux = 8,
+                        .amux = LINE2,
+                }},
+        },
+       [SAA7134_BOARD_PROVIDEO_PV952] = {
+               /* andreas.kretschmer@web.de */
+               .name           = "ProVideo PV952",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
+               .tda9887_conf   = TDA9887_PRESENT,
+               .inputs         = {{
+                       .name = name_comp1,
+                       .vmux = 0,
+                       .amux = LINE1,
+               },{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = TV,
+                       .tv   = 1,
+               },{
+                       .name = name_tv_mono,
+                       .vmux = 1,
+                       .amux = LINE2,
+                       .tv   = 1,
+               }},
+               .radio = {
+                       .name = name_radio,
+                       .amux = LINE2,
+               },
+       },
+       [SAA7134_BOARD_AVERMEDIA_305] = {
+               /* much like the "studio" version but without radio
+                * and another tuner (sirspiritus@yandex.ru) */
+               .name           = "AverMedia AverTV/305",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_PHILIPS_FQ1216ME,
+               .tda9887_conf   = TDA9887_PRESENT,
+               .gpiomask = 0x3,
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = LINE2,
+                       .tv   = 1,
+               },{
+                       .name = name_comp1,
+                       .vmux = 0,
+                       .amux = LINE2,
+               },{
+                       .name = name_comp2,
+                       .vmux = 3,
+                       .amux = LINE2,
+               },{
+                       .name = name_svideo,
+                       .vmux = 8,
+                       .amux = LINE2,
+               }},
+               .mute = {
+                        .name = name_mute,
+                        .amux = LINE1,
+               },
+       },
+       [SAA7134_BOARD_FLYDVBTDUO] = {
+               /* LifeView FlyDVB-T DUO */
+               /* "Nico Sabbi <nsabbi@tiscali.it> */
+               .name           = "LifeView FlyDVB-T DUO",
+               .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_PHILIPS_TDA8290,
+//             .gpiomask       = 0xe000,
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = TV,
+//                     .gpio = 0x0000,
+                       .tv   = 1,
+                },{
+                       .name = name_comp1,     /* Composite signal on S-Video input */
+                       .vmux = 0,
+                       .amux = LINE2,
+//                     .gpio = 0x4000,
+               },{
+                       .name = name_comp2,     /* Composite input */
+                       .vmux = 3,
+                       .amux = LINE2,
+//                     .gpio = 0x4000,
+               },{
+                       .name = name_svideo,    /* S-Video signal on S-Video input */
+                       .vmux = 8,
+                       .amux = LINE2,
+//                     .gpio = 0x4000,
                }},
        },
 };
@@ -1321,6 +1589,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
                 .subvendor    = 0x153B,
                 .subdevice    = 0x1143,
                 .driver_data  = SAA7134_BOARD_CINERGY600,
+        },{
+                .vendor       = PCI_VENDOR_ID_PHILIPS,
+                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+                .subvendor    = 0x153B,
+                .subdevice    = 0x1158,
+                .driver_data  = SAA7134_BOARD_CINERGY600_MK3,
         },{
                .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
@@ -1349,8 +1623,20 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
                .subvendor    = 0x5168,
-               .subdevice    = 0x0212,
-               .driver_data  = SAA7134_BOARD_FLYTVPLATINUM,
+               .subdevice    = 0x0212, /* minipci, LR212 */
+               .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
+        },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
+               .subdevice    = 0x0214, /* Standard PCI, LR214WF */
+               .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
+        },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x1489, /* KYE */
+               .subdevice    = 0x0214, /* Genius VideoWonder ProTV */
+               .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
         },{
                .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
@@ -1375,6 +1661,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
                 .subdevice    = 0x4842,
                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
+       },{
+                .vendor       = PCI_VENDOR_ID_PHILIPS,
+                .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+                .subvendor    = PCI_VENDOR_ID_ASUSTEK,
+                .subdevice    = 0x4845,
+                .driver_data  = SAA7135_BOARD_ASUSTeK_TVFM7135,
        },{
                 .vendor       = PCI_VENDOR_ID_PHILIPS,
                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
@@ -1452,6 +1744,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
                 .subdevice    = 0x2115,
+               .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+                .subvendor    = 0x1461, /* Avermedia Technologies Inc */
+                .subdevice    = 0x2108,
                .driver_data  = SAA7134_BOARD_AVERMEDIA_305,
        },{
                .vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -1483,8 +1781,8 @@ struct pci_device_id saa7134_pci_tbl[] = {
                 .vendor       = PCI_VENDOR_ID_PHILIPS,
                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
                 .subvendor    = 0x11bd,
-                .subdevice    = 0x002d, /* 300i DVB-T + PAL */
-                .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
+                .subdevice    = 0x002d,
+                .driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
         },{
                 .vendor       = PCI_VENDOR_ID_PHILIPS,
                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
@@ -1509,20 +1807,43 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subvendor    = 0x153B,
                .subdevice    = 0x1152,
                .driver_data  = SAA7134_BOARD_CINERGY200,
-
        },{
                .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
                 .subvendor    = 0x185b,
                 .subdevice    = 0xc100,
                .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
-
        },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
+                .subvendor    = 0x1131,
+                .subdevice    = 0,
+               .driver_data  = SAA7134_BOARD_SABRENT_SBTTVFM,
+       },{
                .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
-               .subvendor    = 0x1461, /* Avermedia Technologies Inc */
-               .subdevice    = 0x9715,
+               .subvendor    = 0x1461, /* Avermedia Technologies Inc */
+               .subdevice    = 0x9715,
                .driver_data  = SAA7134_BOARD_AVERMEDIA_307,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+               .subvendor    = 0x185b,
+               .subdevice    = 0xc200,
+               .driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
+        },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+               .subvendor    = 0x1540,
+               .subdevice    = 0x9524,
+               .driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
+
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x5168,
+               .subdevice    = 0x0306,
+               .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
 
        },{
                /* --- boards without eeprom + subsystem ID --- */
@@ -1631,16 +1952,20 @@ int saa7134_board_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_FLYVIDEO2000:
        case SAA7134_BOARD_FLYVIDEO3000:
                dev->has_remote = 1;
-               /* fall throuth */
-       case SAA7134_BOARD_FLYTVPLATINUM:
                board_flyvideo(dev);
                break;
+       case SAA7134_BOARD_FLYTVPLATINUM_FM:
        case SAA7134_BOARD_CINERGY400:
        case SAA7134_BOARD_CINERGY600:
+       case SAA7134_BOARD_CINERGY600_MK3:
        case SAA7134_BOARD_ECS_TVP3XP:
        case SAA7134_BOARD_ECS_TVP3XP_4CB5:
        case SAA7134_BOARD_MD2819:
+       case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
+       case SAA7134_BOARD_AVERMEDIA_305:
        case SAA7134_BOARD_AVERMEDIA_307:
+//     case SAA7134_BOARD_SABRENT_SBTTVFM:  /* not finished yet */
+       case SAA7134_BOARD_VIDEOMATE_TV_PVR:
                dev->has_remote = 1;
                break;
        case SAA7134_BOARD_AVACSSMARTTV:
@@ -1656,8 +1981,13 @@ int saa7134_board_init1(struct saa7134_dev *dev)
                /* power-up tuner chip */
                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
+               msleep(1);
                break;
        }
+       if (dev->has_remote)
+               dev->irq2_mask |= (SAA7134_IRQ2_INTE_GPIO18  |
+                                  SAA7134_IRQ2_INTE_GPIO18A |
+                                  SAA7134_IRQ2_INTE_GPIO16  );
        return 0;
 }
 
@@ -1676,6 +2006,7 @@ int saa7134_board_init2(struct saa7134_dev *dev)
                        : SAA7134_BOARD_BMK_MPEX_TUNER;
                if (board == dev->board)
                        break;
+               dev->board = board;
                printk("%s: board type fixup: %s\n", dev->name,
                       saa7134_boards[dev->board].name);
                dev->tuner_type = saa7134_boards[dev->board].tuner_type;