Troubleshooting cxm driver with Hauppauge 250

Seib, Broc bseib at
Fri Nov 4 11:37:47 PST 2005

Hi all,

I recently discovered the cxm driver, so I moved my Hauppauge 250 tuner
card to my FreeBSD 5.3 box (yay!). I built and installed the driver
parts and it *almost* works, but produces empty mpg files. (BTW, this
card has worked under KnoppMyth and WinXP in the past.) The console logs
show successful loading of things:

cxm0: <Conexant iTVC16 MPEG Coder> mem 0xf0000000-0xf3ffffff irq 21 at
device 9.0 on pci1
cxm_iic0: <Conexant iTVC15 / iTVC16 I2C controller> on cxm0
iicbb0: <I2C bit-banging driver> on cxm_iic0
iicbus0: <Philips I2C bus> on iicbb0 master-only
cxm0: Temic 4036 FY5 tuner
cxm0: SAA7115 rev 1 video decoder
cxm0: MSP4448G-A2 audio decoder
cxm0: IR Remote
cxm0: encoder firmware version 0x2050032

I can use 'setchannel -t <x>' to successfully tune in a channel. (I even
added some debug lines to the driver to prove this is working. Plus
setchannel correctly fails when I unhook my coax line...)

But when I do a 'cat /dev/cxm0 > testit.mpg' I get a zero length file.
And when I interrupt this process I get (after the expected 1000ms
delay) a message "cxm0: missing encoder EOS".

I have debugged this enough to think that the firmware command (0x81) to
"begin capture" has been properly issued, but cxm_intr() is never called
thereafter. So the driver patiently sits there in tsleep (as "cmxrd")
waiting for its buffer to fill, but nothing ever comes.

Anyone have any tips where/how to pursue debugging this?


More information about the freebsd-multimedia mailing list