diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sh/kernel/cpu/irq/intc-sh5.c | 27 | ||||
-rw-r--r-- | arch/sh/kernel/process_64.c | 9 | ||||
-rw-r--r-- | arch/sh/kernel/timers/timer-mtu2.c | 1 |
3 files changed, 18 insertions, 19 deletions
diff --git a/arch/sh/kernel/cpu/irq/intc-sh5.c b/arch/sh/kernel/cpu/irq/intc-sh5.c index 43ee7a9a4f0b..d6e0e2bdaad5 100644 --- a/arch/sh/kernel/cpu/irq/intc-sh5.c +++ b/arch/sh/kernel/cpu/irq/intc-sh5.c | |||
@@ -75,21 +75,6 @@ int intc_evt_to_irq[(0xE20/0x20)+1] = { | |||
75 | -1, -1 /* 0xE00 - 0xE20 */ | 75 | -1, -1 /* 0xE00 - 0xE20 */ |
76 | }; | 76 | }; |
77 | 77 | ||
78 | /* | ||
79 | * Opposite mapper. | ||
80 | */ | ||
81 | static int IRQ_to_vectorN[NR_INTC_IRQS] = { | ||
82 | 0x12, 0x15, 0x18, 0x1B, 0x40, 0x41, 0x42, 0x43, /* 0- 7 */ | ||
83 | -1, -1, -1, -1, 0x50, 0x51, 0x52, 0x53, /* 8-15 */ | ||
84 | 0x54, 0x55, 0x32, 0x33, 0x34, 0x35, 0x36, -1, /* 16-23 */ | ||
85 | -1, -1, -1, -1, -1, -1, -1, -1, /* 24-31 */ | ||
86 | 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x38, /* 32-39 */ | ||
87 | 0x39, 0x3A, 0x3B, -1, -1, -1, -1, -1, /* 40-47 */ | ||
88 | -1, -1, -1, -1, -1, -1, -1, -1, /* 48-55 */ | ||
89 | -1, -1, -1, -1, -1, -1, -1, 0x2B, /* 56-63 */ | ||
90 | |||
91 | }; | ||
92 | |||
93 | static unsigned long intc_virt; | 78 | static unsigned long intc_virt; |
94 | 79 | ||
95 | static unsigned int startup_intc_irq(unsigned int irq); | 80 | static unsigned int startup_intc_irq(unsigned int irq); |
@@ -176,6 +161,18 @@ void make_intc_irq(unsigned int irq) | |||
176 | } | 161 | } |
177 | 162 | ||
178 | #if defined(CONFIG_PROC_FS) && defined(CONFIG_SYSCTL) | 163 | #if defined(CONFIG_PROC_FS) && defined(CONFIG_SYSCTL) |
164 | static int IRQ_to_vectorN[NR_INTC_IRQS] = { | ||
165 | 0x12, 0x15, 0x18, 0x1B, 0x40, 0x41, 0x42, 0x43, /* 0- 7 */ | ||
166 | -1, -1, -1, -1, 0x50, 0x51, 0x52, 0x53, /* 8-15 */ | ||
167 | 0x54, 0x55, 0x32, 0x33, 0x34, 0x35, 0x36, -1, /* 16-23 */ | ||
168 | -1, -1, -1, -1, -1, -1, -1, -1, /* 24-31 */ | ||
169 | 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x38, /* 32-39 */ | ||
170 | 0x39, 0x3A, 0x3B, -1, -1, -1, -1, -1, /* 40-47 */ | ||
171 | -1, -1, -1, -1, -1, -1, -1, -1, /* 48-55 */ | ||
172 | -1, -1, -1, -1, -1, -1, -1, 0x2B, /* 56-63 */ | ||
173 | |||
174 | }; | ||
175 | |||
179 | int intc_irq_describe(char* p, int irq) | 176 | int intc_irq_describe(char* p, int irq) |
180 | { | 177 | { |
181 | if (irq < NR_INTC_IRQS) | 178 | if (irq < NR_INTC_IRQS) |
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c index cff3b7dc9c56..046999b1d1af 100644 --- a/arch/sh/kernel/process_64.c +++ b/arch/sh/kernel/process_64.c | |||
@@ -623,6 +623,7 @@ extern void interruptible_sleep_on(wait_queue_head_t *q); | |||
623 | 623 | ||
624 | #define mid_sched ((unsigned long) interruptible_sleep_on) | 624 | #define mid_sched ((unsigned long) interruptible_sleep_on) |
625 | 625 | ||
626 | #ifdef CONFIG_FRAME_POINTER | ||
626 | static int in_sh64_switch_to(unsigned long pc) | 627 | static int in_sh64_switch_to(unsigned long pc) |
627 | { | 628 | { |
628 | extern char __sh64_switch_to_end; | 629 | extern char __sh64_switch_to_end; |
@@ -631,12 +632,10 @@ static int in_sh64_switch_to(unsigned long pc) | |||
631 | return (pc >= (unsigned long) sh64_switch_to) && | 632 | return (pc >= (unsigned long) sh64_switch_to) && |
632 | (pc < (unsigned long) &__sh64_switch_to_end); | 633 | (pc < (unsigned long) &__sh64_switch_to_end); |
633 | } | 634 | } |
635 | #endif | ||
634 | 636 | ||
635 | unsigned long get_wchan(struct task_struct *p) | 637 | unsigned long get_wchan(struct task_struct *p) |
636 | { | 638 | { |
637 | unsigned long schedule_fp; | ||
638 | unsigned long sh64_switch_to_fp; | ||
639 | unsigned long schedule_caller_pc; | ||
640 | unsigned long pc; | 639 | unsigned long pc; |
641 | 640 | ||
642 | if (!p || p == current || p->state == TASK_RUNNING) | 641 | if (!p || p == current || p->state == TASK_RUNNING) |
@@ -649,6 +648,10 @@ unsigned long get_wchan(struct task_struct *p) | |||
649 | 648 | ||
650 | #ifdef CONFIG_FRAME_POINTER | 649 | #ifdef CONFIG_FRAME_POINTER |
651 | if (in_sh64_switch_to(pc)) { | 650 | if (in_sh64_switch_to(pc)) { |
651 | unsigned long schedule_fp; | ||
652 | unsigned long sh64_switch_to_fp; | ||
653 | unsigned long schedule_caller_pc; | ||
654 | |||
652 | sh64_switch_to_fp = (long) p->thread.sp; | 655 | sh64_switch_to_fp = (long) p->thread.sp; |
653 | /* r14 is saved at offset 4 in the sh64_switch_to frame */ | 656 | /* r14 is saved at offset 4 in the sh64_switch_to frame */ |
654 | schedule_fp = *(unsigned long *) (long)(sh64_switch_to_fp + 4); | 657 | schedule_fp = *(unsigned long *) (long)(sh64_switch_to_fp + 4); |
diff --git a/arch/sh/kernel/timers/timer-mtu2.c b/arch/sh/kernel/timers/timer-mtu2.c index 463cd08f9517..ade9d6eb29f9 100644 --- a/arch/sh/kernel/timers/timer-mtu2.c +++ b/arch/sh/kernel/timers/timer-mtu2.c | |||
@@ -154,7 +154,6 @@ static int mtu2_timer_stop(void) | |||
154 | 154 | ||
155 | static int mtu2_timer_init(void) | 155 | static int mtu2_timer_init(void) |
156 | { | 156 | { |
157 | u8 tmp; | ||
158 | unsigned long interval; | 157 | unsigned long interval; |
159 | 158 | ||
160 | setup_irq(CONFIG_SH_TIMER_IRQ, &mtu2_irq); | 159 | setup_irq(CONFIG_SH_TIMER_IRQ, &mtu2_irq); |