summaryrefslogtreecommitdiff
path: root/linux/drivers
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-07-20 14:20:47 +0000
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-07-20 14:20:47 +0000
commit6bd143668c399af17edddaaff09227d2217e6dd6 (patch)
tree11b977e444fe79b8b9d1cebec3ed44bb585aef2e /linux/drivers
parent68dc7281f696cd47941ab39f96e7e783bed14f1f (diff)
downloadmediapointer-dvb-s2-6bd143668c399af17edddaaff09227d2217e6dd6.tar.gz
mediapointer-dvb-s2-6bd143668c399af17edddaaff09227d2217e6dd6.tar.bz2
make digital side of pcHDTV HD-3000 functional again
From: Jarod Wilson <jarod@redhat.com> The dvb side of the pcHDTV HD-3000 doesn't work since at least 2.6.29. The crux of the problem is this: the HD-3000's device ID matches the modalias for the cx8800 driver, but not the cx8802 driver, which is required to set up the digital side of the card. You can load up cx8802 just fine, but cx88-dvb falls on its face, because the call to cx8802_register_driver() attempts to traverse the cx8802_devlist, which is completely empty. The list is only populated by the cx8802_probe() function, which never gets called for the HD-3000, as its device ID isn't matched by the cx8802 driver, so you wind up getting an -ENODEV return from cx8802_register_driver() back to cx88-dvb, and as a result, no digital side of the card for you. Long story short, by simply adding a vendor/device/subvendor/subdevice block to cx88-mpeg.c, cx8802_probe() will run, the cx88-2_devlist will get populated, cx8802_register_driver() won't fail, and cx88-dvb can actually load up all the way on this card. Channel scanning is of course currently failing for me still (works fine on several other cards I have handy), but that's another problem for another day... There might be a Better Way to do this, and I'm open to suggestions and willing to try them out, but this Works For Me. Signed-off-by: Jarod Wilson <jarod@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers')
-rw-r--r--linux/drivers/media/video/cx88/cx88-mpeg.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-mpeg.c b/linux/drivers/media/video/cx88/cx88-mpeg.c
index e1bcd556b..c77981a8e 100644
--- a/linux/drivers/media/video/cx88/cx88-mpeg.c
+++ b/linux/drivers/media/video/cx88/cx88-mpeg.c
@@ -897,6 +897,11 @@ static struct pci_device_id cx8802_pci_tbl[] = {
.device = 0x8802,
.subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID,
+ },{ /* pcHDTV HD-3000 */
+ .vendor = 0x14f1,
+ .device = 0x8800,
+ .subvendor = 0x7063,
+ .subdevice = 0x3000,
},{
/* --- end of list --- */
}