Date: Sat, 5 Nov 2005 23:43:05 +0000 From: Danny Pansters <danny@ricin.com> To: freebsd-multimedia@freebsd.org Subject: Bktr on FreeBSD-6.0: Hauppauge WinCast/TV (Bt878) card detection is broken. Message-ID: <200511052343.06171.danny@ricin.com>
next in thread | raw e-mail | index | archive | help
--Boundary-00=_KOUbDDCuo4BWdQN Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Card details: Hauppauge WinTV, year 2000 Tuner: WinTV PAL-B/G-I 44354 Rev A242 Capture: Conexant Bt878KHF This is when using the module (with or without setting sysctls) on 6.0, clearly the detection is wrong, tv apps fail: bktr_mem: memory holder loaded bktr0: <BrookTree 878> mem 0xdfefe000-0xdfefefff irq 19 at device 3.0 on pci6 bktr0: [GIANT-LOCKED] bktr0: Warning - card vendor 0x0272 (model 0x13eb) unknown. bktr0: Pinnacle/Miro TV, Temic NTSC tuner, remote control. This is when card and tuner are overridden in kernel on 6.0, now the driver shows the correct things, but doesn't seem to use them because tv apps still fail: bktr0: <BrookTree 878> mem 0xdfefe000-0xdfefefff irq 19 at device 3.0 on pci6 bktr0: [GIANT-LOCKED] bktr0: Hauppauge WinCast/TV, Philips FR1216 PAL FM tuner, msp3400c stereo, remote control. This is when using the module (no sysctls needed) on a 5.3-RELEASE test box (I know I've used this card succesfully on 5.3) it's correct: bktr_mem: memory holder loaded bktr0: <BrookTree 878> mem 0xef000000-0xef000fff at device 13.0 on pci2 bktr0: [GIANT-LOCKED] bktr0: Hauppauge Model 44354 A242 bktr0: Detected a MSP3415D-B3 at 0x80 bktr0: Hauppauge WinCast/TV, Philips FR1216 PAL FM tuner, msp3400c stereo, remote control. So for my WinTV card bktr is (was) broken on 6.0. Anyone else seen this? I have the feeling that it's the EEPROM telling bktr unexpected things. There's no vendor 0x0272 in pci_vendors, it must be 0x0070, Hauppauge. In 5.3 could it be using PCI register, not EEPROM, for detection of this card? Dumb workaround I'm using now (with module, no sysctls set) attached. --Boundary-00=_KOUbDDCuo4BWdQN Content-Type: text/x-diff; charset="us-ascii"; name="bktr_card.c.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="bktr_card.c.diff" --- bktr_card.c.orig Sat Nov 5 18:51:41 2005 +++ bktr_card.c Sat Nov 5 18:56:46 2005 @@ -593,6 +593,7 @@ #define PCI_VENDOR_IODATA 0x10fc #define PCI_VENDOR_PINNACLE_ALT 0xBD11 /* They got their own ID backwards? */ #define PCI_VENDOR_PINNACLE_NEW 0x11BD +#define PCI_VENDOR_HAUPPAUGE_ALT 0x0272 #define MODEL_IODATA_GV_BCTV3_PCI 0x4020 @@ -685,7 +686,8 @@ goto checkTuner; } - if (subsystem_vendor_id == PCI_VENDOR_HAUPPAUGE) { + if ((subsystem_vendor_id == PCI_VENDOR_HAUPPAUGE) + || (subsystem_vendor_id == PCI_VENDOR_HAUPPAUGE_ALT)) { bktr->card = cards[ (card = CARD_HAUPPAUGE) ]; bktr->card.eepromAddr = eeprom_i2c_address; bktr->card.eepromSize = (u_char)(256 / EEPROMBLOCKSIZE); --Boundary-00=_KOUbDDCuo4BWdQN--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511052343.06171.danny>