summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/arch-ebsa285/time.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-10-09 00:00:47 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-10-09 00:00:47 +0000
commitd6434e1042f3b0a6dfe1b1f615af369486f9b1fa (patch)
treee2be02f33984c48ec019c654051d27964e42c441 /include/asm-arm/arch-ebsa285/time.h
parent609d1e803baf519487233b765eb487f9ec227a18 (diff)
Merge with 2.3.19.
Diffstat (limited to 'include/asm-arm/arch-ebsa285/time.h')
-rw-r--r--include/asm-arm/arch-ebsa285/time.h30
1 files changed, 15 insertions, 15 deletions
diff --git a/include/asm-arm/arch-ebsa285/time.h b/include/asm-arm/arch-ebsa285/time.h
index 7c5cd89c4..91e3ae284 100644
--- a/include/asm-arm/arch-ebsa285/time.h
+++ b/include/asm-arm/arch-ebsa285/time.h
@@ -115,6 +115,9 @@ static void isa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
else
last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */
}
+
+ if (!user_mode(regs))
+ do_profile(instruction_pointer(regs));
}
static struct irqaction isa_timer_irq = {
@@ -126,8 +129,7 @@ static struct irqaction isa_timer_irq = {
NULL
};
-__initfunc(static unsigned long
-get_isa_cmos_time(void))
+static unsigned long __init get_isa_cmos_time(void)
{
unsigned int year, mon, day, hour, min, sec;
int i;
@@ -237,10 +239,8 @@ static void __ebsa285_text timer1_interrupt(int irq, void *dev_id, struct pt_reg
{
*CSR_TIMER1_CLR = 0;
- /* Do the LEDs things on non-CATS hardware.
- */
- if (!machine_is_cats())
- do_leds();
+ /* Do the LEDs things */
+ do_leds();
do_timer(regs);
@@ -257,6 +257,9 @@ static void __ebsa285_text timer1_interrupt(int irq, void *dev_id, struct pt_reg
else
last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */
}
+
+ if (!user_mode(regs))
+ do_profile(instruction_pointer(regs));
}
static struct irqaction __ebsa285_data timer1_irq = {
@@ -279,22 +282,20 @@ set_dummy_time(unsigned long secs)
*/
extern __inline__ void setup_timer(void)
{
- switch(machine_arch_type) {
- case MACH_TYPE_CO285:
+ if (machine_arch_type == MACH_TYPE_CO285)
/*
* Add-in 21285s shouldn't access the RTC
*/
rtc_base = 0;
- break;
-
- default:
+ else
rtc_base = 0x70;
- break;
- }
if (rtc_base) {
int reg_d, reg_b;
+ /*
+ * Probe for the RTC.
+ */
reg_d = CMOS_READ(RTC_REG_D);
/*
@@ -314,7 +315,7 @@ extern __inline__ void setup_timer(void)
CMOS_READ(RTC_REG_B) == reg_b) {
/*
- * Check the battery
+ * We have a RTC. Check the battery
*/
if ((reg_d & 0x80) == 0)
printk(KERN_WARNING "RTC: *** warning: CMOS battery bad\n");
@@ -332,7 +333,6 @@ extern __inline__ void setup_timer(void)
xtime.tv_sec = mktime(1970, 1, 1, 0, 0, 0);
set_rtc_mmss = set_dummy_time;
}
-
if (machine_is_ebsa285() || machine_is_co285()) {
gettimeoffset = timer1_gettimeoffset;