patch-2.1.48 linux/drivers/scsi/atari_scsi.c

Next file: linux/drivers/scsi/esp.c
Previous file: linux/drivers/scsi/aic7xxx_seq.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.47/linux/drivers/scsi/atari_scsi.c linux/drivers/scsi/atari_scsi.c
@@ -90,6 +90,7 @@
 #include <linux/sched.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
+#include <linux/nvram.h>
 
 #include <asm/setup.h>
 #include <asm/atarihw.h>
@@ -596,20 +597,6 @@
 #endif
 
 
-#define	RTC_READ(reg)				\
-    ({	unsigned char	__val;			\
-		outb(reg,&tt_rtc.regsel);	\
-		__val = tt_rtc.data;		\
-		__val;				\
-	})
-
-#define	RTC_WRITE(reg,val)			\
-    do {					\
-		outb(reg,&tt_rtc.regsel);	\
-		tt_rtc.data = (val);		\
-	} while(0)
-    
-				   
 int atari_scsi_detect (Scsi_Host_Template *host)
 {
 	static int called = 0;
@@ -645,20 +632,11 @@
 		/* use 7 as default */
 		host->this_id = 7;
 		/* Test if a host id is set in the NVRam */
-		if (ATARIHW_PRESENT(TT_CLK)) {
-			unsigned char sum = 0, b;
-			int i;
-			
-			/* Make checksum */
-			for( i = 14; i < 62; ++i )
-				sum += RTC_READ(i);
-			
-			if (/* NV-Ram checksum valid? */
-				RTC_READ(62) == sum && RTC_READ(63) == ~sum &&
-				/* Arbitration enabled? (for TOS) */
-				(b = RTC_READ( 30 )) & 0x80) {
+		if (ATARIHW_PRESENT(TT_CLK) && nvram_check_checksum()) {
+			unsigned char b = nvram_read_byte( 14 );
+			/* Arbitration enabled? (for TOS) If yes, use configured host ID */
+			if (b & 0x80)
 				host->this_id = b & 7;
-			}
 		}
 	}
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov