# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# 
# T2 SDE: package/.../linux26mm/unbreak-advansys-scsi.patch
# Copyright (C) 2004 - 2006 The T2 SDE Project
# 
# More information can be found in the files COPYING and README.
# 
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- T2-COPYRIGHT-NOTE-END ---

Aside from tons of compiler warning, I have not found out via google, why the
AdvanSys driver is marked broken.

It compiles and if it will not work with the ABP940-U I have lying around I'll
have to fix it up ...

  - Rene Rebe <rene@exactcode.de>

--- linux-2.6.16/drivers/scsi/Kconfig.orig	2006-05-03 19:50:59.113854500 +0200
+++ linux-2.6.16/drivers/scsi/Kconfig	2006-05-03 19:54:52.256425000 +0200
@@ -458,7 +458,7 @@
 	tristate "AdvanSys SCSI support"
 	depends on SCSI
 	depends on ISA || EISA || PCI
-	depends on BROKEN || X86_32
+	depends on X86_32
 	help
 	  This is a driver for all SCSI host adapters manufactured by
 	  AdvanSys. It is documented in the kernel source in
--- linux-2.6.11/drivers/scsi/advansys.c	2005-03-02 08:37:52.000000000 +0100
+++ linux-2.6.11-fixed/drivers/scsi/advansys.c	2005-05-23 11:09:06.000000000 +0200
@@ -2056,11 +2056,11 @@
 /*
  * Define Adv Library required memory access macros.
  */
-#define ADV_MEM_READB(addr) readb(addr)
-#define ADV_MEM_READW(addr) readw(addr)
-#define ADV_MEM_WRITEB(addr, byte) writeb(byte, addr)
-#define ADV_MEM_WRITEW(addr, word) writew(word, addr)
-#define ADV_MEM_WRITEDW(addr, dword) writel(dword, addr)
+#define ADV_MEM_READB(addr) readb((void*)addr)
+#define ADV_MEM_READW(addr) readw((void*)addr)
+#define ADV_MEM_WRITEB(addr, byte) writeb(byte, (void*)addr)
+#define ADV_MEM_WRITEW(addr, word) writew(word, (void*)addr)
+#define ADV_MEM_WRITEDW(addr, dword) writel(dword, (void*)addr)
 
 #define ADV_CARRIER_COUNT (ASC_DEF_MAX_HOST_QNG + 15)
 
@@ -4295,6 +4295,27 @@
 }
 #endif /* CONFIG_PROC_FS */
 
+/* this is just preleminary, so we can auto detect the PCI cards - the driver
+   should be converted to the new module API ... -ReneR */
+
+static struct pci_device_id advansys_id_table[] __devinitdata = {
+	{ ASC_PCI_VENDORID,  ASC_PCI_DEVICE_ID_1100,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+	{ ASC_PCI_VENDORID,  ASC_PCI_DEVICE_ID_1200,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+	{ ASC_PCI_VENDORID,  ASC_PCI_DEVICE_ID_1300,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+	{ ASC_PCI_VENDORID,  ASC_PCI_DEVICE_ID_2300,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+	{ ASC_PCI_VENDORID,  ASC_PCI_DEVICE_ID_2500,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+	{ ASC_PCI_VENDORID,  ASC_PCI_DEVICE_ID_2700,
+	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL },
+	{ 0, }
+};
+
+MODULE_DEVICE_TABLE(pci, advansys_id_table);
+
 /*
  * advansys_detect()
  *