aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx88/cx88-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 054094e48fc3..c4551d996119 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -191,6 +191,12 @@ static struct cx22702_config hauppauge_novat_config = {
191 .pll_address = 0x61, 191 .pll_address = 0x61,
192 .pll_desc = &dvb_pll_thomson_dtt759x, 192 .pll_desc = &dvb_pll_thomson_dtt759x,
193}; 193};
194static struct cx22702_config hauppauge_hvr1100_config = {
195 .demod_address = 0x63,
196 .output_mode = CX22702_SERIAL_OUTPUT,
197 .pll_address = 0x61,
198 .pll_desc = &dvb_pll_fmd1216me,
199};
194#endif 200#endif
195 201
196#ifdef HAVE_OR51132 202#ifdef HAVE_OR51132
@@ -370,6 +376,11 @@ static int dvb_register(struct cx8802_dev *dev)
370 dev->dvb.frontend = cx22702_attach(&connexant_refboard_config, 376 dev->dvb.frontend = cx22702_attach(&connexant_refboard_config,
371 &dev->core->i2c_adap); 377 &dev->core->i2c_adap);
372 break; 378 break;
379 case CX88_BOARD_HAUPPAUGE_HVR1100:
380 case CX88_BOARD_HAUPPAUGE_HVR1100LP:
381 dev->dvb.frontend = cx22702_attach(&hauppauge_hvr1100_config,
382 &dev->core->i2c_adap);
383 break;
373#endif 384#endif
374#ifdef HAVE_MT352 385#ifdef HAVE_MT352
375 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: 386 case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1:
@@ -532,6 +543,9 @@ static int __devinit dvb_probe(struct pci_dev *pci_dev,
532 err = dvb_register(dev); 543 err = dvb_register(dev);
533 if (0 != err) 544 if (0 != err)
534 goto fail_fini; 545 goto fail_fini;
546
547 /* Maintain a reference to cx88-video can query the 8802 device. */
548 core->dvbdev = dev;
535 return 0; 549 return 0;
536 550
537 fail_fini: 551 fail_fini:
@@ -547,6 +561,9 @@ static void __devexit dvb_remove(struct pci_dev *pci_dev)
547{ 561{
548 struct cx8802_dev *dev = pci_get_drvdata(pci_dev); 562 struct cx8802_dev *dev = pci_get_drvdata(pci_dev);
549 563
564 /* Destroy any 8802 reference. */
565 dev->core->dvbdev = NULL;
566
550 /* dvb */ 567 /* dvb */
551 videobuf_dvb_unregister(&dev->dvb); 568 videobuf_dvb_unregister(&dev->dvb);
552 569