linux/arch/arm
Russell King - ARM Linux 5d3df93542 Dove: Attempt to fix PMU/RTC interrupts
Fix the acknowledgement of PMU interrupts on Dove: some Dove hardware
has not been sensibly designed so that interrupts can be handled in a
race free manner.  The PMU is one such instance.

The pending (aka 'cause') register is a bunch of RW bits, meaning that
these bits can be both cleared and set by software (confirmed on the
Armada-510 on the cubox.)

Hardware sets the appropriate bit when an interrupt is asserted, and
software is required to clear the bits which are to be processed.  If
we write ~(1 << bit), then we end up asserting every other interrupt
except the one we're processing.  So, we need to do a read-modify-write
cycle to clear the asserted bit.

However, any interrupts which occur in the middle of this cycle will
also be written back as zero, which will also clear the new interrupts.

The upshot of this is: there is _no_ way to safely clear down interrupts
in this register (and other similarly behaving interrupt pending
registers on this device.)  The patch below at least stops us creating
new interrupts.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: stable@vger.kernel.org
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2012-11-21 18:25:11 +00:00
..
boot ARM: boot: Fix usage of kecho 2012-11-12 23:22:54 +01:00
common ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
configs ARM: versatile: fix versatile_defconfig 2012-10-27 17:46:56 +02:00
crypto arm/crypto: Add optimized AES and SHA1 routines 2012-09-07 04:17:02 +08:00
include Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2012-11-07 04:14:45 +01:00
kernel Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2012-11-07 04:14:45 +01:00
lib ARM: export default read_current_timer 2012-10-09 20:24:36 +02:00
mach-at91 Two little fixes, one related to the move to sparse irq and 2012-11-16 16:43:58 +01:00
mach-bcm2835 ARM: dtb: move all dtb targets to common Makefile 2012-09-20 22:58:17 -07:00
mach-clps711x ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-cns3xxx
mach-davinci ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-dove Dove: Attempt to fix PMU/RTC interrupts 2012-11-21 18:25:11 +00:00
mach-ebsa110 ARM: soc: driver specific changes 2012-10-01 18:46:13 -07:00
mach-ep93xx ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
mach-exynos ARM: EXYNOS: Set .smp field of machine descriptor for exynos4-dt 2012-10-22 08:16:44 +09:00
mach-footbridge ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-gemini ARM: gemini: fix the gemini build 2012-09-04 22:17:34 -07:00
mach-h720x ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-highbank ARM: highbank: retry wfi on reset request 2012-11-06 06:54:36 -08:00
mach-imx ARM: imx: ehci: fix host power mask bit 2012-11-16 15:55:05 +01:00
mach-integrator ARM: integrator: use __iomem pointers for MMIO, part 2 2012-10-09 17:27:33 +02:00
mach-iop13xx Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-iop32x Merge branch 'cleanup/__iomem' into next/cleanup 2012-09-22 10:24:29 -07:00
mach-iop33x ARM: iop3xx: use fixed PCI i/o mapping 2012-07-26 09:10:04 -05:00
mach-ixp4xx ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-kirkwood ARM: Kirkwood: fix disabling CACHE_FEROCEON_L2 2012-10-18 17:04:24 +00:00
mach-ks8695 Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-l7200/include/mach
mach-lpc32xx ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
mach-mmp ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-msm ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-mv78xx0 Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-mvebu ARM: mvebu: fix build breaks from multi-platform conversion 2012-09-28 22:27:07 +02:00
mach-mxs ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
mach-netx ARM: netx: move platform_data definitions 2012-09-14 11:17:36 +02:00
mach-nomadik ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-omap1 ASoC: Fixes for v3.7 2012-10-17 14:09:15 +02:00
mach-omap2 Minor OMAP PM and hwmod fixes for v3.7-rc series via 2012-11-12 22:41:39 +01:00
mach-orion5x ARM: soc: late platform updates 2012-10-07 20:55:16 +09:00
mach-picoxcell ARM: initial multiplatform support 2012-09-14 09:22:06 -05:00
mach-prima2 pinctrl: sirf: remove sirfsoc_gpio_set_pull function 2012-10-15 09:09:27 +02:00
mach-pxa ARM: pxa/spitz_pm: Fix hang when resuming from STR 2012-10-28 07:53:45 +08:00
mach-realview ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-rpc ARM: rpc: check device_register return code in ecard_probe 2012-10-07 10:33:09 +02:00
mach-s3c24xx Merge branch 'v3.7-samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes 2012-10-26 14:45:06 +02:00
mach-s3c64xx ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s3c2410
mach-s3c2412 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s3c2440 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-s5p64x0 ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
mach-s5pc100 ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
mach-s5pv210 ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
mach-sa1100 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-shark Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
mach-shmobile ARM: shmobile: r8a7779: I/O address abuse cleanup 2012-10-19 15:39:38 +09:00
mach-socfpga ARM: initial multiplatform support 2012-09-14 09:22:06 -05:00
mach-spear3xx ARM: move all dtb targets out of Makefile.boot 2012-09-14 09:22:04 -05:00
mach-spear6xx ARM: move all dtb targets out of Makefile.boot 2012-09-14 09:22:04 -05:00
mach-spear13xx ARM: SPEAr: Remove unused empty files 2012-10-25 16:34:18 +02:00
mach-tegra ARM: tegra: add tegra_timer clock 2012-10-16 11:15:05 -06:00
mach-u300 ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-ux500 ARM: ux500: Fix build error relating to IRQCHIP_SKIP_SET_WAKE 2012-10-25 08:43:49 +01:00
mach-versatile ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
mach-vexpress Features: 2012-10-07 07:13:01 +09:00
mach-vt8500 arm: vt8500: Fix build warning in uncompress.h 2012-10-07 14:50:06 -07:00
mach-w90x900 ARM: w90x900: move platform_data definitions 2012-09-14 11:18:59 +02:00
mach-zynq
mm Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2012-11-07 04:14:45 +01:00
net
nwfpe
oprofile ARM: 7448/1: perf: remove arm_perf_pmu_ids global enumeration 2012-07-09 17:41:10 +01:00
plat-iop Bunch of perf updates for the ARM backend that pave the way for 2012-09-04 22:12:41 -07:00
plat-mxc ARM i.MX fixes for 3.7-rc 2012-10-25 15:57:40 +02:00
plat-nomadik ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
plat-omap ARM: OMAP2+: hwmod: add flag to prevent hwmod code from touching IP block during init 2012-10-31 05:02:31 -06:00
plat-orion Merge branch 'samsung_platform_data' into staging/for_v3.7 2012-10-05 22:32:05 -03:00
plat-pxa ARM: pxa: move platform_data definitions 2012-09-14 11:18:10 +02:00
plat-s3c24xx ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
plat-samsung ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-10-17 16:47:32 +09:00
plat-spear ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
plat-versatile Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-10-07 21:20:57 +09:00
tools ARM: boot: Fix usage of kecho 2012-11-12 23:22:54 +01:00
vfp ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set 2012-10-29 10:04:05 +00:00
xen xen/arm: Fix compile errors when drivers are compiled as modules (export more). 2012-11-09 07:48:22 -05:00
Kconfig Merge tag 'fixes-for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into fixes 2012-10-22 22:56:09 +01:00
Kconfig-nommu
Kconfig.debug ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
Makefile ARM: pass -marm to gcc by default for both C and assembler 2012-10-09 20:29:05 +02:00