Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: A/V dropouts in dvb-kernel driver
On Sat, Sep 11, 2004 at 03:19:50PM +0200, Klaus Schmidinger wrote:
> I've tracked down the problem somewhat more and found that
> in ves1x93.c, in case 'FE_READ_STATUS', the 'sync' value
> sometimes has somewhat strange values. Mostly, when it's
> wrong, one of the lower two bits is 0 (sometimes even both),
> so this would indicate that there _is_ VITERBI _and_ SYNC,
> but no SIGNAL or CARRIER (which clearly can't be, because without
> signal or carrier there can't be anything else).
>
> As a workaround (since the actual problem apparently is inside the
> VES1893 chip) I have added the following code, which re-reads the
> 'sync' value in case it doesn't make sense:
>
> --- linux/drivers/media/dvb/frontends/ves1x93.c 2004-08-25 21:27:08.000000000 +0200
> +++ linux/drivers/media/dvb/frontends/ves1x93.c 2004-09-11 15:03:09.000000000 +0200
> @@ -452,6 +452,11 @@
> {
> fe_status_t *status = arg;
> u8 sync = ves1x93_readreg (i2c, 0x0e);
> + int maxtry = 10; // just for safety - let's not get stuck here
> + while ((sync & 0x03) != 0x03 && (sync & 0x0c) && maxtry--) {
> + msleep(10);
> + sync = ves1x93_readreg (i2c, 0x0e);
> + }
>
> *status = 0;
>
>
Just as I wanted to commit this (despite the fact that I can't test
it myself atm), I saw you already took care of it.
Thanks a lot for digging into this.
Johannes
Home |
Main Index |
Thread Index