Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Feb 2006 21:50:01 +0000
From:      Danny Pansters <danny@ricin.com>
To:        freebsd-multimedia@freebsd.org
Subject:   BT878 cards with old or no eeprom broken?
Message-ID:  <200602272150.01476.danny@ricin.com>
In-Reply-To: <200602271827.36998.FreeBSD-multimedia@subscriptions.systeem.com>
References:  <200602271827.36998.FreeBSD-multimedia@subscriptions.systeem.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602272150.01476.danny>