kernel-ark/arch/mips
Maciej W. Rozycki 5359b938c0 MIPS: DECstation I/O ASIC DMA interrupt handling fix
This change complements commit d0da7c002f7b2a93582187a9e3f73891a01d8ee4
and brings clear_ioasic_irq back, renaming it to clear_ioasic_dma_irq at
the same time, to make I/O ASIC DMA interrupts functional.

Unlike ordinary I/O ASIC interrupts DMA interrupts need to be deasserted
by software by writing 0 to the respective bit in I/O ASIC's System
Interrupt Register (SIR), similarly to how CP0.Cause.IP0 and CP0.Cause.IP1
bits are handled in the CPU (the difference is SIR DMA interrupt bits are
R/W0C so there's no need for an RMW cycle).  Otherwise the handler is
reentered over and over again.

The only current user is the DEC LANCE Ethernet driver and its extremely
uncommon DMA memory error handler that does not care when exactly the
interrupt is cleared.  Anticipating the use of DMA interrupts by the Zilog
SCC driver this change however exports clear_ioasic_dma_irq for device
drivers to choose the right application-specific sequence to clear the
request explicitly rather than calling it implicitly in the .irq_eoi
handler of `struct irq_chip'.  Previously these interrupts were cleared in
the .end handler of the said structure, before it was removed.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/5826/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2013-09-13 11:57:40 +02:00
..
alchemy MIPS: Idle: Consolidate all declarations in <asm/idle.h>. 2013-05-22 01:34:27 +02:00
ar7 MIPS: FW: Remove obsolete header file for MTI platforms. 2013-05-08 12:30:10 +02:00
ath79 MIPS: ath79: Switch to the clkdev framework 2013-09-03 23:22:18 +02:00
bcm47xx MIPS: Set default CPU type for BCM47XX platforms 2013-07-30 18:48:50 +02:00
bcm63xx MIPS: BCM63XX: export PSI size from nvram 2013-08-05 18:58:55 +01:00
boot MIPS: Add uImage build target 2013-09-03 18:00:01 +02:00
cavium-octeon MIPS: Move declaration of Octeon function fixup_irqs() to header. 2013-09-03 18:19:28 +02:00
cobalt MIPS: Idle: Consolidate all declarations in <asm/idle.h>. 2013-05-22 01:34:27 +02:00
configs MIPS: Lantiq: Add defconfig for xway SoC 2013-09-03 23:22:16 +02:00
dec MIPS: DECstation I/O ASIC DMA interrupt handling fix 2013-09-13 11:57:40 +02:00
emma MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fw MIPS: sibyte: Declare the cfe_write() buffer as constant 2013-06-21 18:07:02 +02:00
include MIPS: DECstation I/O ASIC DMA interrupt handling fix 2013-09-13 11:57:40 +02:00
jazz Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-03-02 07:44:16 -08:00
jz4740 MIPS: jz4740: Correct clock gate bit for DMA controller 2013-07-05 11:40:53 +05:30
kernel MIPS: DECstation HRT initialization rearrangement 2013-09-13 11:56:13 +02:00
kvm Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2013-09-04 18:15:06 -07:00
lantiq MIPS: Lantiq: Falcon: fix asc clock definition 2013-09-03 23:22:16 +02:00
lasat MIPS: Refactor load/entry address calculations 2013-09-03 17:58:37 +02:00
lib MIPS: Delete __cpuinit/__CPUINIT usage from MIPS code 2013-07-14 19:36:51 -04:00
loongson MIPS: Loongson: Hide the pci code behind CONFIG_PCI 2013-09-03 15:27:39 +02:00
loongson1 MIPS: Idle: Consolidate all declarations in <asm/idle.h>. 2013-05-22 01:34:27 +02:00
math-emu MIPS: Remove unreachable break statements from cp1emu.c 2013-08-26 15:33:40 +02:00
mm Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-09-12 16:14:49 -07:00
mti-malta MIPS: Delete __cpuinit/__CPUINIT usage from MIPS code 2013-07-14 19:36:51 -04:00
mti-sead3 MIPS: Delete __cpuinit/__CPUINIT usage from MIPS code 2013-07-14 19:36:51 -04:00
netlogic MIPS: Netlogic: Built-in DTB for XLP2xx SoC boards 2013-09-03 23:22:20 +02:00
oprofile oprofilefs_create_...() do not need superblock argument 2013-09-03 22:52:48 -04:00
pci Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-09-12 16:14:49 -07:00
pmcs-msp71xx MIPS: Delete __cpuinit/__CPUINIT usage from MIPS code 2013-07-14 19:36:51 -04:00
pnx833x MIPS: PNX833x: PNX8335_PCI_ETHERNET_INT depends on CONFIG_SOC_PNX8335 2013-08-05 13:34:22 +02:00
power MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
powertv MIPS: powertv: Drop BOOTLOADER_DRIVER Kconfig symbol 2013-09-03 16:48:37 +02:00
ralink MIPS: Add driver for the built-in PCI controller of the RT3883 SoC 2013-09-04 19:17:21 +02:00
rb532 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sgi-ip22 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sgi-ip27 MIPS: Delete __cpuinit/__CPUINIT usage from MIPS code 2013-07-14 19:36:51 -04:00
sgi-ip32 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sibyte MIPS: Delete __cpuinit/__CPUINIT usage from MIPS code 2013-07-14 19:36:51 -04:00
sni serial: sccnxp: Using CLK API for getting UART clock 2013-07-31 18:08:01 -07:00
txx9 MIPS: TXx9: Fix build error if CONFIG_TOSHIBA_JMR3927 is not selected 2013-09-03 15:30:50 +02:00
vr41xx MIPS: Idle: Consolidate all declarations in <asm/idle.h>. 2013-05-22 01:34:27 +02:00
Kbuild KVM/MIPS32: Infrastructure/build files. 2013-05-08 03:55:34 +02:00
Kbuild.platforms MIPS: Delete Wind River ppmc eval board support. 2013-07-01 15:10:53 +02:00
Kconfig Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-09-12 16:14:49 -07:00
Kconfig.debug consolidate per-arch stack overflow debugging options 2013-07-04 11:25:39 -07:00
Makefile MIPS: Add uImage build target 2013-09-03 18:00:01 +02:00