Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] A/V dropouts in dvb-kernel driver



Back in October 2002 I debugged and fixed a DVB driver problem where
the picture and sound would drop out every few seconds. The part of the code
in dvb_frontend.c back then looked like this:

                if (s & FE_HAS_LOCK) {
                        fe->timeout_count = 0;
                        fe->lost_sync_count = 0;
                } else {
                        fe->lost_sync_count++;
                        if (fe->lost_sync_count < 10) continue;//XXX
                        dvb_frontend_recover (fe);
                        delay = HZ/5;
                        if (jiffies - fe->lost_sync_jiffies > TIMEOUT) {
                                s |= FE_TIMEDOUT;
                                if ((fe->status & FE_TIMEDOUT) == 0)
                                        fe->timeout_count++;
                        }
                }

The line marked with XXX fixed the problem.
Now, in the dvb-kernel driver the problem is back again, and looking at the
same code area in dvb_frontend.c there is

                        if (s & FE_HAS_LOCK)
                                continue;
                        else {
                                /* if we _WERE_ tuned, but now don't have a lock,
                                 * need to zigzag */
                                fe->state = FESTATE_ZIGZAG_FAST;
                                fe->started_auto_step = fe->auto_step;
                                check_wrapped = 0;
                        }

So apparently the "lost_sync_count" counter is no longer available.
Does anybody know why this has been removed, and what it has actually
been replaced with? Apparently this mechanism is necessary for the
rev 1.3 Siemens DVB-S cards, and if this can't be fixed, I won't be
able to use the dvb-kernel driver.

Klaus




Home | Main Index | Thread Index