[pvrusb2] Problem with wintv-hvr-1950
Mike Isely
isely at isely.net
Tue Mar 10 08:37:19 CDT 2009
On Mon, 9 Mar 2009, jim steele wrote:
> Hello,
>
> I am attempting to use a Hauppauge wintv-hvr-1950 model USB capture
> device to capture composite video input to a Beagleboard running
> Angstrom linux kernel version 2.6.28. I was able to successfully get
> this to work on a regular i386 machine with Ubuntu Intrepid, but when
> I try to cp /dev/video0 to a file on the Beagleboard, it fails. I'm
> hoping that someone here can shed some light on what might be going
> wrong. I'm doing this all from the serial console. Here's a log of
> what's happening, from the time I plug in the device to the USB port
> to the errors at the end, which just repeat until I unplug the
> hvr-1950:
>
> usb 2-1.3: new high speed USB device using musb_hdrc and address 3
> usb 2-1.3: device v2040 p7501 is not supported
> usb 2-1.3: configuration #1 chosen from 1 choice
> Linux video capture interface: v2.00
> usbcore: registered new interface driver pvrusb2
> pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner
> pvrusb2: Debug mask is 31 (0x1f)
> usb 2-1.3: firmware: requesting v4l-pvrusb2-73xxx-01.fw
> pvrusb2: Device microcontroller firmware (re)loaded; it should now
> reset and reconnect.
> usb 2-1.3: USB disconnect, address 3
> pvrusb2: Device being rendered inoperable
> usb 2-1.3: new high speed USB device using musb_hdrc and address 4
> usb 2-1.3: device v2040 p7501 is not supported
> usb 2-1.3: configuration #1 chosen from 1 choice
> cx25840' 2-0044: cx25843-24 found @ 0x88 (pvrusb2_a)
> tuner' 2-0042: chip found @ 0x84 (pvrusb2_a)
> tveeprom 2-00a2: Hauppauge model 75111, rev C3E9, serial# 5371393
> tveeprom 2-00a2: MAC address is 00-0D-FE-51-F6-01
> tveeprom 2-00a2: tuner model is Philips 18271_8295 (idx 149, type 54)
> tveeprom 2-00a2: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
> tveeprom 2-00a2: audio processor is CX25843 (idx 37)
> tveeprom 2-00a2: decoder processor is CX25843 (idx 30)
> tveeprom 2-00a2: has radio, has IR receiver, has IR transmitter
> pvrusb2: Supported video standard(s) reported available in hardware:
> PAL-M/N/Nc;NTSC-M/Mj/Mk;ATSC-8VSB/16VSB
> pvrusb2: Mapping standards mask=0x300b700
> (PAL-M/N/Nc;NTSC-M/Mj/Mk;ATSC-8VSB/16VSB)
> pvrusb2: Setting up 6 unique standard(s)
> pvrusb2: Set up standard idx=0 name=PAL-M
> pvrusb2: Set up standard idx=1 name=PAL-N
> pvrusb2: Set up standard idx=2 name=PAL-Nc
> pvrusb2: Set up standard idx=3 name=NTSC-M
> pvrusb2: Set up standard idx=4 name=NTSC-Mj
> pvrusb2: Set up standard idx=5 name=NTSC-Mk
> pvrusb2: Initial video standard (determined by device type): NTSC-M
> pvrusb2: Device initialization completed successfully.
> pvrusb2: registered device video0 [mpeg]
> DVB: registering new adapter (pvrusb2-dvb)
> cx25840' 2-0044: firmware: requesting v4l-cx25840.fw
> cx25840' 2-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
> cx25840' 2-0044: 0x0000 is not a valid video input!
> tda829x 2-0042: setting tuner address to 60
> tda18271 2-0060: creating new instance
> TDA18271HD/C1 detected @ 2-0060
> tda829x 2-0042: type set to tda8295+18271
> cx25840' 2-0044: Video signal: not present
> cx25840' 2-0044: Detected format: PAL-BDGHI
> cx25840' 2-0044: Specified standard: NTSC-M
> cx25840' 2-0044: Specified video input: Composite 7
> cx25840' 2-0044: Specified audioclock freq: 48000 Hz
> cx25840' 2-0044: Detected audio mode: forced mode
> cx25840' 2-0044: Detected audio standard: forced audio standard
> cx25840' 2-0044: Audio muted: no
> cx25840' 2-0044: Audio microcontroller: stopped
> cx25840' 2-0044: Configured audio standard: automatic detection
> cx25840' 2-0044: Configured audio system: BTSC
> cx25840' 2-0044: Specified audio input: External
> cx25840' 2-0044: Preferred audio mode: stereo
> cx25840' 2-0044: 0x0000 is not a valid video input!
> DVB: registering adapter 0 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)...
> tda829x 2-0042: type set to tda8295
> tda18271 2-0060: attaching existing instance
>
> root at beagleboard:/# echo composite > /sys/class/pvrusb2/sn-5371393/ctl_input/cur
> _val
> cx25840' 2-0044: firmware: requesting v4l-cx25840.fw
> cx25840' 2-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
That all looks good.
>
> root at beagleboard:/# cp /dev/video0 /home/root/test.mpeg
I usually use 'cat' here out of habit, but the 'cp' command should work
(and I doubt that using 'cp' could result in the problems below).
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
> pvrusb2: ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> pvrusb2: Encoder command: 0xdc
> pvrusb2: Giving up on command. This is normally recovered by the driver.
> pvrusb2: Failed to configure cx23416
> usb 2-1.3: firmware: requesting v4l-cx2341x-enc.fw
>
There's something screwed up happening with the encoder. This is the
chip that compresses raw video into an mpeg2 stream. I've never seen
this behavior before. Usually when the encoder gets stuck like this, it
is only after an attempt to issue a command to start streaming. But the
failing command here is different. This makes me wonder if the encoder
is even getting loaded / started correctly. I suggest two things:
1. The encoder's firmware could be corrupted. This is an easy check:
Run md5sum on the copy of v4l-cx2341x-enc.fw on your beagleboard then
compare that against an md5sum of the same file on your working system.
2. It would be useful to know if the encoder is accepting ANY commands
at all. There's a trace flag you can turn on for this. Edit
pvrusb2-main.c, look for DEFAULT_DEBUG_MASK and add PVR2_TRACE_ENCODER
to it. (Alternatively you can set this bit at run-time but you'll have
to do some hex -> decimal calculations to find the right value - see the
usage.html page for details about ways to set the debug mask.) With
that trace bit set, you should see entries in the kernel log every time
the driver tries to interact with the encoder.
-Mike
--
Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list