Commit 5d9aa9e5e8eb25585367caa034bba3cdc4f59f34
Committed by
Greg Kroah-Hartman
1 parent
a2d8617dff
cx23885: Split Hauppauge WinTV Starburst from HVR4400 card entry
commit 721f3223f26bbe81c7e55f84188e74d99df50a16 upstream. Unconditionally attaching Si2161/Si2165 demod driver breaks Hauppauge WinTV Starburst. So create own card entry for this. Add card name comments to the subsystem ids. This fixes a regression introduced in 3.17 by 36efec48e2e6016e05364906720a0ec350a5d768 ([media] cx23885: Add si2165 support for HVR-5500) Signed-off-by: Matthias Schwarzott <zzam@gentoo.org> Tested-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing 3 changed files with 29 additions and 6 deletions Side-by-side Diff
drivers/media/pci/cx23885/cx23885-cards.c
... | ... | @@ -614,7 +614,7 @@ |
614 | 614 | .portb = CX23885_MPEG_DVB, |
615 | 615 | }, |
616 | 616 | [CX23885_BOARD_HAUPPAUGE_HVR4400] = { |
617 | - .name = "Hauppauge WinTV-HVR4400", | |
617 | + .name = "Hauppauge WinTV-HVR4400/HVR5500", | |
618 | 618 | .porta = CX23885_ANALOG_VIDEO, |
619 | 619 | .portb = CX23885_MPEG_DVB, |
620 | 620 | .portc = CX23885_MPEG_DVB, |
... | ... | @@ -622,6 +622,10 @@ |
622 | 622 | .tuner_addr = 0x60, /* 0xc0 >> 1 */ |
623 | 623 | .tuner_bus = 1, |
624 | 624 | }, |
625 | + [CX23885_BOARD_HAUPPAUGE_STARBURST] = { | |
626 | + .name = "Hauppauge WinTV Starburst", | |
627 | + .portb = CX23885_MPEG_DVB, | |
628 | + }, | |
625 | 629 | [CX23885_BOARD_AVERMEDIA_HC81R] = { |
626 | 630 | .name = "AVerTV Hybrid Express Slim HC81R", |
627 | 631 | .tuner_type = TUNER_XC2028, |
628 | 632 | |
629 | 633 | |
630 | 634 | |
... | ... | @@ -910,19 +914,19 @@ |
910 | 914 | }, { |
911 | 915 | .subvendor = 0x0070, |
912 | 916 | .subdevice = 0xc108, |
913 | - .card = CX23885_BOARD_HAUPPAUGE_HVR4400, | |
917 | + .card = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-4400 (Model 121xxx, Hybrid DVB-T/S2, IR) */ | |
914 | 918 | }, { |
915 | 919 | .subvendor = 0x0070, |
916 | 920 | .subdevice = 0xc138, |
917 | - .card = CX23885_BOARD_HAUPPAUGE_HVR4400, | |
921 | + .card = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR) */ | |
918 | 922 | }, { |
919 | 923 | .subvendor = 0x0070, |
920 | 924 | .subdevice = 0xc12a, |
921 | - .card = CX23885_BOARD_HAUPPAUGE_HVR4400, | |
925 | + .card = CX23885_BOARD_HAUPPAUGE_STARBURST, /* Hauppauge WinTV Starburst (Model 121x00, DVB-S2, IR) */ | |
922 | 926 | }, { |
923 | 927 | .subvendor = 0x0070, |
924 | 928 | .subdevice = 0xc1f8, |
925 | - .card = CX23885_BOARD_HAUPPAUGE_HVR4400, | |
929 | + .card = CX23885_BOARD_HAUPPAUGE_HVR4400, /* Hauppauge WinTV HVR-5500 (Model 121xxx, Hybrid DVB-T/C/S2, IR) */ | |
926 | 930 | }, { |
927 | 931 | .subvendor = 0x1461, |
928 | 932 | .subdevice = 0xd939, |
929 | 933 | |
... | ... | @@ -1495,8 +1499,9 @@ |
1495 | 1499 | cx_write(GPIO_ISM, 0x00000000);/* INTERRUPTS active low*/ |
1496 | 1500 | break; |
1497 | 1501 | case CX23885_BOARD_HAUPPAUGE_HVR4400: |
1502 | + case CX23885_BOARD_HAUPPAUGE_STARBURST: | |
1498 | 1503 | /* GPIO-8 tda10071 demod reset */ |
1499 | - /* GPIO-9 si2165 demod reset */ | |
1504 | + /* GPIO-9 si2165 demod reset (only HVR4400/HVR5500)*/ | |
1500 | 1505 | |
1501 | 1506 | /* Put the parts into reset and back */ |
1502 | 1507 | cx23885_gpio_enable(dev, GPIO_8 | GPIO_9, 1); |
... | ... | @@ -1760,6 +1765,7 @@ |
1760 | 1765 | case CX23885_BOARD_HAUPPAUGE_HVR1850: |
1761 | 1766 | case CX23885_BOARD_HAUPPAUGE_HVR1290: |
1762 | 1767 | case CX23885_BOARD_HAUPPAUGE_HVR4400: |
1768 | + case CX23885_BOARD_HAUPPAUGE_STARBURST: | |
1763 | 1769 | case CX23885_BOARD_HAUPPAUGE_IMPACTVCBE: |
1764 | 1770 | if (dev->i2c_bus[0].i2c_rc == 0) |
1765 | 1771 | hauppauge_eeprom(dev, eeprom+0xc0); |
... | ... | @@ -1863,6 +1869,11 @@ |
1863 | 1869 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ |
1864 | 1870 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
1865 | 1871 | ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; |
1872 | + break; | |
1873 | + case CX23885_BOARD_HAUPPAUGE_STARBURST: | |
1874 | + ts1->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ | |
1875 | + ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | |
1876 | + ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO; | |
1866 | 1877 | break; |
1867 | 1878 | case CX23885_BOARD_DVBSKY_T9580: |
1868 | 1879 | ts1->gen_ctrl_val = 0x5; /* Parallel */ |
drivers/media/pci/cx23885/cx23885-dvb.c
... | ... | @@ -1586,6 +1586,17 @@ |
1586 | 1586 | break; |
1587 | 1587 | } |
1588 | 1588 | break; |
1589 | + case CX23885_BOARD_HAUPPAUGE_STARBURST: | |
1590 | + i2c_bus = &dev->i2c_bus[0]; | |
1591 | + fe0->dvb.frontend = dvb_attach(tda10071_attach, | |
1592 | + &hauppauge_tda10071_config, | |
1593 | + &i2c_bus->i2c_adap); | |
1594 | + if (fe0->dvb.frontend != NULL) { | |
1595 | + dvb_attach(a8293_attach, fe0->dvb.frontend, | |
1596 | + &i2c_bus->i2c_adap, | |
1597 | + &hauppauge_a8293_config); | |
1598 | + } | |
1599 | + break; | |
1589 | 1600 | case CX23885_BOARD_DVBSKY_T9580: |
1590 | 1601 | i2c_bus = &dev->i2c_bus[0]; |
1591 | 1602 | i2c_bus2 = &dev->i2c_bus[1]; |
drivers/media/pci/cx23885/cx23885.h
... | ... | @@ -93,6 +93,7 @@ |
93 | 93 | #define CX23885_BOARD_HAUPPAUGE_IMPACTVCBE 43 |
94 | 94 | #define CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP2 44 |
95 | 95 | #define CX23885_BOARD_DVBSKY_T9580 45 |
96 | +#define CX23885_BOARD_HAUPPAUGE_STARBURST 52 | |
96 | 97 | |
97 | 98 | #define GPIO_0 0x00000001 |
98 | 99 | #define GPIO_1 0x00000002 |