[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