[alsa-devel] [PATCHv4 7/7] ASoC: TWL6030: Detect power-up sequence completion
Mark Brown
broonie at opensource.wolfsonmicro.com
Thu Feb 25 09:42:21 CET 2010
On 25 Feb 2010, at 00:24, "Olaya, Margarita" <magi.olaya at ti.com> wrote:
>
>
>> -----Original Message-----
>> From: Mark Brown [mailto:broonie at opensource.wolfsonmicro.com]
>> Sent: Wednesday, February 24, 2010 7:59 AM
>> To: Olaya, Margarita
>> Cc: alsa-devel at alsa-project.org; linux-omap at vger.kernel.org; lrg at slimlogic.co.uk
>> Subject: Re: [PATCHv4 7/7] ASoC: TWL6030: Detect power-up sequence
>> completion
>>
>> On Tue, Feb 23, 2010 at 06:10:54PM -0600, Olaya, Margarita wrote:
>>
>>> + if (naudint) {
>>> + /* wait for ready interrupt with 48 ms timeout */
>>> + time_left = wait_for_completion_timeout(&priv->ready,
>>> + msecs_to_jiffies(48));
>>> + } else {
>>> + /* retry 3 times only */
>>> + for (time_left = 3; time_left > 0; time_left--) {
>>> + mdelay(16);
>>> + twl_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &intid,
>>> + TWL6030_REG_INTID);
>>> + if (intid & TWL6030_READYINT)
>>> + break;
>>> + }
>>> + }
>>
>> It strikes me that you could combine these two cases - the
>> wait_for_completion_timeout() will function just as well as a delay.
>> I'd also expect to see an error reported if the device doesn't
>> report as
>> ready one way or another.
>
> It is split to prevent the case of none valid irq line connected, in
> such case, wait_for_completion won't work
It will - you can specify a timeout so if the interrupt doesn't happen
all that happens is that you delay for the specified timeout.
>
More information about the Alsa-devel
mailing list