Mailing List archive

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

[linux-dvb] Re: Possible bug in dvb_frontend.c [Was: "Video datastreambrocken" - origin (maybe) found]



Johannes Stezenbach wrote:
> Wolfgang Fritz wrote:
> 
>>What I find strange is that dvb_frontend_thread adds an FE event while it is in FSM state
>>FESTATE_RETUNE. If I understand the code correctly, nothing has happened to the hardware up to now
>>and the thus the FE state reflects the last state of the previous tuning. This does not make sense
>>to me. I attach a patch that resets the FE state to 0 and does not add an event if the FSM is in
>>state FESTATE_RETUNE. It removes the "spike" and otherwise seems to work as before.
> 
> 
>>--- dvb_frontend.orig.c	2004-08-01 12:32:44.000000000 +0200
>>+++ dvb_frontend.c	2004-08-01 13:13:27.000000000 +0200
>>@@ -520,10 +520,14 @@
>> 		}
>> 	    
>> 		// get the frontend status
>>-		dvb_frontend_internal_ioctl (&fe->frontend, FE_READ_STATUS, &s);
>>-		if (s != fe->status)
>>-			dvb_frontend_add_event (fe, s);
>>-
>>+		if (fe->state & FESTATE_RETUNE) {
>>+			s = 0;
>>+		} else {
>>+			dvb_frontend_internal_ioctl (&fe->frontend, FE_READ_STATUS, &s);
>>+			if (s != fe->status) {
>>+				dvb_frontend_add_event (fe, s);
>>+			}
>>+		}
>> 		// if we're not tuned, and we have a lock, move to the TUNED state
>> 		if ((fe->state & FESTATE_WAITFORLOCK) && (s & FE_HAS_LOCK)) {
>> 			update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK);
> 
> 
> 
> This patch looks good to me.
> 
> Comitted to CVS.
> 

Could you commit it to the 2.4 branch too?

Thanks,

Wolfgang

> Thanks,
> Johannes
> 
> 






Home | Main Index | Thread Index