aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/atari
diff options
context:
space:
mode:
authorMichael Schmitz <schmitzmic@gmail.com>2014-01-10 19:58:55 -0500
committerGeert Uytterhoeven <geert@linux-m68k.org>2014-01-13 03:29:10 -0500
commita0b7b242261c8c1097925663bf44d51c1e357e58 (patch)
tree864e1c4e5650f8d87748281d5ed273ae8f285c61 /arch/m68k/atari
parenta16f9a42a557dcf33eaee4c5ba3e09eb7e655c70 (diff)
m68k/irq - Use polled IRQ flag for MFP timer cascaded interrupts
Some Atari hardware has no capacity to raise interrupts (e.g. network or USB adapter hardware attached via ROM port). The driver interrupt routine is called from a timer interrupt (timer D) in these cases, using chained device specific pseudo interrupts (IRQ_MFP_TIMER1 ff.) These interrupts will more often than not, return IRQ_NONE as there is not always work for the device handler when called. Too many unhandled interrupts will result in the interrupt being disabled by the stuck interrupt watchdog. As preferred option to flag interrupts as needing exclusion from the watchdog mechanism, tglx added the IRQ_IS_POLLED flag for use in such a case. Currently, two interrupts need to use this flag. Add more users as needed. Signed-off-by: Michael Schmitz <schmitz@debian.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'arch/m68k/atari')
-rw-r--r--arch/m68k/atari/ataints.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/m68k/atari/ataints.c b/arch/m68k/atari/ataints.c
index 20cde4e9fc77..3e73a63c066f 100644
--- a/arch/m68k/atari/ataints.c
+++ b/arch/m68k/atari/ataints.c
@@ -333,6 +333,9 @@ void __init atari_init_IRQ(void)
333 m68k_setup_irq_controller(&atari_mfptimer_chip, handle_simple_irq, 333 m68k_setup_irq_controller(&atari_mfptimer_chip, handle_simple_irq,
334 IRQ_MFP_TIMER1, 8); 334 IRQ_MFP_TIMER1, 8);
335 335
336 irq_set_status_flags(IRQ_MFP_TIMER1, IRQ_IS_POLLED);
337 irq_set_status_flags(IRQ_MFP_TIMER2, IRQ_IS_POLLED);
338
336 /* prepare timer D data for use as poll interrupt */ 339 /* prepare timer D data for use as poll interrupt */
337 /* set Timer D data Register - needs to be > 0 */ 340 /* set Timer D data Register - needs to be > 0 */
338 st_mfp.tim_dt_d = 254; /* < 100 Hz */ 341 st_mfp.tim_dt_d = 254; /* < 100 Hz */