[pvrusb2] No data from HVR-1900 encoder

Mike Isely isely at isely.net
Fri Jun 17 20:51:38 CDT 2011


See below..

  -Mike


On Fri, 17 Jun 2011, Magnus Ekhall wrote:

> 
> 
> I can't say that I see any efforts to recover. Here is a longer,
> consecutive part of the kernel log:
> 
> Jun 12 09:15:05 digimatrix kernel: [67522.143822] pvrusb2: ***WARNING***
> device's encoder appears to be stuck (status=0x00000003)
> Jun 12 09:15:05 digimatrix kernel: [67522.143829] pvrusb2: Encoder
> command: 0x81
> Jun 12 09:15:05 digimatrix kernel: [67522.143833] pvrusb2: Giving up on
> command.  This is normally recovered via a firmware reload and
> re-initialization; c
> oncern is only warranted if this happens repeatedly and rapidly.
> Jun 12 09:40:04 digimatrix kernel: [69021.735287] pvrusb2: ***WARNING***
> device's encoder appears to be stuck (status=0x00000003)
> Jun 12 09:40:04 digimatrix kernel: [69021.735293] pvrusb2: Encoder
> command: 0x81
> Jun 12 09:40:04 digimatrix kernel: [69021.735297] pvrusb2: Giving up on
> command.  This is normally recovered via a firmware reload and
> re-initialization; c
> oncern is only warranted if this happens repeatedly and rapidly.
> Jun 12 17:17:28 digimatrix kernel: [96465.946075] ath: Failed to stop TX
> DMA in 100 msec after killing last frame
> Jun 12 17:17:28 digimatrix kernel: [96465.946128] ath: Failed to stop TX
> DMA!
> Jun 15 01:30:04 digimatrix kernel: [298828.093416] pvrusb2:
> ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> Jun 15 01:30:04 digimatrix kernel: [298828.093423] pvrusb2: Encoder
> command: 0x81
> Jun 15 01:30:04 digimatrix kernel: [298828.093427] pvrusb2: Giving up on
> command.  This is normally recovered via a firmware reload and
> re-initialization; 
> concern is only warranted if this happens repeatedly and rapidly.
> Jun 15 20:59:34 digimatrix kernel: [369000.134310] pvrusb2:
> ***WARNING*** device's encoder appears to be stuck (status=0x00000003)
> Jun 15 20:59:34 digimatrix kernel: [369000.134317] pvrusb2: Encoder
> command: 0x81
> Jun 15 20:59:34 digimatrix kernel: [369000.134321] pvrusb2: Giving up on
> command.  This is normally recovered via a firmware reload and
> re-initialization; 
> concern is only warranted if this happens repeatedly and rapidly.
> 
> 
> 
> As you can see the message regarding the stuck encoder is repeated, but
> sometimes with hours between the messages, and sometimes with days.
> 
> What would the recovery attempt log message look like?

When the recovery happens, it typically takes less than a second.  (It 
is usually so fast that people don't even notice it had to recover 
unless one looks at the kernel log.)  The fact that you're going hours / 
days between errors means it's probably recovering OK.  So you're 
generally not getting into a situation when it's in rapid loop 
repeatedly trying to recover.

You might not be seeing the recovery related messages because those 
particular debug flags are likely turned off in the driver.  You can, if 
you want, turn on additional debug flags without needing to rebuild 
anything.  There's information on how to change that debug mask here:

http://www.isely.net/pvrusb2/usage.html#Logging

However that doesn't explain the behavior that's causing you a problem - 
that it's just getting jammed and NOT recovering.  If you can pretty 
regularly get it to jam, while additional debug flags are on, we might 
be able to pin it down.  Read on...



> 
> I'm running an up to date mythbuntu where the pvrusb2 module is of
> version:
> srcversion:     8576222596CEAD8A32E8AB8
> vermagic:       2.6.38-8-generic SMP mod_unload modversions 

Assuming that the driver wasn't patched in this distribution then you're 
probably running the vanilla driver that comes with the 2.6.38 kernel.  
That's a mature, recent, driver.

> 
> I'm starting to suspect problematic hardware, but I would like to look
> at all other possibilities before I open my wallet. :)

One thing we have to consider here is that the logic you're looking at, 
that is the behavior of the mpeg encoder dying and the driver recovering 
it automatically, has been a feature of the driver for *many* years.  
It's been a stable behavior over that time, so the fact that you're the 
first person in, well basically forever, to be reporting this issue 
leads me to suspect that you might indeed be dealing with marginal 
hardware.

These pvrusb2-driver devices are never USB-powered - they always require 
an external power brick to run.  The reason for this is that the mpeg 
encoder chip needs a lot of juice to do its job.  It is likely the 
hottest part inside the box.  So if, for example, the box might be 
getting too warm, then it's reasonable to suspect that the first chip to 
be affected by it will in fact be the encoder chip.  The encoder chip is 
what is crashing on you...

If your tuner is already out of warranty, a good experiment I'd probably 
try is to run it with the top removed and a fan blowing air across it.  
This wouldn't really be a "fix", but if having the air flowing across 
the board seems to lower the probability of these crashes then I'd say 
you've got a pretty strong datapoint that it's getting too hot.

If you can run your tuner under Windows (yeah, I know, a pain), you can 
also diagnose bad hardware if running it under Windows also results in 
periodic failures.  (However the inverse may not be true - it could be 
marginal hardware that only dies when driven hard enough and the two 
software environments - Linux vs Windows - are certainly going to be 
driving it differently.)


> 
> And if a hardware problem is detectable and there is a way to work
> around it (by re-initializing it) that's fine as well.

Well the driver is already doing some of that re-initialization...

  -Mike


-- 

Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8


More information about the pvrusb2 mailing list