BT878 cards with old or no eeprom broken?
Danny Pansters
danny at ricin.com
Mon Feb 27 13:50:32 PST 2006
Hi
I'm having issues with a WinTV card on 6.1-BETA2. It's a bt878 also, in my
case with an EEPROM but an old one (I don't think it ever worked right).
Hauppauge Wincast TV (year 2000). Bt878 chip, Philips PAL/FM tuner.
It was always autodetected in FBSD 4 and 5. In 6.0 it showed wrong company
code. Setting sysctls didn't help, I've been using a local patch for that
wrong number so that it was seen as hauppauge (0x0070). There's a PR about
it, kern/89553. But as of 6.1 (just tried BETA2 on a new box) it gets
detected as Miro/SECAM.
pciconf:
bktr0 at pci1:9:0: class=0x040000 card=0x13eb0070 chip=0x036e109e rev=0x02
hdr=0x00
vendor = 'Conexant (Was: Brooktree Corp)'
device = 'Bt878/Fusion 878A Mediastream Controller'
class = multimedia
subclass = video
none3 at pci1:9:1: class=0x048000 card=0x13eb0070 chip=0x0878109e rev=0x02
hdr=0x00
vendor = 'Conexant (Was: Brooktree Corp)'
device = 'Bt878/Fusion878A Video Capture (Audio Section)'
class = multimedia
Sysctls tuner 10 and card 2 _should_ work, but they seem to be ignored by the
driver, neither on boot or when set later. Does the driver write to my card's
demented eeprom and then gets garbage back? I'm asking because the very first
try (freshly kldloading bktr without any sysctls set) it worked, using kbtv.
But I couldn't silence the tuner after quitting, and after a reboot (with
module in loader.conf, and with or without sysctls in sysctl.conf) running it
would hang the box. I have two vmcore dumps and can experiment as much as
needed on this box. But it looks like the detection code is b0rked for 878
cards without a "good" eeprom.
dmesg:
bktr0: <BrookTree 878> mem 0xd7ffc000-0xd7ffcfff irq 17 at device 9.0 on pci1
bktr0: [GIANT-LOCKED]
bktr0: Warning - card vendor 0xffff (model 0xffff) unknown.
bktr0: MT2032: Companycode=ffff Part=ff Revision=ff
bktr0: MT2032 not found or unknown type
bktr0: Detected a MSP34255?-?31 at 0x80
bktr0: Detected a DPL34254?-?31 at 0x84
bktr0: Pinnacle/Miro TV, Temic NTSC tuner, dbx stereo, msp3400c stereo,
dpl3518a dolby, remote control.
Note taht when using 6.0 I got 0x13something as company code, not 0xffff which
decidedly looks like "NONE" or "ANY". I may be able to locally hack it again
as in kern/89553 but it's not a solution, especially not with 0xffff.
I noted that in bktr_card.c some extra detection heuristics for eeprom reading
is added for 848 cards but not for 878.
Comments, ideas anyone? I realize that more people seem to be having with 878
cards. I suppose it would be pretty hard to revert to the old style pci
detection for older (and perhaps also newer) cards for which it was known to
work.
Dan
More information about the freebsd-multimedia
mailing list