[PATCH v3] ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock control detection
From: Kevin Hilman <hidden>
Date: 2011-10-06 23:46:28
Also in:
linux-omap
Paul Walmsley [off-list ref] writes:
The way that we detect which OMAP3 chips support I/O wakeup and
software I/O chain clock control is broken.
Currently, I/O wakeup is marked as present for all OMAP3 SoCs other
than the AM3505/3517. The TI81xx family of SoCs are at present
considered to be OMAP3 SoCs, but don't support I/O wakeup. To resolve
this, convert the existing blacklist approach to an explicit,
whitelist support, in which only SoCs which are known to support I/O
wakeup are listed. (At present, this only includes OMAP34xx,
OMAP3503, OMAP3515, OMAP3525, OMAP3530, and OMAP36xx.)
Also, the current code incorrectly detects the presence of a
software-controllable I/O chain clock on several chips that don't
support it. This results in writes to reserved bitfields, unnecessary
delays, and console messages on kernels running on those chips:
http://www.spinics.net/lists/linux-omap/msg58735.html
Convert this test to a feature test with a chip-by-chip whitelist.
Thanks to Dave Hylands [off-list ref] for reporting this problem
and doing some testing to help isolate the cause. Thanks to Steve
Sakoman [off-list ref] for catching a bug in the first version of
this patch.Based on the comments from Russell, I made a couple minor changes. Here's the updated version (also in my for_3.1/pm-fixes-3 branch.) Other than that, it looks like a good cleanup, queueing for v3.2 and will submit to stable as well. Tony, do you think we can still queue this as a fix for v3.1? Kevin