[linux-dvb] SAA7146 glitch on cold boot

Andrew de Quincey adq_dvb at lidskialf.net
Fri Jun 30 11:10:03 CEST 2006

On Friday 30 June 2006 10:04, Andrew de Quincey wrote:
> Hi, I have found a glitch in the saa7146  when booting from cold. I'm not
> entirely sure how to fix it. It affects the budget and budget-ci cards I
> have tested, so it may affect others.
> Test:
> 1) unplug a machine for 30 seconds
> 2) boot it up
> 3) run dvbtraffic
> 4) tune to a valid frequency (and ensure it _only_ tunes and does not open
> the demux again)
> Step 4 will lock fine, but dvbtraffic will never see any data. To fix the
> problem, you have to start+stop dvbtraffic (i.e. close+open the demux).
> After that, _everything_ works as normal; the same test can now be
> repeated, and dvbtraffic will get data finie. This also only affects cold
> boots; warm boots are fine.
> Testing with debug on shows that when step 4 above locks, the saa7146
> simply stops sending VPE interrupts. Closing+reopening the demux causes the
> SAA7146 ts stream receive configuration to be reconfigured and that seems
> to fix the problem.
> Simply initialising the frontend and/or tuning to an invalid frequency is
> not enough; I have to tune to a valid frequency and wait till it locks
> before I can guarantee everything works correctly.
> Note: if I tune, and then open the demux _before_ it has completely locked
> on a cold boot, I see this same issue.
> Anyone have any ideas? I've not tried a budget-av card yet, but I have a
> suspicion they may be affected as well.

Forgot to mention: as a workaround I can override the frontend get_status 
function op in _all_  the drivers which use saa7146, and reinitialise the 
demux when a lock is gained for the very first time; seems a bit hacky, but 
its the only thing I can think of. Can anyone think of a cleaner method?

More information about the linux-dvb mailing list