diff options
Diffstat (limited to 'arch/m68knommu')
-rw-r--r-- | arch/m68knommu/kernel/time.c | 12 | ||||
-rw-r--r-- | arch/m68knommu/platform/5206/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/5206e/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/520x/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/523x/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/5249/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/5272/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/527x/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/528x/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/5307/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/532x/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/5407/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/coldfire/Makefile | 4 | ||||
-rw-r--r-- | arch/m68knommu/platform/coldfire/entry.S | 9 | ||||
-rw-r--r-- | arch/m68knommu/platform/coldfire/timers.c | 17 |
15 files changed, 35 insertions, 51 deletions
diff --git a/arch/m68knommu/kernel/time.c b/arch/m68knommu/kernel/time.c index 89cdbcaeb45f..0ccfb2ad6380 100644 --- a/arch/m68knommu/kernel/time.c +++ b/arch/m68knommu/kernel/time.c | |||
@@ -42,14 +42,12 @@ irqreturn_t arch_timer_interrupt(int irq, void *dummy) | |||
42 | /* last time the cmos clock got updated */ | 42 | /* last time the cmos clock got updated */ |
43 | static long last_rtc_update=0; | 43 | static long last_rtc_update=0; |
44 | 44 | ||
45 | if (current->pid) | ||
46 | profile_tick(CPU_PROFILING); | ||
47 | |||
45 | write_seqlock(&xtime_lock); | 48 | write_seqlock(&xtime_lock); |
46 | 49 | ||
47 | do_timer(1); | 50 | do_timer(1); |
48 | #ifndef CONFIG_SMP | ||
49 | update_process_times(user_mode(get_irq_regs())); | ||
50 | #endif | ||
51 | if (current->pid) | ||
52 | profile_tick(CPU_PROFILING); | ||
53 | 51 | ||
54 | /* | 52 | /* |
55 | * If we have an externally synchronized Linux clock, then update | 53 | * If we have an externally synchronized Linux clock, then update |
@@ -67,6 +65,10 @@ irqreturn_t arch_timer_interrupt(int irq, void *dummy) | |||
67 | } | 65 | } |
68 | 66 | ||
69 | write_sequnlock(&xtime_lock); | 67 | write_sequnlock(&xtime_lock); |
68 | |||
69 | #ifndef CONFIG_SMP | ||
70 | update_process_times(user_mode(get_irq_regs())); | ||
71 | #endif | ||
70 | return(IRQ_HANDLED); | 72 | return(IRQ_HANDLED); |
71 | } | 73 | } |
72 | 74 | ||
diff --git a/arch/m68knommu/platform/5206/Makefile b/arch/m68knommu/platform/5206/Makefile index c7bb0cef31a0..a439d9ab3f27 100644 --- a/arch/m68knommu/platform/5206/Makefile +++ b/arch/m68knommu/platform/5206/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/5206e/Makefile b/arch/m68knommu/platform/5206e/Makefile index c7bb0cef31a0..a439d9ab3f27 100644 --- a/arch/m68knommu/platform/5206e/Makefile +++ b/arch/m68knommu/platform/5206e/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/520x/Makefile b/arch/m68knommu/platform/520x/Makefile index 31b4eb51739d..a50e76acc8fd 100644 --- a/arch/m68knommu/platform/520x/Makefile +++ b/arch/m68knommu/platform/520x/Makefile | |||
@@ -12,8 +12,6 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
diff --git a/arch/m68knommu/platform/523x/Makefile b/arch/m68knommu/platform/523x/Makefile index ac9fbece8a4f..5694d593f029 100644 --- a/arch/m68knommu/platform/523x/Makefile +++ b/arch/m68knommu/platform/523x/Makefile | |||
@@ -12,8 +12,6 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
diff --git a/arch/m68knommu/platform/5249/Makefile b/arch/m68knommu/platform/5249/Makefile index c7bb0cef31a0..a439d9ab3f27 100644 --- a/arch/m68knommu/platform/5249/Makefile +++ b/arch/m68knommu/platform/5249/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/5272/Makefile b/arch/m68knommu/platform/5272/Makefile index 7475c38c3b4e..26135d92b34d 100644 --- a/arch/m68knommu/platform/5272/Makefile +++ b/arch/m68knommu/platform/5272/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/527x/Makefile b/arch/m68knommu/platform/527x/Makefile index 7475c38c3b4e..26135d92b34d 100644 --- a/arch/m68knommu/platform/527x/Makefile +++ b/arch/m68knommu/platform/527x/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/528x/Makefile b/arch/m68knommu/platform/528x/Makefile index 7475c38c3b4e..26135d92b34d 100644 --- a/arch/m68knommu/platform/528x/Makefile +++ b/arch/m68knommu/platform/528x/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/5307/Makefile b/arch/m68knommu/platform/5307/Makefile index 580fd6658d7c..cfd586860fd8 100644 --- a/arch/m68knommu/platform/5307/Makefile +++ b/arch/m68knommu/platform/5307/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y += config.o | 17 | obj-y += config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/532x/Makefile b/arch/m68knommu/platform/532x/Makefile index 475b92866a9b..e431912f5628 100644 --- a/arch/m68knommu/platform/532x/Makefile +++ b/arch/m68knommu/platform/532x/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | #obj-y := config.o usb-mcf532x.o spi-mcf532x.o | 17 | #obj-y := config.o usb-mcf532x.o spi-mcf532x.o |
20 | obj-y := config.o | 18 | obj-y := config.o |
diff --git a/arch/m68knommu/platform/5407/Makefile b/arch/m68knommu/platform/5407/Makefile index 68633b27df51..e6035e7a2d3f 100644 --- a/arch/m68knommu/platform/5407/Makefile +++ b/arch/m68knommu/platform/5407/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-y := config.o | 17 | obj-y := config.o |
20 | 18 | ||
diff --git a/arch/m68knommu/platform/coldfire/Makefile b/arch/m68knommu/platform/coldfire/Makefile index e5fff297ae01..40cf20be1b90 100644 --- a/arch/m68knommu/platform/coldfire/Makefile +++ b/arch/m68knommu/platform/coldfire/Makefile | |||
@@ -12,9 +12,7 @@ | |||
12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT | 12 | # EXTRA_AFLAGS += -DTRAP_DBG_INTERRUPT |
13 | # | 13 | # |
14 | 14 | ||
15 | ifdef CONFIG_FULLDEBUG | 15 | asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 |
16 | AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 | ||
17 | endif | ||
18 | 16 | ||
19 | obj-$(CONFIG_COLDFIRE) += dma.o entry.o vectors.o | 17 | obj-$(CONFIG_COLDFIRE) += dma.o entry.o vectors.o |
20 | obj-$(CONFIG_M5206) += timers.o | 18 | obj-$(CONFIG_M5206) += timers.o |
diff --git a/arch/m68knommu/platform/coldfire/entry.S b/arch/m68knommu/platform/coldfire/entry.S index b333731b875a..111b66dc737b 100644 --- a/arch/m68knommu/platform/coldfire/entry.S +++ b/arch/m68knommu/platform/coldfire/entry.S | |||
@@ -197,14 +197,13 @@ ENTRY(fasthandler) | |||
197 | RESTORE_LOCAL | 197 | RESTORE_LOCAL |
198 | 198 | ||
199 | ENTRY(ret_from_interrupt) | 199 | ENTRY(ret_from_interrupt) |
200 | jeq 2f | ||
201 | 1: | ||
202 | RESTORE_ALL | ||
203 | 2: | ||
204 | moveb %sp@(PT_SR),%d0 | 200 | moveb %sp@(PT_SR),%d0 |
205 | andl #0x7,%d0 | 201 | andl #0x7,%d0 |
206 | jhi 1b | 202 | jeq 1f |
207 | 203 | ||
204 | RESTORE_ALL | ||
205 | |||
206 | 1: | ||
208 | /* check if we need to do software interrupts */ | 207 | /* check if we need to do software interrupts */ |
209 | movel irq_stat+CPUSTAT_SOFTIRQ_PENDING,%d0 | 208 | movel irq_stat+CPUSTAT_SOFTIRQ_PENDING,%d0 |
210 | jeq ret_from_exception | 209 | jeq ret_from_exception |
diff --git a/arch/m68knommu/platform/coldfire/timers.c b/arch/m68knommu/platform/coldfire/timers.c index a60213e877ef..ba5a9f32ebd4 100644 --- a/arch/m68knommu/platform/coldfire/timers.c +++ b/arch/m68knommu/platform/coldfire/timers.c | |||
@@ -148,25 +148,32 @@ irqreturn_t coldfire_profile_tick(int irq, void *dummy) | |||
148 | /* Reset ColdFire timer2 */ | 148 | /* Reset ColdFire timer2 */ |
149 | __raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, PA(MCFTIMER_TER)); | 149 | __raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, PA(MCFTIMER_TER)); |
150 | if (current->pid) | 150 | if (current->pid) |
151 | profile_tick(CPU_PROFILING, regs); | 151 | profile_tick(CPU_PROFILING); |
152 | return IRQ_HANDLED; | 152 | return IRQ_HANDLED; |
153 | } | 153 | } |
154 | 154 | ||
155 | /***************************************************************************/ | 155 | /***************************************************************************/ |
156 | 156 | ||
157 | static struct irqaction coldfire_profile_irq = { | ||
158 | .name = "profile timer", | ||
159 | .flags = IRQF_DISABLED | IRQF_TIMER, | ||
160 | .handler = coldfire_profile_tick, | ||
161 | }; | ||
162 | |||
157 | void coldfire_profile_init(void) | 163 | void coldfire_profile_init(void) |
158 | { | 164 | { |
159 | printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n", PROFILEHZ); | 165 | printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n", |
166 | PROFILEHZ); | ||
167 | |||
168 | setup_irq(mcf_profilevector, &coldfire_profile_irq); | ||
160 | 169 | ||
161 | /* Set up TIMER 2 as high speed profile clock */ | 170 | /* Set up TIMER 2 as high speed profile clock */ |
162 | __raw_writew(MCFTIMER_TMR_DISABLE, PA(MCFTIMER_TMR)); | 171 | __raw_writew(MCFTIMER_TMR_DISABLE, PA(MCFTIMER_TMR)); |
163 | 172 | ||
164 | __raw_writetrr(((MCF_CLK / 16) / PROFILEHZ), PA(MCFTIMER_TRR)); | 173 | __raw_writetrr(((MCF_BUSCLK / 16) / PROFILEHZ), PA(MCFTIMER_TRR)); |
165 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | | 174 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | |
166 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR)); | 175 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR)); |
167 | 176 | ||
168 | request_irq(mcf_profilevector, coldfire_profile_tick, | ||
169 | (IRQF_DISABLED | IRQ_FLG_FAST), "profile timer", NULL); | ||
170 | mcf_settimericr(2, 7); | 177 | mcf_settimericr(2, 7); |
171 | } | 178 | } |
172 | 179 | ||