patch-2.2.18 linux/include/asm-arm/arch-ebsa285/time.h

Next file: linux/include/asm-arm/arch-ebsa285/uncompress.h
Previous file: linux/include/asm-arm/arch-ebsa285/system.h
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/include/asm-arm/arch-ebsa285/time.h linux/include/asm-arm/arch-ebsa285/time.h
@@ -115,6 +115,9 @@
 		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 = {
@@ -257,6 +260,9 @@
 		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 +285,20 @@
  */
 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 +318,7 @@
 		    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,8 +336,7 @@
 		xtime.tv_sec = mktime(1970, 1, 1, 0, 0, 0);
 		set_rtc_mmss = set_dummy_time;
 	}
-
-	if (machine_is_ebsa285()) {
+	if (machine_is_ebsa285() || machine_is_co285()) {
 		gettimeoffset = timer1_gettimeoffset;
 
 		*CSR_TIMER1_CLR  = 0;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)