summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ns9xxx/irq.c
Commit message (Collapse)AuthorAgeFilesLines
* ARM: 6888/1: remove ns9xxx portUwe Kleine-König2011-04-281-74/+0
| | | | | | | | The port is actually unmaintained and only received global cleanups and a few build fixes since mid 2008. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* arm: Fold irq_set_chip/irq_set_handlerThomas Gleixner2011-03-291-2/+1
| | | | | | Use irq_set_chip_and_handler() instead. Converted with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* arm: Cleanup the irq namespaceThomas Gleixner2011-03-291-2/+2
| | | | | | Convert to the new function names. Automated with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
* arm: Ns9xxx: Remove private irq flow handlerThomas Gleixner2011-03-281-54/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handle_prio_irq is almost identical with handle_fasteoi_irq. The subtle differences are 1) The handler checks for IRQ_DISABLED after the device handler has been called. In case it's set it masks the interrupt. 2) When the handler sees IRQ_DISABLED on entry it masks the interupt in the same way as handle_fastoei_irq, but does not set the IRQ_PENDING flag. 3) Instead of gracefully handling a recursive interrupt it crashes the kernel. #1 is just relevant when a device handler calls disable_irq_nosync() and it does not matter whether we mask the interrupt right away or not. We handle lazy masking for disable_irq anyway, so there is no real reason to have this extra mask in place. #2 will prevent the resend of a pending interrupt, which can result in lost interrupts for edge type interrupts. For level type interrupts the resend is a noop in the generic code. According to the datasheet all interrupts are level type, so marking them as such will result in the exact same behaviour as the private handle_prio_irq implementation. #3 is just stupid. Crashing the kernel instead of handling a problem gracefully is just wrong. With the current semantics- all handlers run with interrupts disabled - this is even more wrong. Rename ack to eoi, remove the unused mask_ack, switch to handle_fasteoi_irq and remove the private function. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Acked-by: Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> Cc: linux-arm-kernel@lists.infradead.org LKML-Reference: <20110202212552.299898447@linutronix.de>
* ARM: ns9xxx: irq_data conversion.Lennert Buytenhek2011-01-131-14/+14
| | | | | Signed-off-by: Lennert Buytenhek <buytenh@secretlab.ca> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
* genirq: Convert irq_desc.lock to raw_spinlockThomas Gleixner2009-12-141-4/+4
| | | | | | | | | Convert locks which cannot be sleeping locks in preempt-rt to raw_spinlocks. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Peter Zijlstra <peterz@infradead.org> Acked-by: Ingo Molnar <mingo@elte.hu>
* sparseirq: use kstat_irqs_cpu on non-x86 architectures tooYinghai Lu2009-01-121-2/+1
| | | | | | | so we could move kstat_irqs array to irq_desc struct. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* [ARM] Convert asm/io.h to linux/io.hRussell King2008-09-061-1/+1
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/machRussell King2008-08-071-3/+3
| | | | | | This just leaves include/asm-arm/plat-* to deal with. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Eliminate useless includes of asm/mach-types.hRussell King2008-08-071-1/+0
| | | | | | | | There are 43 includes of asm/mach-types.h by files that don't reference anything from that file. Remove these unnecessary includes. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Fix explicit asm(-arm)?/arch-foo referencesRussell King2008-08-021-3/+3
| | | | | | | | No file should be explicitly referencing its own platform headers by specifying an absolute include path. Fix these paths to use standard <asm/arch/...> includes. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge branch 'irq-fix' of ↵Russell King2008-05-071-7/+15
|\ | | | | | | git://www.modarm9.com/gitsrc/pub/people/ukleinek/linux-2.6.git
| * ns9xxx: fix sparse warningUwe Kleine-König2008-04-251-1/+1
| | | | | | | | | | | | | | The actual warning is arch/arm/mach-ns9xxx/irq.c:65:6: warning: symbol 'handle_prio_irq' was not declared. Should it be static? Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
| * ns9xxx: check for irq lockupsUwe Kleine-König2008-04-251-0/+5
| | | | | | | | | | | | | | | | When I copy-adapted handle_level_irq I skipped note_interrupt because I considered it unimportant. If I had understand its importance I would have saved myself some ours of debugging. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
| * ns9xxx: fix handle_prio_irq to unmask irqs with lower priorityUwe Kleine-König2008-04-251-6/+9
| | | | | | | | | | | | | | | | | | | | When an irq is reported all lower prio irqs are masked until the current irq is acked. So never leave handle_prio_irq without acking. desc->status & IRQ_INPROGRESS should never become true because the current irq is masked until it is acked, too. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
* | ns9xxx: add support for irq priorisationUwe Kleine-König2008-03-311-12/+18
|/ | | | | | | | | | | prio2irq(0) is the highest prioritized interrupt. For now there is no binary change intended. If you intend to change the priorisation, you have to assert: ∀ x ∈ {0, 1, ⋯ 31}: (irq2prio ∘ prio2irq)(x) = x Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
* ns9xxx: make use of the chip's irq priorisationUwe Kleine-König2008-03-311-1/+39
| | | | | | | The irq controller automatically masks the current and all lower prioritised tasks until the current irq is acked. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
* ns9xxx: prepare for adding support for Digi ns921x processorsUwe Kleine-König2008-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The hardware team changed some things that were taken as being common to all ns9xxx processors up to now. This patch addresses: - irqs: s/IRQ_/IRQ_NS9360_/ - system module registers: some registers are still general, their definition lives now in include/asm-arm/arch-ns9xxx/regs-sys-common.h. The ns9360 specific ones are in .../regs-sys-ns9360.h As a result ns9360_systemclock cannot be static inline any more as its definition needs regs-sys-ns9360.h. This becomes a real problem when adding support for ns9215 as this will need regs-sys-ns9215.h and including both files will not work. For the same reason ns9360_reset() is now non-inline and gpio functions live in their own file. - register mapping: s/ns9xxx_map_io/ns9360_map_io/ - timer registers: move time.c to time-ns9360.c; s/ns9xxx_timer/ns9360_timer/ Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
* [ARM] 4595/1: ns9xxx: define registers as void __iomem * instead of volatile u32Uwe Kleine-König2007-10-121-6/+11
| | | | | | | As a consequence registers are now accessed with __raw_{read,write}[bl]. Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4545/1: ns9xxx: simplify irq ack'ingUwe Kleine-König2007-10-121-33/+0
| | | | | | | | | | Now the drivers are responsible to clear the irq in the respective device, which seems to be the normal thing to do. So the ack'ing of the timer irq moved to time.c. Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4493/1: ns9xxx: disable a non-reloading timer before ack'ing its irqUwe Kleine-König2007-07-201-0/+9
| | | | | | | The HRM states that is must be done this way ... Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4483/1: ns9xxx: fix three sparse warnings: symbol 'xyz' was not declared.Uwe Kleine-König2007-07-201-1/+1
| | | | | | | | make ns9xxx_ack_irq_functions static and add one include to get declarations for ns9xxx_map_io and ns9xxx_init_machine. Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4210/1: base for new machine type "NetSilicon NS9360"Uwe Kleine-König2007-02-171-0/+94
Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
OpenPOWER on IntegriCloud