On Tue, 06 Mar 2007 14:54:18 +0800 "Wu, Bryan" <bryan.wu@xxxxxxxxxx> wrote:
> Hi folks,
>
> [PATCH] Blackfin: blackfin i2c driver
>
> + struct i2c_msg *pmsg;
> + int i, ret;
> + int rc = 0;
> +
> + if (!(bfin_read_TWI_CONTROL() & TWI_ENA))
> + return -ENXIO;
> +
> + down(&iface->twi_lock);
> +
> + while (bfin_read_TWI_MASTER_STAT() & BUSBUSY) {
> + up(&iface->twi_lock);
> + schedule();
> + down(&iface->twi_lock);
> + }
That's a busy loop until this task's timeslice has expired. It'll work,
but it'll suck a bit. (Repeated in several places)