Archived
14
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/arch/arm
Matt Reimer e2f04e1894 [ARM] 3546/1: PATCH: subtle lost interrupts bug on i.MX
Patch from Matt Reimer

There is a subtle bug in the GPIO interrupt status register
handling in arch/arm/mach-imx/irq.c:imx_gpio_ack_irq(). The
documentation states that a 1 should be written to the relevant bit to
acknowledge a GPIO interrupt, but that is not what the code does.

The problem is that the |= writes back 1s for all the *other*
interrupts represented in the register, so interrupts could get lost.
For example, if interrupts are pending for GPIO B10 and B12, ISR_B
would have the value 0x00001400. Then when the interrupt code handles
GPIO B10, it eventually calls imx_gpio_ack_irq(IRQ_GPIOB(10)), which
effectively does this:

ISR_B |= 1 << 10;

with the result that (0x00001400 | 0x00000400) is written, clearing
the interrupt status bits for *both* GPIO B10 and B12.

The fix is to write 1s only for the interrupts we want to clear.

The same problem seems to be occurring in the DMA code; this patch
does not address those issues.

Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Matt Reimer <mreimer@vpop.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-06-08 22:46:48 +01:00
..
boot [ARM] 3488/1: make icedcc_putc do the right thing 2006-05-02 20:40:56 +01:00
common [ARM] 3478/1: SharpSL SCOOP: Fix potenial build failure 2006-04-18 23:18:53 +01:00
configs [ARM] 3508/1: Update collie defconfig 2006-05-09 22:27:51 +01:00
kernel [ARM] arch/arm/kernel/dma-isa.c: named initializers 2006-05-16 22:09:46 +01:00
lib [ARM] 3524/1: ARM EABI: more 64-bit aligned stack fixes 2006-05-16 11:39:31 +01:00
mach-aaec2000 [ARM] 3507/1: Replace map_desc.physical with map_desc.pfn: aaed2000 2006-05-07 22:49:24 +01:00
mach-at91rm9200 Fix AT91RM9200 build breakage 2006-04-14 18:38:01 -07:00
mach-clps711x
mach-clps7500
mach-ebsa110
mach-ep93xx [ARM] 3451/1: ep93xx: use the m48t86 rtc driver on the ts72xx platform 2006-04-02 16:17:40 +01:00
mach-footbridge
mach-h720x
mach-imx [ARM] 3546/1: PATCH: subtle lost interrupts bug on i.MX 2006-06-08 22:46:48 +01:00
mach-integrator Merge master.kernel.org:/home/rmk/linux-2.6-serial 2006-03-28 13:52:37 -08:00
mach-iop3xx
mach-ixp4xx [ARM] Trivial typo fixes 2006-06-04 21:22:11 +01:00
mach-ixp23xx [ARM] 3540/1: ixp23xx: deal with gap in interrupt bitmasks 2006-06-02 19:51:51 +01:00
mach-ixp2000
mach-l7200
mach-lh7a40x
mach-omap1 [ARM] 3460/1: ARM: OMAP: Remove unnecessary nop_release() 2006-04-09 22:21:02 +01:00
mach-omap2 [ARM] 3460/1: ARM: OMAP: Remove unnecessary nop_release() 2006-04-09 22:21:02 +01:00
mach-pxa [ARM] 3547/1: PXA-OHCI: Allow platforms to specify a power budget 2006-06-08 22:44:07 +01:00
mach-realview [ARM] 3527/1: MPCore Boot Lockup Fix 2006-05-16 16:50:21 +01:00
mach-rpc
mach-s3c2410 [ARM] Trivial typo fixes 2006-06-04 21:22:11 +01:00
mach-sa1100 [ARM] Fix Neponset IRQ handling 2006-06-08 17:59:31 +01:00
mach-shark
mach-versatile
mm [PATCH] ARM: Fix XScale PMD setting 2006-05-31 16:27:44 -07:00
nwfpe
oprofile
plat-omap [ARM] 3461/1: ARM: OMAP: Fix clk_get() when using id and name 2006-04-09 22:21:05 +01:00
tools [ARM] Update mach-types 2006-05-08 20:31:11 +01:00
vfp [ARM] 3499/1: Fix VFP FPSCR corruption for double exception case 2006-05-05 22:32:23 +01:00
Kconfig [ARM] 3487/1: IXP4xx: Support non-PCI systems 2006-04-30 15:34:29 +01:00
Kconfig-nommu
Kconfig.debug [ARM] Trivial typo fixes 2006-06-04 21:22:11 +01:00
Makefile [ARM] 3484/1: Correct AEABI CFLAGS for correct enum handling 2006-04-25 20:36:04 +01:00