diff options
| -rw-r--r-- | Documentation/video4linux/CARDLIST.cx23885 | 1 | ||||
| -rw-r--r-- | drivers/media/video/cx23885/cx23885-cards.c | 12 | ||||
| -rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 21 | ||||
| -rw-r--r-- | drivers/media/video/cx23885/cx23885.h | 1 |
4 files changed, 35 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885 index ce62f5a28312..e7ed710f7ea9 100644 --- a/Documentation/video4linux/CARDLIST.cx23885 +++ b/Documentation/video4linux/CARDLIST.cx23885 | |||
| @@ -18,3 +18,4 @@ | |||
| 18 | 17 -> NetUP Dual DVB-S2 CI [1b55:2a2c] | 18 | 17 -> NetUP Dual DVB-S2 CI [1b55:2a2c] |
| 19 | 18 -> Hauppauge WinTV-HVR1270 [0070:2211] | 19 | 18 -> Hauppauge WinTV-HVR1270 [0070:2211] |
| 20 | 19 -> Hauppauge WinTV-HVR1275 [0070:2215] | 20 | 19 -> Hauppauge WinTV-HVR1275 [0070:2215] |
| 21 | 20 -> Hauppauge WinTV-HVR1255 [0070:2251] | ||
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 68ac04b7f1ed..604ceb180522 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c | |||
| @@ -189,6 +189,10 @@ struct cx23885_board cx23885_boards[] = { | |||
| 189 | .name = "Hauppauge WinTV-HVR1275", | 189 | .name = "Hauppauge WinTV-HVR1275", |
| 190 | .portc = CX23885_MPEG_DVB, | 190 | .portc = CX23885_MPEG_DVB, |
| 191 | }, | 191 | }, |
| 192 | [CX23885_BOARD_HAUPPAUGE_HVR1255] = { | ||
| 193 | .name = "Hauppauge WinTV-HVR1255", | ||
| 194 | .portc = CX23885_MPEG_DVB, | ||
| 195 | }, | ||
| 192 | }; | 196 | }; |
| 193 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); | 197 | const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); |
| 194 | 198 | ||
| @@ -296,6 +300,10 @@ struct cx23885_subid cx23885_subids[] = { | |||
| 296 | .subvendor = 0x0070, | 300 | .subvendor = 0x0070, |
| 297 | .subdevice = 0x2215, | 301 | .subdevice = 0x2215, |
| 298 | .card = CX23885_BOARD_HAUPPAUGE_HVR1275, | 302 | .card = CX23885_BOARD_HAUPPAUGE_HVR1275, |
| 303 | }, { | ||
| 304 | .subvendor = 0x0070, | ||
| 305 | .subdevice = 0x2251, | ||
| 306 | .card = CX23885_BOARD_HAUPPAUGE_HVR1255, | ||
| 299 | }, | 307 | }, |
| 300 | }; | 308 | }; |
| 301 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); | 309 | const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); |
| @@ -637,6 +645,7 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) | |||
| 637 | break; | 645 | break; |
| 638 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 646 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
| 639 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | 647 | case CX23885_BOARD_HAUPPAUGE_HVR1275: |
| 648 | case CX23885_BOARD_HAUPPAUGE_HVR1255: | ||
| 640 | /* GPIO-5 RF Control: 0 = RF1 Terrestrial, 1 = RF2 Cable */ | 649 | /* GPIO-5 RF Control: 0 = RF1 Terrestrial, 1 = RF2 Cable */ |
| 641 | /* GPIO-6 I2C Gate which can isolate the 3305 from the bus */ | 650 | /* GPIO-6 I2C Gate which can isolate the 3305 from the bus */ |
| 642 | /* GPIO-9 LG3305 reset */ | 651 | /* GPIO-9 LG3305 reset */ |
| @@ -662,6 +671,7 @@ int cx23885_ir_init(struct cx23885_dev *dev) | |||
| 662 | case CX23885_BOARD_HAUPPAUGE_HVR1400: | 671 | case CX23885_BOARD_HAUPPAUGE_HVR1400: |
| 663 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 672 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
| 664 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | 673 | case CX23885_BOARD_HAUPPAUGE_HVR1275: |
| 674 | case CX23885_BOARD_HAUPPAUGE_HVR1255: | ||
| 665 | /* FIXME: Implement me */ | 675 | /* FIXME: Implement me */ |
| 666 | break; | 676 | break; |
| 667 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: | 677 | case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: |
| @@ -699,6 +709,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
| 699 | case CX23885_BOARD_HAUPPAUGE_HVR1700: | 709 | case CX23885_BOARD_HAUPPAUGE_HVR1700: |
| 700 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 710 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
| 701 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | 711 | case CX23885_BOARD_HAUPPAUGE_HVR1275: |
| 712 | case CX23885_BOARD_HAUPPAUGE_HVR1255: | ||
| 702 | if (dev->i2c_bus[0].i2c_rc == 0) | 713 | if (dev->i2c_bus[0].i2c_rc == 0) |
| 703 | hauppauge_eeprom(dev, eeprom+0xc0); | 714 | hauppauge_eeprom(dev, eeprom+0xc0); |
| 704 | break; | 715 | break; |
| @@ -758,6 +769,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) | |||
| 758 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: | 769 | case CX23885_BOARD_COMPRO_VIDEOMATE_E650F: |
| 759 | case CX23885_BOARD_HAUPPAUGE_HVR1270: | 770 | case CX23885_BOARD_HAUPPAUGE_HVR1270: |
| 760 | case CX23885_BOARD_HAUPPAUGE_HVR1275: | 771 | case CX23885_BOARD_HAUPPAUGE_HVR1275: |
| 772 | case CX23885_BOARD_HAUPPAUGE_HVR1255: | ||
| 761 | default: | 773 | default: |
| 762 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ | 774 | ts2->gen_ctrl_val = 0xc; /* Serial bus + punctured clock */ |
| 763 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ | 775 | ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */ |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 7e354a93e89a..b440b55f22c9 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
| @@ -197,6 +197,16 @@ static struct s5h1411_config dvico_s5h1411_config = { | |||
| 197 | .mpeg_timing = S5H1411_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK, | 197 | .mpeg_timing = S5H1411_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK, |
| 198 | }; | 198 | }; |
| 199 | 199 | ||
| 200 | static struct s5h1411_config hcw_s5h1411_config = { | ||
| 201 | .output_mode = S5H1411_SERIAL_OUTPUT, | ||
| 202 | .gpio = S5H1411_GPIO_OFF, | ||
| 203 | .vsb_if = S5H1411_IF_44000, | ||
| 204 | .qam_if = S5H1411_IF_4000, | ||
| 205 | .inversion = S5H1411_INVERSION_ON, | ||
| 206 | .status_mode = S5H1411_DEMODLOCKING, | ||
| 207 | .mpeg_timing = S5H1411_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK, | ||
| 208 | }; | ||
| 209 | |||
| 200 | static struct xc5000_config hauppauge_hvr1500q_tunerconfig = { | 210 | static struct xc5000_config hauppauge_hvr1500q_tunerconfig = { |
| 201 | .i2c_address = 0x61, | 211 | .i2c_address = 0x61, |
| 202 | .if_khz = 5380, | 212 | .if_khz = 5380, |
| @@ -433,6 +443,17 @@ static int dvb_register(struct cx23885_tsport *port) | |||
| 433 | &hcw_lgdt3305_tda18271_config); | 443 | &hcw_lgdt3305_tda18271_config); |
| 434 | } | 444 | } |
| 435 | break; | 445 | break; |
| 446 | case CX23885_BOARD_HAUPPAUGE_HVR1255: | ||
| 447 | i2c_bus = &dev->i2c_bus[0]; | ||
| 448 | fe0->dvb.frontend = dvb_attach(s5h1411_attach, | ||
| 449 | &hcw_s5h1411_config, | ||
| 450 | &i2c_bus->i2c_adap); | ||
| 451 | if (fe0->dvb.frontend != NULL) { | ||
| 452 | dvb_attach(tda18271_attach, fe0->dvb.frontend, | ||
| 453 | 0x60, &dev->i2c_bus[1].i2c_adap, | ||
| 454 | &hauppauge_tda18271_config); | ||
| 455 | } | ||
| 456 | break; | ||
| 436 | case CX23885_BOARD_HAUPPAUGE_HVR1800: | 457 | case CX23885_BOARD_HAUPPAUGE_HVR1800: |
| 437 | i2c_bus = &dev->i2c_bus[0]; | 458 | i2c_bus = &dev->i2c_bus[0]; |
| 438 | switch (alt_tuner) { | 459 | switch (alt_tuner) { |
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h index 3c941ccc3089..9b42e41f30f6 100644 --- a/drivers/media/video/cx23885/cx23885.h +++ b/drivers/media/video/cx23885/cx23885.h | |||
| @@ -73,6 +73,7 @@ | |||
| 73 | #define CX23885_BOARD_NETUP_DUAL_DVBS2_CI 17 | 73 | #define CX23885_BOARD_NETUP_DUAL_DVBS2_CI 17 |
| 74 | #define CX23885_BOARD_HAUPPAUGE_HVR1270 18 | 74 | #define CX23885_BOARD_HAUPPAUGE_HVR1270 18 |
| 75 | #define CX23885_BOARD_HAUPPAUGE_HVR1275 19 | 75 | #define CX23885_BOARD_HAUPPAUGE_HVR1275 19 |
| 76 | #define CX23885_BOARD_HAUPPAUGE_HVR1255 20 | ||
| 76 | 77 | ||
| 77 | #define GPIO_0 0x00000001 | 78 | #define GPIO_0 0x00000001 |
| 78 | #define GPIO_1 0x00000002 | 79 | #define GPIO_1 0x00000002 |
