Re: [PATCH] i2c-omap: fix I2C timeouts due to recursive omap_i2c_{un,}idle()

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

 



On Fri, Oct 10, 2008 at 9:58 AM, Paul Walmsley <paul@xxxxxxxxx> wrote:
>
> omap_i2c_unidle() and omap_i2c_idle() are called recursively during
> omap_i2c_probe().  This is evidently unexpected and will wipe
> out the I2C interrupt enable register the second time that
> omap_i2c_idle() is called consecutively.  Any I2C transactions
> following a probe of a bus with at least one device on it will then
> time out.
>
> Fix by moving omap_i2c_idle() further up in omap_i2c_probe().  Ensure
> the I2C controller is marked as idle before the probe starts.  Also
> attempt to catch future reappearances of this bug early in development
> by warning in omap_i2c_{un,}idle() when they are called recursively.
>
> Problem reported by David Brownell <david-b@xxxxxxxxxxx>.
>
> Tested on 3430SDP and 2430SDP.
>
> Signed-off-by: Paul Walmsley <paul@xxxxxxxxx>
> Cc: David Brownell <david-b@xxxxxxxxxxx>
> Cc: Richard Woodruff <r-woodruff2@xxxxxx>

I can confirm that this patch eliminates the i2c timeout issues on Overo.

Acked-by; Steve Sakoman <steve@xxxxxxxxxxx>
--
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