Index: oldkernel/linux/Documentation/cpqarray.txt
diff -u linux/Documentation/cpqarray.txt:1.1.1.1 linux/Documentation/cpqarray.txt:1.2
--- linux/Documentation/cpqarray.txt:1.1.1.1	Wed May 31 12:33:54 2000
+++ linux/Documentation/cpqarray.txt	Thu Jun  1 15:01:35 2000
@@ -1,11 +1,5 @@
 This driver is for Compaq's SMART2 Intellegent Disk Array Controllers.
 
-WARNING:
---------
-
-This driver comes with NO WARRANTY.  It is not officially supported by
-Compaq.  Do not call technical support.  Use at your own risk.
-
 Supported Cards:
 ----------------
 
@@ -22,6 +16,7 @@
 	* Integrated Smart Array Controller
 	* SA 4200
 	* SA 4250ES
+	* SA 431
 
 It should also work with some really old Disk array adapters, but I am
 unable to test against these cards:
Index: oldkernel/linux/drivers/block/cpqarray.c
diff -u linux/drivers/block/cpqarray.c:1.1.1.1 linux/drivers/block/cpqarray.c:1.2
--- linux/drivers/block/cpqarray.c:1.1.1.1	Wed May 31 12:33:50 2000
+++ linux/drivers/block/cpqarray.c	Thu Jun  1 15:01:35 2000
@@ -41,8 +41,8 @@
 
 #define SMART2_DRIVER_VERSION(maj,min,submin) ((maj<<16)|(min<<8)|(submin))
 
-#define DRIVER_NAME "Compaq SMART2 Driver (v 1.0.5)"
-#define DRIVER_VERSION SMART2_DRIVER_VERSION(1,0,5)
+#define DRIVER_NAME "Compaq SMART2 Driver (v 1.0.6)"
+#define DRIVER_VERSION SMART2_DRIVER_VERSION(1,0,6)
 #define MAJOR_NR COMPAQ_SMART2_MAJOR
 #include <linux/blk.h>
 #include <linux/blkdev.h>
@@ -84,6 +84,7 @@
 	{ 0x40400E11, "Integrated Array",	&smart4_access },
 	{ 0x40500E11, "Smart Array 4200",	&smart4_access },
 	{ 0x40510E11, "Smart Array 4250ES",	&smart4_access },
+	{ 0x40580E11, "Smart Array 431",	&smart4_access },
 };
 
 static struct hd_struct * ida;
@@ -1223,7 +1224,7 @@
 			return(error);
 		}
 		copy_from_user(p, (void*)io->sg[0].addr, io->sg[0].size);
-		c->req.bp = virt_to_bus(&(io->c));
+		c->req.hdr.blk = virt_to_bus(&(io->c));
 		c->req.sg[0].size = io->sg[0].size;
 		c->req.sg[0].addr = virt_to_bus(p);
 		c->req.hdr.sg_cnt = 1;
Index: oldkernel/linux/drivers/block/cpqarray.h
diff -u linux/drivers/block/cpqarray.h:1.2 linux/drivers/block/cpqarray.h:1.3
--- linux/drivers/block/cpqarray.h:1.2	Thu Jun  1 14:53:31 2000
+++ linux/drivers/block/cpqarray.h	Thu Jun  1 15:01:35 2000
@@ -30,7 +30,6 @@
 #include <linux/locks.h>
 #include <linux/malloc.h>
 #include <linux/proc_fs.h>
-#include <linux/raid/md.h>
 #include <linux/timer.h>
 #endif
 
Index: oldkernel/linux/drivers/block/ida_cmd.h
diff -u linux/drivers/block/ida_cmd.h:1.1.1.1 linux/drivers/block/ida_cmd.h:1.2
--- linux/drivers/block/ida_cmd.h:1.1.1.1	Wed May 31 12:33:50 2000
+++ linux/drivers/block/ida_cmd.h	Thu Jun  1 15:01:35 2000
@@ -191,7 +191,7 @@
 	__u8	expn_fail;
 	__u8	unit_flags;
 	__u16	big_fail_map[8];
-	__u16	big_remap_map[8];
+	__u16	big_remap_map[128];
 	__u16	big_repl_map[8];
 	__u16	big_act_spare_map[8];
 	__u8	big_spar_repl_map[128];
@@ -336,7 +336,7 @@
 	__u32	sense_info;
 	__u8	sense_code;
 	__u8	sense_qual;
-	__u8	residual;
+	__u32	residual;
 	__u8	reserved[4];
 	__u8	cdb[12];	
 } scsi_param_t;
Index: oldkernel/linux/init/main.c
diff -u linux/init/main.c:1.3 linux/init/main.c:1.4
--- linux/init/main.c:1.3	Thu Jun  1 14:51:29 2000
+++ linux/init/main.c	Thu Jun  1 15:01:35 2000
@@ -488,6 +488,24 @@
 	{ "rd/c0d14p",0x3070 },
 	{ "rd/c0d15p",0x3078 },
 #endif
+#if defined(CONFIG_BLK_CPQ_DA) || defined(CONFIG_BLK_CPQ_DA_MODULE)
+	{ "ida/c0d0p",0x4800 },
+	{ "ida/c0d1p",0x4810 },
+	{ "ida/c0d2p",0x4820 },
+	{ "ida/c0d3p",0x4830 },
+	{ "ida/c0d4p",0x4840 },
+	{ "ida/c0d5p",0x4850 },
+	{ "ida/c0d6p",0x4860 },
+	{ "ida/c0d7p",0x4870 },
+	{ "ida/c0d8p",0x4880 },
+	{ "ida/c0d9p",0x4890 },
+	{ "ida/c0d10p",0x48A0 },
+	{ "ida/c0d11p",0x48B0 },
+	{ "ida/c0d12p",0x48C0 },
+	{ "ida/c0d13p",0x48D0 },
+	{ "ida/c0d14p",0x48E0 },
+	{ "ida/c0d15p",0x48F0 },
+#endif
 #ifdef CONFIG_ATARI_ACSI
 	{ "ada",     0x1c00 },
 	{ "adb",     0x1c10 },
