diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-07-20 14:20:47 +0000 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-07-20 14:20:47 +0000 |
commit | 6bd143668c399af17edddaaff09227d2217e6dd6 (patch) | |
tree | 11b977e444fe79b8b9d1cebec3ed44bb585aef2e /linux/drivers | |
parent | 68dc7281f696cd47941ab39f96e7e783bed14f1f (diff) | |
download | mediapointer-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.c | 5 |
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 --- */ } |