aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68knommu
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68knommu')
-rw-r--r--arch/m68knommu/kernel/time.c12
-rw-r--r--arch/m68knommu/platform/5206/Makefile4
-rw-r--r--arch/m68knommu/platform/5206e/Makefile4
-rw-r--r--arch/m68knommu/platform/520x/Makefile4
-rw-r--r--arch/m68knommu/platform/523x/Makefile4
-rw-r--r--arch/m68knommu/platform/5249/Makefile4
-rw-r--r--arch/m68knommu/platform/5272/Makefile4
-rw-r--r--arch/m68knommu/platform/527x/Makefile4
-rw-r--r--arch/m68knommu/platform/528x/Makefile4
-rw-r--r--arch/m68knommu/platform/5307/Makefile4
-rw-r--r--arch/m68knommu/platform/532x/Makefile4
-rw-r--r--arch/m68knommu/platform/5407/Makefile4
-rw-r--r--arch/m68knommu/platform/coldfire/Makefile4
-rw-r--r--arch/m68knommu/platform/coldfire/entry.S9
-rw-r--r--arch/m68knommu/platform/coldfire/timers.c17
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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y += config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19#obj-y := config.o usb-mcf532x.o spi-mcf532x.o 17#obj-y := config.o usb-mcf532x.o spi-mcf532x.o
20obj-y := config.o 18obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16EXTRA_AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-y := config.o 17obj-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
15ifdef CONFIG_FULLDEBUG 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
17endif
18 16
19obj-$(CONFIG_COLDFIRE) += dma.o entry.o vectors.o 17obj-$(CONFIG_COLDFIRE) += dma.o entry.o vectors.o
20obj-$(CONFIG_M5206) += timers.o 18obj-$(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
199ENTRY(ret_from_interrupt) 199ENTRY(ret_from_interrupt)
200 jeq 2f
2011:
202 RESTORE_ALL
2032:
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
2061:
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
157static struct irqaction coldfire_profile_irq = {
158 .name = "profile timer",
159 .flags = IRQF_DISABLED | IRQF_TIMER,
160 .handler = coldfire_profile_tick,
161};
162
157void coldfire_profile_init(void) 163void 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