android_kernel_motorola_sm6225/arch/arm/plat-omap
Paul Walmsley b02b917211 ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock control detection
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>
2011-10-07 13:41:49 -07:00
..
include/plat ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock control detection 2011-10-07 13:41:49 -07:00
clock.c Merge branch 'next/devel2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:42:18 -07:00
common.c
counter_32k.c Convert OMAPs 32kHz clocksource implementation to use the generic MMIO 2011-07-10 23:05:34 -07:00
cpu-omap.c arm: omap: fix section mismatch warning 2011-03-02 16:32:52 -08:00
debug-devices.c
debug-leds.c
devices.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dma.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dmtimer.c OMAP4: DMTIMER: enable autoidle mode 2011-07-04 04:11:08 -07:00
fb.c
fb.h
i2c.c
io.c
iommu-debug.c
iommu.c omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured 2011-05-11 10:47:50 -07:00
iopgtable.h
iovmm.c arch:arm:plat-omap:iovmm: remove unused variable 'va' 2011-08-10 04:17:16 -07:00
Kconfig OMAP1: enable GENERIC_IRQ_CHIP 2011-08-05 11:54:56 -07:00
mailbox.c Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2011-03-16 08:20:19 -07:00
Makefile GPIO: OMAP: move to drivers/gpio 2011-05-27 08:43:34 -07:00
mcbsp.c ASoC: omap: McBSP: fix build breakage on OMAP1 2011-07-11 02:08:06 -07:00
mux.c
ocpi.c
omap-pm-noop.c
omap_device.c OMAP: omap_device: fix !CONFIG_SUSPEND case in _noirq handlers 2011-09-06 13:19:58 -07:00
sram.c ARM: pm: omap3: run the ASM sleep code from DDR 2011-06-29 19:07:47 +01:00
sram.h
usb.c