Re: [PATCHv4 7/7] ASoC: TWL6030: Detect power-up sequence completion

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

 



On 25 Feb 2010, at 00:24, "Olaya, Margarita" <magi.olaya@xxxxxx> wrote:



-----Original Message-----
From: Mark Brown [mailto:broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx]
Sent: Wednesday, February 24, 2010 7:59 AM
To: Olaya, Margarita
Cc: alsa-devel@xxxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx; lrg@xxxxxxxxxxxxxxx
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.


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux