linux-stable/arch
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
..
alpha arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
arc Merge branch 'akpm' (patches from Andrew Morton) 2013-09-12 15:44:27 -07:00
arm Merge branch 'akpm' (patches from Andrew Morton) 2013-09-12 15:44:27 -07:00
arm64 arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
avr32 arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
blackfin Merge branch 'cpuinit_phase2' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2013-07-18 10:50:26 -07:00
c6x of: consolidate definition of early_init_dt_alloc_memory_arch() 2013-08-28 21:18:32 +01:00
cris arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
frv arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
h8300 net: rename busy poll socket op and globals 2013-07-10 17:08:27 -07:00
hexagon arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
ia64 arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
m32r arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
m68k arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
metag arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
microblaze arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
mips MIPS: DECstation I/O ASIC DMA interrupt handling fix 2013-09-13 11:57:40 +02:00
mn10300 arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
openrisc arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
parisc arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
powerpc Merge branch 'akpm' (patches from Andrew Morton) 2013-09-12 15:44:27 -07:00
s390 arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
score arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
sh arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
sparc arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
tile arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
um arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
unicore32 arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
x86 Merge branch 'akpm' (patches from Andrew Morton) 2013-09-12 15:44:27 -07:00
xtensa arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
.gitignore
Kconfig microblaze: fix clone syscall 2013-08-13 17:57:48 -07:00