Pull acpi_bus_register_driver into release branch
[pandora-kernel.git] / drivers / media / video / saa7134 / saa7134-cards.c
index 4071313..86eae35 100644 (file)
@@ -208,7 +208,7 @@ struct saa7134_board saa7134_boards[] = {
        [SAA7134_BOARD_FLYTVPLATINUM_FM] = {
                /* LifeView FlyTV Platinum FM (LR214WF) */
                /* "Peter Missel <peter.missel@onlinehome.de> */
-               .name           = "LifeView FlyTV Platinum FM",
+               .name           = "LifeView FlyTV Platinum FM / Gold",
                .audio_clock    = 0x00200000,
                .tuner_type     = TUNER_PHILIPS_TDA8290,
                .radio_type     = UNSET,
@@ -536,7 +536,7 @@ struct saa7134_board saa7134_boards[] = {
                .radio = {
                        .name = name_radio,
                        .amux = LINE2,
-       },
+               },
        },
        [SAA7134_BOARD_MD7134] = {
                .name           = "Medion 7134",
@@ -2028,7 +2028,7 @@ struct saa7134_board saa7134_boards[] = {
        [SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
                .name           = "FlyTV mini Asus Digimatrix",
                .audio_clock    = 0x00200000,
-               .tuner_type     = TUNER_LG_NTSC_TALN_MINI,
+               .tuner_type     = TUNER_LG_TALN,
                .radio_type     = UNSET,
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
@@ -2660,7 +2660,7 @@ struct saa7134_board saa7134_boards[] = {
                .mpeg           = SAA7134_MPEG_DVB,
                .inputs = {{
                        .name   = name_comp1,
-                       .vmux   = 0,
+                       .vmux   = 1,
                        .amux   = LINE1,
                },{
                        .name   = name_svideo,
@@ -2671,7 +2671,7 @@ struct saa7134_board saa7134_boards[] = {
        [SAA7134_BOARD_FLYDVBT_LR301] = {
                /* LifeView FlyDVB-T */
                /* Giampiero Giancipoli <gianci@libero.it> */
-               .name           = "LifeView FlyDVB-T",
+               .name           = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
                .audio_clock    = 0x00200000,
                .tuner_type     = TUNER_ABSENT,
                .radio_type     = UNSET,
@@ -2756,6 +2756,92 @@ struct saa7134_board saa7134_boards[] = {
                        .amux = LINE2,
                }},
        },
+       [SAA7134_BOARD_AVERMEDIA_A169_B] = {
+               /* AVerMedia A169  */
+               /* Rickard Osser <ricky@osser.se>  */
+               /* This card has two saa7134 chips on it,
+                  but only one of them is currently working. */
+               .name           = "AVerMedia A169 B",
+               .audio_clock    = 0x02187de7,
+               .tuner_type     = TUNER_LG_TALN,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .tda9887_conf   = TDA9887_PRESENT,
+               .gpiomask       = 0x0a60000,
+       },
+       [SAA7134_BOARD_AVERMEDIA_A169_B1] = {
+               /* AVerMedia A169 */
+               /* Rickard Osser <ricky@osser.se> */
+               .name           = "AVerMedia A169 B1",
+               .audio_clock    = 0x02187de7,
+               .tuner_type     = TUNER_LG_TALN,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .tda9887_conf   = TDA9887_PRESENT,
+               .gpiomask       = 0xca60000,
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 4,
+                       .amux = TV,
+                       .tv   = 1,
+                       .gpio = 0x04a61000,
+               },{
+                       .name = name_comp2,  /*  Composite SVIDEO (B/W if signal is carried with SVIDEO) */
+                       .vmux = 1,
+                       .amux = LINE2,
+               },{
+                       .name = name_svideo,
+                       .vmux = 9,           /* 9 is correct as S-VIDEO1 according to a169.inf! */
+                       .amux = LINE1,
+               }},
+       },
+       [SAA7134_BOARD_MD7134_BRIDGE_2] = {
+               /* This card has two saa7134 chips on it,
+                  but only one of them is currently working.
+                  The programming for the primary decoder is
+                  in SAA7134_BOARD_MD7134 */
+               .name           = "Medion 7134 Bridge #2",
+               .audio_clock    = 0x00187de7,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+       },
+       [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
+               .name           = "LifeView FlyDVB-T Hybrid Cardbus",
+               .audio_clock    = 0x00200000,
+               .tuner_type     = TUNER_PHILIPS_TDA8290,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .mpeg           = SAA7134_MPEG_DVB,
+               .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = TV,
+                       .gpio = 0x200000,       /* GPIO21=High for TV input */
+                       .tv   = 1,
+               },{
+                       .name = name_svideo,    /* S-Video signal on S-Video input */
+                       .vmux = 8,
+                       .amux = LINE2,
+               },{
+                       .name = name_comp1,     /* Composite signal on S-Video input */
+                       .vmux = 0,
+                       .amux = LINE2,
+               },{
+                       .name = name_comp2,     /* Composite input */
+                       .vmux = 3,
+                       .amux = LINE2,
+               }},
+               .radio = {
+                       .name = name_radio,
+                       .amux = TV,
+                       .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
+               },
+       },
 };
 
 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
@@ -3262,6 +3348,48 @@ struct pci_device_id saa7134_pci_tbl[] = {
                .subvendor    = 0x17de,
                .subdevice    = 0x7350,
                .driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+               .subvendor    = 0x1461,
+               .subdevice    = 0x7360,
+               .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+               .subvendor    = 0x1461,
+               .subdevice    = 0x6360,
+               .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
+               .subvendor    = 0x16be,
+               .subdevice    = 0x0005,
+               .driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
+       },{
+               .vendor = PCI_VENDOR_ID_PHILIPS,
+               .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
+               .subvendor = 0x1489,
+               .subdevice = 0x0301,
+               .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
+       },{
+               .vendor = PCI_VENDOR_ID_PHILIPS,
+               .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor = 0x5168, /* Animation Technologies (LifeView) */
+               .subdevice = 0x0304,
+               .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x5168,
+               .subdevice    = 0x3306,
+               .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
+       },{
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x5168,
+               .subdevice    = 0x3502,  /* whats the difference to 0x3306 ?*/
+               .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
        },{
                /* --- boards without eeprom + subsystem ID --- */
                .vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -3368,14 +3496,15 @@ int saa7134_board_init1(struct saa7134_dev *dev)
                break;
        case SAA7134_BOARD_MD5044:
                printk("%s: seems there are two different versions of the MD5044\n"
-               "%s: (with the same ID) out there.  If sound doesn't work for\n"
-               "%s: you try the audio_clock_override=0x200000 insmod option.\n",
-               dev->name,dev->name,dev->name);
+                      "%s: (with the same ID) out there.  If sound doesn't work for\n"
+                      "%s: you try the audio_clock_override=0x200000 insmod option.\n",
+                      dev->name,dev->name,dev->name);
                break;
        case SAA7134_BOARD_CINERGY400_CARDBUS:
                /* power-up tuner chip */
                saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
                saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
+               break;
        case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
                /* this turns the remote control chip off to work around a bug in it */
                saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
@@ -3392,6 +3521,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
                saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
                break;
        case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
+       case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
                saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
                saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x00);
                break;
@@ -3417,6 +3547,13 @@ int saa7134_board_init1(struct saa7134_dev *dev)
        case SAA7134_BOARD_UPMOST_PURPLE_TV:
                dev->has_remote = SAA7134_REMOTE_I2C;
                break;
+       case SAA7134_BOARD_AVERMEDIA_A169_B:
+       case SAA7134_BOARD_MD7134_BRIDGE_2:
+               printk("%s: %s: dual saa713x broadcast decoders\n"
+                      "%s: Sorry, none of the inputs to this chip are supported yet.\n"
+                      "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
+                      dev->name,card(dev).name,dev->name,dev->name);
+               break;
        }
        return 0;
 }
@@ -3556,6 +3693,7 @@ int saa7134_board_init2(struct saa7134_dev *dev)
                }
                break;
        case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
+       case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
                /* make the tda10046 find its eeprom */
                {
                u8 data[] = { 0x3c, 0x33, 0x62};