On Sat, Nov 15, 2008 at 8:56 PM, Mike Isely <[EMAIL PROTECTED]> 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 _______________________________________________ pvrusb2 mailing list [email protected] http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
