On Fri, Feb 26, 2010 at 06:22:34PM -0600, Olaya, Margarita wrote:
Do you mean something like this? time_left = wait_for_completion_timeout(&priv->ready, msecs_to_jiffies(48)); if(!time_left) { twl_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &intid, TWL6040_REG_INTID); if (!(intid & TWL6040_READYINT)) goto error; }
return 0;
error: dev_err(codec->dev, "timeout waiting for READYINT\n"); return -ETIMEDOUT;
Yes, or wrapped in a for loop with shorter timeouts on the individual waits.
but in this case will it not take unnecessarily 48ms when the interruption line is not valid?
You're always going to get some additional delay when polling unless you busy wait for completion, which obviously has its own problems.