diff options
author | Scott Wood <scottwood@freescale.com> | 2014-04-07 23:49:35 (GMT) |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2014-04-07 23:49:35 (GMT) |
commit | 62b8c978ee6b8d135d9e7953221de58000dba986 (patch) | |
tree | 683b04b2e627f6710c22c151b23c8cc9a165315e /arch/m68k/platform/68000 | |
parent | 78fd82238d0e5716578c326404184a27ba67fd6e (diff) | |
download | linux-fsl-qoriq-62b8c978ee6b8d135d9e7953221de58000dba986.tar.xz |
Rewind v3.13-rc3+ (78fd82238d0e5716) to v3.12
Diffstat (limited to 'arch/m68k/platform/68000')
-rw-r--r-- | arch/m68k/platform/68000/entry.S | 33 | ||||
-rw-r--r-- | arch/m68k/platform/68000/timers.c | 2 |
2 files changed, 26 insertions, 9 deletions
diff --git a/arch/m68k/platform/68000/entry.S b/arch/m68k/platform/68000/entry.S index 23ac054..7f91c2f 100644 --- a/arch/m68k/platform/68000/entry.S +++ b/arch/m68k/platform/68000/entry.S @@ -27,6 +27,7 @@ .globl ret_from_exception .globl ret_from_signal .globl sys_call_table +.globl ret_from_interrupt .globl bad_interrupt .globl inthandler1 .globl inthandler2 @@ -136,7 +137,7 @@ inthandler1: movel #65,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt inthandler2: SAVE_ALL_INT @@ -147,7 +148,7 @@ inthandler2: movel #66,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt inthandler3: SAVE_ALL_INT @@ -158,7 +159,7 @@ inthandler3: movel #67,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt inthandler4: SAVE_ALL_INT @@ -169,7 +170,7 @@ inthandler4: movel #68,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt inthandler5: SAVE_ALL_INT @@ -180,7 +181,7 @@ inthandler5: movel #69,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt inthandler6: SAVE_ALL_INT @@ -191,7 +192,7 @@ inthandler6: movel #70,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt inthandler7: SAVE_ALL_INT @@ -202,7 +203,7 @@ inthandler7: movel #71,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt inthandler: SAVE_ALL_INT @@ -213,7 +214,23 @@ inthandler: movel %d0,%sp@- /* put vector # on stack*/ jbsr process_int /* process the IRQ*/ 3: addql #8,%sp /* pop parameters off stack*/ - bra ret_from_exception + bra ret_from_interrupt + +ret_from_interrupt: + jeq 1f +2: + RESTORE_ALL +1: + moveb %sp@(PT_OFF_SR), %d0 + and #7, %d0 + jhi 2b + + /* check if we need to do software interrupts */ + jeq ret_from_exception + + pea ret_from_exception + jra do_softirq + /* * Handler for uninitialized and spurious interrupts. diff --git a/arch/m68k/platform/68000/timers.c b/arch/m68k/platform/68000/timers.c index 99a9869..ec30acb 100644 --- a/arch/m68k/platform/68000/timers.c +++ b/arch/m68k/platform/68000/timers.c @@ -70,7 +70,7 @@ static irqreturn_t hw_tick(int irq, void *dummy) static struct irqaction m68328_timer_irq = { .name = "timer", - .flags = IRQF_TIMER, + .flags = IRQF_DISABLED | IRQF_TIMER, .handler = hw_tick, }; |