Mailing List archive

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

[linux-dvb] Re: Busy waiting in i2c_busy_rise_and_fall (was: Re: Re: full featured card without signal and required video memory investigation)



Oliver Endriss wrote:
> you might consider this patch:
[snip]

What not make explicit what Robert said (pseudo-code):

(Note that the comment for i2c_busy_rise_and_fall() says "if we are
debugging it checks if the busy flags rises and falls correctly").

	(void) i2c_status_check(saa); /* 1st read returns garbage */
	while (!timeout) {
		/* I don't know if this loop is necessary at all, or if
		 * SAA7146_I2C_BUSY is guaranteed to be set after the
		 * first dummy read (unless SAA7146_I2C_ERR)
		 */
  		status = i2c_status_check(saa);
		if (status & SAA7146_I2C_BUSY)
			break;
		cond_resched();
		udelay(100); /* don't know if it's any good to busy read I2C_STATUS*/
	}
	while (!timeout) {
  		status = i2c_status_check(saa);
		if ((status & SAA7146_I2C_ERR) || !(status & SAA7146_I2C_BUSY))
			break;
		cond_resched();
		udelay(100);
	}

> -static u32 SAA7146_I2C_BBR = SAA7146_I2C_BUS_BIT_RATE_3200;
> +static u32 SAA7146_I2C_BBR = SAA7146_I2C_BUS_BIT_RATE_120; /* 275 kHz */

I guess Michael Hunold has had a reason to do that. May his analog TV
cards have problems with that bus clock.

Johannes


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index