mirror of
https://github.com/torvalds/linux.git
synced 2024-12-21 02:21:36 +00:00
b02b917211
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 <dhylands@gmail.com> for reporting this problem and doing some testing to help isolate the cause. Thanks to Steve Sakoman <sakoman@gmail.com> for catching a bug in the first version of this patch. Thanks to Russell King <linux@arm.linux.org.uk> for comments. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Dave Hylands <dhylands@gmail.com> Cc: Steve Sakoman <sakoman@gmail.com> Tested-by: Steve Sakoman <sakoman@gmail.com> Cc: Russell King - ARM Linux <linux@arm.linux.org.uk> Signed-off-by: Kevin Hilman <khilman@ti.com> |
||
---|---|---|
.. | ||
include/plat | ||
clock.c | ||
common.c | ||
counter_32k.c | ||
cpu-omap.c | ||
debug-devices.c | ||
debug-leds.c | ||
devices.c | ||
dma.c | ||
dmtimer.c | ||
fb.c | ||
fb.h | ||
i2c.c | ||
io.c | ||
iommu-debug.c | ||
iommu.c | ||
iopgtable.h | ||
iovmm.c | ||
Kconfig | ||
mailbox.c | ||
Makefile | ||
mcbsp.c | ||
mux.c | ||
ocpi.c | ||
omap_device.c | ||
omap-pm-noop.c | ||
sram.c | ||
sram.h | ||
usb.c |