[pvrusb2] Can't get Hauppauge HVR-1950 to work

Michael Krufky mkrufky at linuxtv.org
Mon Nov 24 16:57:39 CST 2008


On Sat, Nov 15, 2008 at 8:56 PM, Mike Isely <isely at isely.net> wrote:
> On Sat, 15 Nov 2008, Lars Maersk wrote:
[snip]
>> After resetting the media player and a couple of minutes later:
>>
>> cx25840' 1-0044: 0x0000 is not a valid video input!
>> firmware: requesting v4l-cx25840.fw
>> cx25840' 1-0044: loaded v4l-cx25840.fw firmware (12559 bytes)
>
>> s5h1411_writereg: writereg error 0x19 0xf5 0x0000, ret == -5)
>> s5h1411_writereg: writereg error 0x19 0xf4 0x0001, ret == -5)
>
> I've never seen these messages before (s5h1411 errors).  Those do not
> come from the pvrusb2 driver (likely instead the tuner module).  This
> might be suggestive of a real hardware problem :-(


It's a race condition.  The user must have been streaming a digital
service, then stopped streaming, changed to analog mode, and
immediately began streaming encoded mpeg content.

One thing that we didn't think about is the fact that the digital side
of the driver uses a dvb_frontend thread within dvb-core.  This thread
waits a few seconds after digital tuning / streaming has stopped, and
then shuts down the demodulator and tuner.

So, explaining the above errors:

I assume that first we're streaming digital, then at this point we
changed to analog

cx25840' 1-0044: 0x0000 is not a valid video input!
firmware: requesting v4l-cx25840.fw
cx25840' 1-0044: loaded v4l-cx25840.fw firmware (12559 bytes)

This is the point where the dvb_frontend thread must have assumed that
the tuner is now idle.

This first register write closes the i2c gate:  (it's actually a no-op
on the HVR1950 hardware)

s5h1411_writereg: writereg error 0x19 0xf5 0x0000, ret == -5)

This second register write puts the s5h1411 into low-power sleep mode.

s5h1411_writereg: writereg error 0x19 0xf4 0x0001, ret == -5)

cx25840' 1-0044: 0x0000 is not a valid video input!
firmware: requesting v4l-cx25840.fw
cx25840' 1-0044: loaded v4l-cx25840.fw firmware (12559 bytes)
cx25840' 1-0044: 0x0000 is not a valid video input!

The reason why we get i2c errors speaking to the s5h1411 is because
the device had already switched from digital to analog mode.  At the
time the i2c writes are attempted, the s5h1411 is held in reset, and
that's why we see the i2c errors.

...meanwhile, it shouldn't matter.  When we switch back to digital
mode, the demod is taken out of reset and reinitialized.

This is not a hardware problem -- it is a race condition, and it is
not specific to the pvrusb2 driver.  This issue is present in all
hybrid v4l/dvb drivers.  I'm not sure how we'll fix this, but the
topic has come up recently amongst DVB developers.

I will keep Mike informed, in case a real solution is found to fix
this globally.

Cheers,

Mike Krufky


More information about the pvrusb2 mailing list