linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 21/28] Sync up drivers/scsi/aic7xxx
@ 2004-09-28 13:07 Luben Tuikov
  0 siblings, 0 replies; only message in thread
From: Luben Tuikov @ 2004-09-28 13:07 UTC (permalink / raw)
  To: SCSI Mailing List

Sync up drivers/scsi/aic7xxx/. (2666-2686)

Signed-off-by: Luben Tuikov <luben_tuikov@adaptec.com>

==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7770_osm.c#17 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7770_osm.c ====
--- /tmp/tmp.27107.0	2004-09-27 13:34:45.180880784 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7770_osm.c	2004-01-29 19:42:56.000000000 -0500
@@ -36,7 +36,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7770_osm.c#17 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7770_osm.c#19 $
   */

  #include "aic7xxx_osm.h"
@@ -73,7 +73,7 @@
  static int aic7770_linux_config(struct aic7770_identity *entry,
  				aic7770_dev_t dev, u_int eisaBase);

-void
+int
  ahc_linux_eisa_init(void)
  {
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
@@ -82,7 +82,7 @@
  	int i;

  	if (aic7xxx_probe_eisa_vl == 0)
-		return;
+		return (0);

  	/*
  	 * Linux requires the EISA IDs to be specified in
@@ -93,7 +93,7 @@
  					 (ahc_num_aic7770_devs + 1),
  					 M_DEVBUF, M_NOWAIT);
  	if (aic7770_driver.id_table == NULL)
-		return;
+		return (-ENOMEM);

  	for (eid = (struct eisa_device_id *)aic7770_driver.id_table,
  	     id = aic7770_ident_table, i = 0;
@@ -109,7 +109,7 @@
  	}
  	eid->sig[0] = 0;

-	eisa_driver_register(&aic7770_driver);
+	return (eisa_driver_register(&aic7770_driver));
  #else /* LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) */
  	struct aic7770_identity *entry;
  	u_int  slot;
@@ -117,7 +117,7 @@
  	u_int  i;

  	if (aic7xxx_probe_eisa_vl == 0)
-		return;
+		return (0);

  	eisaBase = 0x1000 + AHC_EISA_SLOT_OFFSET;
  	for (slot = 1; slot < NUMSLOTS; eisaBase+=0x1000, slot++) {
@@ -143,6 +143,7 @@
  		if (entry != NULL)
  			aic7770_linux_config(entry, NULL, eisaBase);
  	}
+	return (0);
  #endif
  }

@@ -185,6 +186,13 @@
  		return (ENOMEM);
  	}
  	ahc->dev_softc = dev;
+	if (aic_set_dma_mask(ahc, 0xFFFFFFFF) != 0
+       /*|| aic_set_consistent_dma_mask(ahc, 0xFFFFFFFF) != 0 */) {
+		printk(KERN_WARNING "aic7xxx: Unable to set DMA masks.\n");
+		ahc_free(ahc);
+		return (-ENOMEM);
+	}
+	ahc->platform_data->hw_dma_mask = 0xFFFFFFFF;
  	error = aic7770_config(ahc, entry, eisaBase);
  	if (error != 0) {
  		ahc->bsh.ioport = 0;
==== //depot/aic7xxx/aic7xxx/aic79xx.h#105 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.h ====
--- /tmp/tmp.27107.1	2004-09-27 13:34:45.526828192 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.h	2004-01-29 20:13:27.000000000 -0500
@@ -37,7 +37,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#105 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#106 $
   *
   * $FreeBSD$
   */
@@ -201,7 +201,7 @@
  #define AHD_BUSRESET_DELAY	25

  /******************* Chip Characteristics/Operating Settings  *****************/
-extern int ahd_attach_to_HostRAID_controllers;
+extern uint32_t ahd_attach_to_HostRAID_controllers;

  /*
   * Chip Type
==== //depot/aic7xxx/aic7xxx/aic79xx.seq#117 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.seq ====
--- /tmp/tmp.27107.2	2004-09-27 13:34:45.866776512 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.seq	2004-01-29 23:57:25.000000000 -0500
@@ -40,7 +40,7 @@
   * $FreeBSD$
   */

-VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#117 $"
+VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#118 $"
  PATCH_ARG_LIST = "struct ahd_softc *ahd"
  PREFIX = "ahd_"

@@ -409,7 +409,18 @@
  	mov	CCSCBCTL, SINDEX ret;

  setjmp:
-	bmov	LONGJMP_ADDR, STACK, 2 ret;
+	/*
+	 * At least on the A, a return in the same
+	 * instruction as the bmov results in a return
+	 * to the caller, not to the new address at the
+	 * top of the stack.  Since we want the latter
+	 * (we use setjmp to register a handler from an
+	 * interrupt context but not invoke that handler
+	 * until we return to our idle loop), use a
+	 * separate ret instruction.
+	 */
+	bmov	LONGJMP_ADDR, STACK, 2;
+	ret;
  setjmp_inline:
  	bmov	LONGJMP_ADDR, STACK, 2;
  longjmp:
==== //depot/aic7xxx/aic7xxx/aic79xx.c#236 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_core.c ====
--- /tmp/tmp.27107.3	2004-09-27 13:34:47.176577392 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_core.c	2004-01-29 20:13:36.000000000 -0500
@@ -37,7 +37,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#236 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#238 $
   */

  #ifdef __linux__
@@ -54,7 +54,7 @@

  /******************************** Globals *************************************/
  struct ahd_softc_tailq ahd_tailq = TAILQ_HEAD_INITIALIZER(ahd_tailq);
-int ahd_attach_to_HostRAID_controllers = 1;
+uint32_t ahd_attach_to_HostRAID_controllers = 1;

  /***************************** Lookup Tables **********************************/
  char *ahd_chip_names[] =
@@ -6013,6 +6013,22 @@
  		hscb = (struct hardware_scb *)hscb_map->vaddr;
  		hscb_busaddr = hscb_map->busaddr;
  		scb_data->scbs_left = PAGE_SIZE / sizeof(*hscb);
+		if (ahd->next_queued_hscb == NULL) {
+			/*
+			 * We need one HSCB to serve as the "next HSCB".  Since
+			 * the tag identifier in this HSCB will never be used,
+			 * there is no point in using a valid SCB from the
+			 * free pool for it.  So, we allocate this "sentinel"
+			 * specially.
+	 		 */
+			ahd->next_queued_hscb = hscb;
+			ahd->next_queued_hscb_map = hscb_map;
+			memset(hscb, 0, sizeof(*hscb));
+			hscb->hscb_busaddr = aic_htole32(hscb_busaddr);
+			hscb++;
+			hscb_busaddr += sizeof(*hscb);
+			scb_data->scbs_left--;
+		}
  	}

  	if (scb_data->sgs_left != 0) {
@@ -6096,12 +6112,12 @@
  	scb_data->scbs_left -= newcount;
  	scb_data->sgs_left -= newcount;
  	for (i = 0; i < newcount; i++) {
-		u_int col_tag;
-
  		struct scb_platform_data *pdata;
+		u_int col_tag;
  #ifndef __linux__
  		int error;
  #endif
+
  		next_scb = (struct scb *)malloc(sizeof(*next_scb),
  						M_DEVBUF, M_NOWAIT);
  		if (next_scb == NULL)
@@ -6272,8 +6288,7 @@
  	 * for the target mode role, we must additionally provide space for
  	 * the incoming target command fifo.
  	 */
-	driver_data_size = AHD_SCB_MAX * sizeof(*ahd->qoutfifo)
-			 + sizeof(struct hardware_scb);
+	driver_data_size = AHD_SCB_MAX * sizeof(*ahd->qoutfifo);
  	if ((ahd->features & AHD_TARGETMODE) != 0)
  		driver_data_size += AHD_TMODE_CMDS * sizeof(struct target_cmd);
  	if ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) != 0)
@@ -6323,17 +6338,6 @@
  		next_baddr += PKT_OVERRUN_BUFSIZE;
  	}

-	/*
-	 * We need one SCB to serve as the "next SCB".  Since the
-	 * tag identifier in this SCB will never be used, there is
-	 * no point in using a valid HSCB tag from an SCB pulled from
-	 * the standard free pool.  So, we allocate this "sentinel"
-	 * specially from the DMA safe memory chunk used for the QOUTFIFO.
-	 */
-	ahd->next_queued_hscb = (struct hardware_scb *)next_vaddr;
-	ahd->next_queued_hscb_map = &ahd->shared_data_map;
-	ahd->next_queued_hscb->hscb_busaddr = aic_htole32(next_baddr);
-
  	ahd->init_level++;

  	/* Allocate SCB data now that buffer_dmat is initialized */
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#198 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.c ====
--- /tmp/tmp.27107.4	2004-09-27 13:34:47.743491208 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.c	2004-01-29 20:14:29.000000000 -0500
@@ -1,7 +1,7 @@
  /*
   * Adaptec AIC79xx device driver for Linux.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#198 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#200 $
   *
   * --------------------------------------------------------------------------
   * Copyright (c) 1994-2000 Justin T. Gibbs.
@@ -70,6 +70,12 @@

  static int ahd_sysrq_key;

+/***************************** Global Data ************************************/
+/*
+ * Driver Initialization Status.  Used by ahd_linux_exit().
+ */
+int ahd_init_status;
+
  /*
   * Lock protecting manipulation of the ahd softc list.
   */
@@ -433,6 +439,7 @@
  MODULE_PARM_DESC(aic79xx,
  "period delimited, options string.\n"
  "	verbose			Enable verbose/diagnostic logging\n"
+"	attach_HostRAID:<int>	Attach to controllers in HostRAID mode\n"
  "	allow_memio		Allow device registers to be memory mapped\n"
  "	debug			Bitmask of debug values to enable\n"
  "	no_reset		Supress initial bus resets\n"
@@ -472,6 +479,8 @@
  					 Scsi_Cmnd *cmd);
  static void ahd_linux_filter_inquiry(struct ahd_softc *ahd,
  				     struct ahd_devinfo *devinfo);
+static int __init ahd_linux_init(void);
+static void __exit ahd_linux_exit(void);
  static void ahd_linux_dev_timed_unfreeze(u_long arg);
  static void ahd_linux_sem_timeout(u_long arg);
  static void ahd_linux_initialize_scsi_bus(struct ahd_softc *ahd);
@@ -918,6 +927,7 @@
  	 */
  	spin_unlock_irq(&io_request_lock);
  #endif
+	found = 0;

  	/*
  	 * Sanity checking of Linux SCSI data structures so
@@ -928,7 +938,8 @@
  	  > offsetof(struct scsi_cmnd, host_scribble)) {
  		printf("ahd_linux_detect: SCSI data structures changed.\n");
  		printf("ahd_linux_detect: Unable to attach\n");
-		return (0);
+		ahd_init_status = -EINVAL;
+		goto done;
  	}
  	/*
  	 * Determine an appropriate size for our Scatter Gatther lists.
@@ -957,7 +968,9 @@
  	ahd_list_lockinit();

  #ifdef CONFIG_PCI
-	ahd_linux_pci_init();
+	ahd_init_status = ahd_linux_pci_init();
+	if (ahd_init_status != 0)
+		goto done;
  #endif

  	/*
@@ -970,6 +983,7 @@
  		if (ahd_linux_register_host(ahd, template) == 0)
  			found++;
  	}
+done:
  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
  	spin_lock_irq(&io_request_lock);
  #endif
@@ -1887,6 +1901,7 @@
  		{ "extended", &aic79xx_extended },
  		{ "no_reset", &aic79xx_no_reset },
  		{ "verbose", &aic79xx_verbose },
+		{ "attach_HostRAID", &ahd_attach_to_HostRAID_controllers },
  		{ "allow_memio", &aic79xx_allow_memio},
  #ifdef AHD_DEBUG
  		{ "debug", &ahd_debug },
@@ -5071,18 +5086,28 @@
  static int __init
  ahd_linux_init(void)
  {
+	int	found;
+
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
-       return (ahd_linux_detect(&aic79xx_driver_template) ? 0 : -ENODEV);
+	found = ahd_linux_detect(&aic79xx_driver_template);
  #else
  	scsi_register_module(MODULE_SCSI_HA, &aic79xx_driver_template);
-	if (aic79xx_driver_template.present == 0) {
-		scsi_unregister_module(MODULE_SCSI_HA,
-				       &aic79xx_driver_template);
-		return (-ENODEV);
-	}
-
-	return (0);
+	found = aic79xx_driver_template.present;
+#endif
+#ifdef MODULE
+	if (found == 0)
+		ahd_init_status = -ENODEV;
  #endif
+	if (ahd_init_status != 0) {
+		/*
+		 * Linux will only call our exit
+		 * routine if our init function
+		 * returns 0 status.  Force cleanup
+		 * if initialization is not successful.
+		 */
+		ahd_linux_exit();
+	}
+	return (ahd_init_status);
  }

  static void __exit
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#155 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.h ====
--- /tmp/tmp.27107.5	2004-09-27 13:34:47.765487864 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.h	2004-01-29 19:03:42.000000000 -0500
@@ -36,7 +36,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#155 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#156 $
   *
   */
  #ifndef _AIC79XX_LINUX_H_
@@ -228,6 +228,7 @@
  }

  /**************************** Initialization **********************************/
+extern int	ahd_init_status;
  int		ahd_linux_register_host(struct ahd_softc *,
  					Scsi_Host_Template *);

==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm_pci.c#30 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm_pci.c ====
--- /tmp/tmp.27107.6	2004-09-27 13:34:47.820479504 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm_pci.c	2004-01-29 18:08:04.000000000 -0500
@@ -36,7 +36,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm_pci.c#30 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm_pci.c#33 $
   */

  #include "aic79xx_osm.h"
@@ -48,6 +48,8 @@
   */
  #include "aiclib_pci.c"

+static int	ahd_pci_module_registered;
+
  static int	ahd_linux_pci_dev_probe(struct pci_dev *pdev,
  					const struct pci_device_id *ent);
  static int	ahd_linux_pci_reserve_io_regions(struct ahd_softc *ahd,
@@ -63,6 +65,10 @@
  		0x9005, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
  		PCI_CLASS_STORAGE_SCSI << 8, 0xFFFF00, 0
  	},
+	{
+		0x9005, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+		PCI_CLASS_STORAGE_RAID << 8, 0xFFFF00, 0
+	},
  	{ 0 }
  };

@@ -155,6 +161,12 @@
  	}
  	pci_set_master(pdev);

+	if (aic_set_consistent_dma_mask(ahd, 0xFFFFFFFF) != 0) {
+		printk(KERN_WARNING "aic79xx: Unable to set"
+		       "coherent DMA mask.\n");
+		ahd_free(ahd);
+		return (-ENOMEM);
+	}
  	if (sizeof(bus_addr_t) > 4) {
  		uint64_t   memsize;
  		bus_addr_t mask_64bit;
@@ -173,7 +185,12 @@
  			ahd->platform_data->hw_dma_mask = mask_39bit;
  		}
  	} else {
-		aic_set_dma_mask(ahd, 0xFFFFFFFF);
+		if (aic_set_dma_mask(ahd, 0xFFFFFFFF) != 0) {
+			printk(KERN_WARNING "aic79xx: Unable to set data "
+			       "DMA mask.\n");
+			ahd_free(ahd);
+			return (-ENOMEM);
+		}
  		ahd->platform_data->hw_dma_mask = 0xFFFFFFFF;
  	}
  	error = ahd_pci_config(ahd, entry);
@@ -197,13 +214,19 @@
  int
  ahd_linux_pci_init(void)
  {
-	return (pci_module_init(&aic79xx_pci_driver));
+	int error;
+	
+	error = pci_module_init(&aic79xx_pci_driver);
+	if (error == 0)
+		ahd_pci_module_registered = 1;
+	return (error);
  }

  void
  ahd_linux_pci_exit(void)
  {
-	pci_unregister_driver(&aic79xx_pci_driver);
+	if (ahd_pci_module_registered != 0)
+		pci_unregister_driver(&aic79xx_pci_driver);
  }

  static int
==== //depot/aic7xxx/aic7xxx/aic79xx_pci.c#85 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_pci.c ====
--- /tmp/tmp.27107.7	2004-09-27 13:34:47.915465064 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_pci.c	2004-01-25 22:03:29.000000000 -0500
@@ -38,7 +38,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx_pci.c#85 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx_pci.c#86 $
   */

  #ifdef __linux__
@@ -65,10 +65,10 @@
  }

  #define ID_ALL_MASK			0xFFFFFFFFFFFFFFFFull
-#define ID_ALL_IROC_MASK		0xFFFFFF7FFFFFFFFFull
+#define ID_ALL_IROC_MASK		0xFF7FFFFFFFFFFFFFull
  #define ID_DEV_VENDOR_MASK		0xFFFFFFFF00000000ull
  #define ID_9005_GENERIC_MASK		0xFFF0FFFF00000000ull
-#define ID_9005_GENERIC_IROC_MASK	0xFFF0FF7F00000000ull
+#define ID_9005_GENERIC_IROC_MASK	0xFF70FFFF00000000ull

  #define ID_AIC7901			0x800F9005FFFF9005ull
  #define ID_AHA_29320A			0x8000900500609005ull
@@ -199,7 +199,7 @@
  	},
  	/* Generic chip probes for devices we don't know 'exactly' */
  	{
-		ID_AIC7901 & ID_DEV_VENDOR_MASK,
+		ID_AIC7901 & ID_9005_GENERIC_MASK,
  		ID_DEV_VENDOR_MASK,
  		"Adaptec AIC7901 Ultra320 SCSI adapter",
  		ahd_aic7901_setup
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg.h#84 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped ====
--- /tmp/tmp.27107.8	2004-09-27 13:34:48.374395296 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped	2004-01-29 23:51:04.000000000 -0500
@@ -2,7 +2,7 @@
   * DO NOT EDIT - This file is automatically generated
   *		 from the following source files:
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#117 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#118 $
   * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#75 $
   */
  typedef int (ahd_reg_print_t)(u_int, u_int *, u_int);
@@ -3799,5 +3799,5 @@


  /* Exported Labels */
-#define	LABEL_seq_isr 	0x282
-#define	LABEL_timer_isr	0x27e
+#define	LABEL_seq_isr 	0x283
+#define	LABEL_timer_isr	0x27f
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg_print.c#65 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped ====
--- /tmp/tmp.27107.9	2004-09-27 13:34:49.337248920 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped	2004-01-29 23:51:04.000000000 -0500
@@ -2,7 +2,7 @@
   * DO NOT EDIT - This file is automatically generated
   *		 from the following source files:
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#117 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#118 $
   * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#75 $
   */

==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_seq.h#85 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_seq.h_shipped ====
--- /tmp/tmp.27107.10	2004-09-27 13:34:49.497224600 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_seq.h_shipped	2004-01-29 23:51:04.000000000 -0500
@@ -2,17 +2,17 @@
   * DO NOT EDIT - This file is automatically generated
   *		 from the following source files:
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#117 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#118 $
   * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#75 $
   */
  static uint8_t seqprog[] = {
  	0xff, 0x02, 0x06, 0x78,
-	0x00, 0xea, 0x5e, 0x59,
+	0x00, 0xea, 0x60, 0x59,
  	0x01, 0xea, 0x04, 0x30,
  	0xff, 0x04, 0x0c, 0x78,
-	0x19, 0xea, 0x5e, 0x59,
+	0x19, 0xea, 0x60, 0x59,
  	0x19, 0xea, 0x04, 0x00,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x60, 0x3a, 0x3a, 0x68,
  	0x04, 0x4d, 0x35, 0x78,
@@ -33,15 +33,15 @@
  	0xff, 0xea, 0x62, 0x02,
  	0x00, 0xe2, 0x3a, 0x40,
  	0xff, 0x21, 0x3b, 0x70,
-	0x40, 0x4b, 0xa4, 0x69,
-	0x00, 0xe2, 0x62, 0x59,
-	0x40, 0x4b, 0xa4, 0x69,
-	0x20, 0x4b, 0x90, 0x69,
+	0x40, 0x4b, 0xa6, 0x69,
+	0x00, 0xe2, 0x64, 0x59,
+	0x40, 0x4b, 0xa6, 0x69,
+	0x20, 0x4b, 0x92, 0x69,
  	0xfc, 0x42, 0x44, 0x78,
  	0x10, 0x40, 0x44, 0x78,
-	0x00, 0xe2, 0xf6, 0x5d,
+	0x00, 0xe2, 0xf8, 0x5d,
  	0x20, 0x4d, 0x48, 0x78,
-	0x00, 0xe2, 0xf6, 0x5d,
+	0x00, 0xe2, 0xf8, 0x5d,
  	0x30, 0x3f, 0xc0, 0x09,
  	0x30, 0xe0, 0x50, 0x60,
  	0x7f, 0x4a, 0x94, 0x08,
@@ -51,7 +51,7 @@
  	0x00, 0xe2, 0x76, 0x58,
  	0x00, 0xe2, 0x86, 0x58,
  	0x00, 0xe2, 0x06, 0x40,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x01, 0x52, 0x84, 0x78,
  	0x02, 0x58, 0x50, 0x31,
@@ -59,21 +59,21 @@
  	0xff, 0x97, 0x6f, 0x78,
  	0x50, 0x4b, 0x6a, 0x68,
  	0xbf, 0x3a, 0x74, 0x08,
-	0x14, 0xea, 0x5e, 0x59,
+	0x14, 0xea, 0x60, 0x59,
  	0x14, 0xea, 0x04, 0x00,
  	0x08, 0x92, 0x25, 0x03,
  	0xff, 0x90, 0x5f, 0x68,
-	0x00, 0xe2, 0x70, 0x5b,
+	0x00, 0xe2, 0x72, 0x5b,
  	0x00, 0xe2, 0x5e, 0x40,
-	0x00, 0xea, 0x58, 0x59,
+	0x00, 0xea, 0x5a, 0x59,
  	0x01, 0xea, 0x00, 0x30,
  	0x80, 0xf9, 0x7e, 0x68,
-	0x00, 0xe2, 0x56, 0x59,
-	0x11, 0xea, 0x58, 0x59,
+	0x00, 0xe2, 0x58, 0x59,
+	0x11, 0xea, 0x5a, 0x59,
  	0x11, 0xea, 0x00, 0x00,
-	0x80, 0xf9, 0x56, 0x79,
+	0x80, 0xf9, 0x58, 0x79,
  	0xff, 0xea, 0xd4, 0x0d,
-	0x22, 0xea, 0x58, 0x59,
+	0x22, 0xea, 0x5a, 0x59,
  	0x22, 0xea, 0x00, 0x00,
  	0x10, 0x16, 0x90, 0x78,
  	0x10, 0x16, 0x2c, 0x00,
@@ -175,7 +175,8 @@
  	0x19, 0xea, 0x4e, 0x41,
  	0x06, 0xea, 0x08, 0x81,
  	0x01, 0xe2, 0x5a, 0x35,
-	0x02, 0xf2, 0xf0, 0x35,
+	0x02, 0xf2, 0xf0, 0x31,
+	0xff, 0xea, 0xd4, 0x0d,
  	0x02, 0xf2, 0xf0, 0x31,
  	0x02, 0xf8, 0xe4, 0x35,
  	0x80, 0xea, 0xb2, 0x01,
@@ -187,27 +188,27 @@
  	0x02, 0x20, 0xb9, 0x30,
  	0x02, 0x20, 0x51, 0x31,
  	0x4c, 0x93, 0xd7, 0x28,
-	0x10, 0x92, 0x71, 0x79,
+	0x10, 0x92, 0x73, 0x79,
  	0x01, 0x6b, 0xc0, 0x30,
  	0x02, 0x64, 0xc8, 0x00,
  	0x40, 0x3a, 0x74, 0x04,
  	0x00, 0xe2, 0x76, 0x58,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x30, 0x3f, 0xc0, 0x09,
-	0x30, 0xe0, 0x72, 0x61,
-	0x20, 0x3f, 0x88, 0x69,
-	0x10, 0x3f, 0x72, 0x79,
+	0x30, 0xe0, 0x74, 0x61,
+	0x20, 0x3f, 0x8a, 0x69,
+	0x10, 0x3f, 0x74, 0x79,
  	0x02, 0xea, 0x7e, 0x00,
-	0x00, 0xea, 0x58, 0x59,
+	0x00, 0xea, 0x5a, 0x59,
  	0x01, 0xea, 0x00, 0x30,
  	0x02, 0x4e, 0x51, 0x35,
  	0x01, 0xea, 0x7e, 0x00,
-	0x11, 0xea, 0x58, 0x59,
+	0x11, 0xea, 0x5a, 0x59,
  	0x11, 0xea, 0x00, 0x00,
  	0x02, 0x4e, 0x51, 0x35,
  	0xc0, 0x4a, 0x94, 0x00,
-	0x04, 0x41, 0x96, 0x79,
+	0x04, 0x41, 0x98, 0x79,
  	0x08, 0xea, 0x98, 0x00,
  	0x08, 0x57, 0xae, 0x00,
  	0x08, 0x3c, 0x78, 0x00,
@@ -215,12 +216,12 @@
  	0x0f, 0x67, 0xc0, 0x09,
  	0x00, 0x3a, 0x75, 0x02,
  	0x20, 0xea, 0x96, 0x00,
-	0x00, 0xe2, 0x0e, 0x42,
+	0x00, 0xe2, 0x10, 0x42,
  	0xc0, 0x4a, 0x94, 0x00,
-	0x40, 0x3a, 0xc2, 0x69,
+	0x40, 0x3a, 0xc4, 0x69,
  	0x02, 0x55, 0x06, 0x68,
-	0x02, 0x56, 0xc2, 0x69,
-	0xff, 0x5b, 0xc2, 0x61,
+	0x02, 0x56, 0xc4, 0x69,
+	0xff, 0x5b, 0xc4, 0x61,
  	0x02, 0x20, 0x51, 0x31,
  	0x80, 0xea, 0xb2, 0x01,
  	0x44, 0xea, 0x00, 0x00,
@@ -228,40 +229,40 @@
  	0x33, 0xea, 0x00, 0x00,
  	0xff, 0xea, 0xb2, 0x09,
  	0xff, 0xe0, 0xc0, 0x19,
-	0xff, 0xe0, 0xc4, 0x79,
+	0xff, 0xe0, 0xc6, 0x79,
  	0x02, 0xac, 0x51, 0x31,
-	0x00, 0xe2, 0xba, 0x41,
+	0x00, 0xe2, 0xbc, 0x41,
  	0x02, 0x5e, 0x50, 0x31,
  	0x02, 0xa8, 0xb8, 0x30,
  	0x02, 0x5c, 0x50, 0x31,
-	0xff, 0xad, 0xd5, 0x71,
+	0xff, 0xad, 0xd7, 0x71,
  	0x02, 0xac, 0x41, 0x31,
  	0x02, 0x22, 0x51, 0x31,
  	0x02, 0xa0, 0x5c, 0x33,
  	0x02, 0xa0, 0x44, 0x32,
-	0x00, 0xe2, 0xde, 0x41,
-	0x10, 0x92, 0xdf, 0x69,
+	0x00, 0xe2, 0xe0, 0x41,
+	0x10, 0x92, 0xe1, 0x69,
  	0x3d, 0x93, 0xc9, 0x29,
  	0x01, 0xe4, 0xc8, 0x01,
  	0x01, 0xea, 0xca, 0x01,
  	0xff, 0xea, 0xda, 0x01,
  	0x02, 0x20, 0x51, 0x31,
  	0x02, 0xae, 0x41, 0x32,
-	0xff, 0x21, 0xe7, 0x61,
+	0xff, 0x21, 0xe9, 0x61,
  	0xff, 0xea, 0x46, 0x02,
  	0x02, 0x5c, 0x50, 0x31,
  	0x40, 0xea, 0x96, 0x00,
-	0x02, 0x56, 0xfe, 0x6d,
-	0x01, 0x55, 0xfe, 0x6d,
-	0x10, 0x92, 0xf3, 0x79,
-	0x10, 0x40, 0xfc, 0x69,
-	0x01, 0x56, 0xfc, 0x79,
+	0x02, 0x56, 0x00, 0x6e,
+	0x01, 0x55, 0x00, 0x6e,
+	0x10, 0x92, 0xf5, 0x79,
+	0x10, 0x40, 0xfe, 0x69,
+	0x01, 0x56, 0xfe, 0x79,
  	0xff, 0x97, 0x07, 0x78,
-	0x13, 0xea, 0x5e, 0x59,
+	0x13, 0xea, 0x60, 0x59,
  	0x13, 0xea, 0x04, 0x00,
  	0x00, 0xe2, 0x06, 0x40,
  	0xbf, 0x3a, 0x74, 0x08,
-	0x04, 0x41, 0x02, 0x7a,
+	0x04, 0x41, 0x04, 0x7a,
  	0x08, 0xea, 0x98, 0x00,
  	0x08, 0x57, 0xae, 0x00,
  	0x01, 0x93, 0x75, 0x32,
@@ -269,108 +270,108 @@
  	0x40, 0xea, 0x72, 0x02,
  	0x08, 0x3c, 0x78, 0x00,
  	0x80, 0xea, 0x6e, 0x02,
-	0x00, 0xe2, 0xdc, 0x5b,
+	0x00, 0xe2, 0xde, 0x5b,
  	0x01, 0x3c, 0xc1, 0x31,
-	0x9f, 0xe0, 0x7e, 0x7c,
-	0x80, 0xe0, 0x22, 0x72,
-	0xa0, 0xe0, 0x5e, 0x72,
-	0xc0, 0xe0, 0x54, 0x72,
-	0xe0, 0xe0, 0x8e, 0x72,
-	0x01, 0xea, 0x5e, 0x59,
+	0x9f, 0xe0, 0x80, 0x7c,
+	0x80, 0xe0, 0x24, 0x72,
+	0xa0, 0xe0, 0x60, 0x72,
+	0xc0, 0xe0, 0x56, 0x72,
+	0xe0, 0xe0, 0x90, 0x72,
+	0x01, 0xea, 0x60, 0x59,
  	0x01, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x0e, 0x42,
-	0x80, 0x39, 0x29, 0x7a,
-	0x03, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0x10, 0x42,
+	0x80, 0x39, 0x2b, 0x7a,
+	0x03, 0xea, 0x60, 0x59,
  	0x03, 0xea, 0x04, 0x00,
-	0xee, 0x00, 0x30, 0x6a,
+	0xee, 0x00, 0x32, 0x6a,
  	0x05, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x02, 0xa8, 0x9c, 0x32,
-	0x00, 0xe2, 0x78, 0x59,
+	0x00, 0xe2, 0x7a, 0x59,
  	0xef, 0x96, 0xd5, 0x19,
-	0x00, 0xe2, 0x40, 0x52,
+	0x00, 0xe2, 0x42, 0x52,
  	0x09, 0x80, 0xe1, 0x30,
  	0x02, 0xea, 0x36, 0x00,
  	0xa8, 0xea, 0x32, 0x00,
-	0x00, 0xe2, 0x46, 0x42,
+	0x00, 0xe2, 0x48, 0x42,
  	0x01, 0x96, 0xd1, 0x30,
  	0x10, 0x80, 0x89, 0x31,
  	0x20, 0xea, 0x32, 0x00,
  	0xbf, 0x39, 0x73, 0x0a,
-	0x10, 0x4c, 0x50, 0x6a,
-	0x20, 0x19, 0x48, 0x6a,
-	0x20, 0x19, 0x4c, 0x6a,
-	0x02, 0x4d, 0x0e, 0x6a,
+	0x10, 0x4c, 0x52, 0x6a,
+	0x20, 0x19, 0x4a, 0x6a,
+	0x20, 0x19, 0x4e, 0x6a,
+	0x02, 0x4d, 0x10, 0x6a,
  	0x40, 0x39, 0x73, 0x02,
-	0x00, 0xe2, 0x0e, 0x42,
-	0x80, 0x39, 0xcf, 0x6a,
+	0x00, 0xe2, 0x10, 0x42,
+	0x80, 0x39, 0xd1, 0x6a,
  	0x01, 0x44, 0x10, 0x33,
  	0x08, 0x92, 0x25, 0x03,
-	0x00, 0xe2, 0x0e, 0x42,
+	0x00, 0xe2, 0x10, 0x42,
  	0x10, 0xea, 0x80, 0x00,
  	0x01, 0x37, 0xc5, 0x31,
-	0x80, 0xe2, 0x7a, 0x62,
-	0x10, 0x92, 0x9f, 0x6a,
+	0x80, 0xe2, 0x7c, 0x62,
+	0x10, 0x92, 0xa1, 0x6a,
  	0xc0, 0x94, 0xc5, 0x01,
-	0x40, 0x92, 0x6b, 0x6a,
+	0x40, 0x92, 0x6d, 0x6a,
  	0xbf, 0xe2, 0xc4, 0x09,
-	0x20, 0x92, 0x7f, 0x7a,
+	0x20, 0x92, 0x81, 0x7a,
  	0x01, 0xe2, 0x88, 0x30,
-	0x00, 0xe2, 0xdc, 0x5b,
-	0xa0, 0x3c, 0x87, 0x62,
+	0x00, 0xe2, 0xde, 0x5b,
+	0xa0, 0x3c, 0x89, 0x62,
  	0x23, 0x92, 0x89, 0x08,
-	0x00, 0xe2, 0xdc, 0x5b,
-	0xa0, 0x3c, 0x87, 0x62,
-	0x00, 0xa8, 0x7e, 0x42,
-	0xff, 0xe2, 0x7e, 0x62,
-	0x00, 0xe2, 0x9e, 0x42,
+	0x00, 0xe2, 0xde, 0x5b,
+	0xa0, 0x3c, 0x89, 0x62,
+	0x00, 0xa8, 0x80, 0x42,
+	0xff, 0xe2, 0x80, 0x62,
+	0x00, 0xe2, 0xa0, 0x42,
  	0x40, 0xea, 0x98, 0x00,
  	0x01, 0xe2, 0x88, 0x30,
-	0x00, 0xe2, 0xdc, 0x5b,
-	0xa0, 0x3c, 0x5d, 0x72,
+	0x00, 0xe2, 0xde, 0x5b,
+	0xa0, 0x3c, 0x5f, 0x72,
  	0x40, 0xea, 0x98, 0x00,
  	0x01, 0x37, 0x95, 0x32,
  	0x08, 0xea, 0x6e, 0x02,
-	0x00, 0xe2, 0x0e, 0x42,
-	0xe0, 0xea, 0xf8, 0x5b,
-	0x80, 0xe0, 0xda, 0x6a,
-	0x04, 0xe0, 0x8c, 0x73,
-	0x02, 0xe0, 0xbe, 0x73,
-	0x00, 0xea, 0x38, 0x73,
-	0x03, 0xe0, 0xce, 0x73,
-	0x23, 0xe0, 0xb0, 0x72,
-	0x08, 0xe0, 0xd6, 0x72,
-	0x00, 0xe2, 0xdc, 0x5b,
-	0x07, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0x10, 0x42,
+	0xe0, 0xea, 0xfa, 0x5b,
+	0x80, 0xe0, 0xdc, 0x6a,
+	0x04, 0xe0, 0x8e, 0x73,
+	0x02, 0xe0, 0xc0, 0x73,
+	0x00, 0xea, 0x3a, 0x73,
+	0x03, 0xe0, 0xd0, 0x73,
+	0x23, 0xe0, 0xb2, 0x72,
+	0x08, 0xe0, 0xd8, 0x72,
+	0x00, 0xe2, 0xde, 0x5b,
+	0x07, 0xea, 0x60, 0x59,
  	0x07, 0xea, 0x04, 0x00,
-	0x08, 0x48, 0x0f, 0x72,
-	0x04, 0x48, 0xad, 0x62,
+	0x08, 0x48, 0x11, 0x72,
+	0x04, 0x48, 0xaf, 0x62,
  	0x01, 0x49, 0x89, 0x30,
-	0x00, 0xe2, 0x9e, 0x42,
+	0x00, 0xe2, 0xa0, 0x42,
  	0x01, 0x44, 0xd4, 0x31,
-	0x00, 0xe2, 0x9e, 0x42,
+	0x00, 0xe2, 0xa0, 0x42,
  	0x01, 0x00, 0x6c, 0x32,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x4c, 0x3a, 0xc1, 0x28,
  	0x01, 0x64, 0xc0, 0x31,
-	0x00, 0x36, 0x59, 0x59,
+	0x00, 0x36, 0x5b, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x01, 0xe0, 0xd4, 0x7a,
-	0xa0, 0xea, 0xee, 0x5b,
-	0x01, 0xa0, 0xd4, 0x62,
-	0x01, 0x84, 0xc9, 0x7a,
-	0x01, 0x95, 0xd7, 0x6a,
-	0x05, 0xea, 0x5e, 0x59,
+	0x01, 0xe0, 0xd6, 0x7a,
+	0xa0, 0xea, 0xf0, 0x5b,
+	0x01, 0xa0, 0xd6, 0x62,
+	0x01, 0x84, 0xcb, 0x7a,
+	0x01, 0x95, 0xd9, 0x6a,
+	0x05, 0xea, 0x60, 0x59,
  	0x05, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xd6, 0x42,
-	0x03, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0xd8, 0x42,
+	0x03, 0xea, 0x60, 0x59,
  	0x03, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xd6, 0x42,
-	0x07, 0xea, 0x00, 0x5c,
+	0x00, 0xe2, 0xd8, 0x42,
+	0x07, 0xea, 0x02, 0x5c,
  	0x01, 0x44, 0xd4, 0x31,
-	0x00, 0xe2, 0x0e, 0x42,
+	0x00, 0xe2, 0x10, 0x42,
  	0x3f, 0xe0, 0x76, 0x0a,
  	0xc0, 0x3a, 0xc1, 0x09,
  	0x00, 0x3b, 0x51, 0x01,
@@ -381,54 +382,54 @@
  	0x01, 0xea, 0xc6, 0x01,
  	0x02, 0xe2, 0xc8, 0x31,
  	0x02, 0xec, 0x40, 0x31,
-	0xff, 0xa1, 0xf6, 0x72,
+	0xff, 0xa1, 0xf8, 0x72,
  	0x02, 0xe8, 0xda, 0x31,
  	0x02, 0xa0, 0x50, 0x31,
-	0x00, 0xe2, 0x18, 0x43,
+	0x00, 0xe2, 0x1a, 0x43,
  	0x80, 0x39, 0x73, 0x02,
  	0x01, 0x44, 0xd4, 0x31,
-	0x00, 0xe2, 0xdc, 0x5b,
+	0x00, 0xe2, 0xde, 0x5b,
  	0x01, 0x39, 0x73, 0x02,
-	0xe0, 0x3c, 0x33, 0x63,
+	0xe0, 0x3c, 0x35, 0x63,
  	0x02, 0x39, 0x73, 0x02,
-	0x20, 0x46, 0x2c, 0x63,
+	0x20, 0x46, 0x2e, 0x63,
  	0xff, 0xea, 0x52, 0x09,
-	0xa8, 0xea, 0xee, 0x5b,
-	0x04, 0x92, 0x13, 0x7b,
+	0xa8, 0xea, 0xf0, 0x5b,
+	0x04, 0x92, 0x15, 0x7b,
  	0x01, 0x3a, 0xc1, 0x31,
-	0x00, 0x93, 0x13, 0x63,
+	0x00, 0x93, 0x15, 0x63,
  	0x01, 0x3b, 0xc1, 0x31,
-	0x00, 0x94, 0x1d, 0x73,
+	0x00, 0x94, 0x1f, 0x73,
  	0x01, 0xa9, 0x52, 0x11,
-	0xff, 0xa9, 0x08, 0x6b,
-	0x00, 0xe2, 0x2c, 0x43,
+	0xff, 0xa9, 0x0a, 0x6b,
+	0x00, 0xe2, 0x2e, 0x43,
  	0x10, 0x39, 0x73, 0x02,
-	0x04, 0x92, 0x2d, 0x7b,
+	0x04, 0x92, 0x2f, 0x7b,
  	0xfb, 0x92, 0x25, 0x0b,
  	0xff, 0xea, 0x72, 0x0a,
-	0x01, 0xa4, 0x27, 0x6b,
+	0x01, 0xa4, 0x29, 0x6b,
  	0x02, 0xa8, 0x9c, 0x32,
-	0x00, 0xe2, 0x78, 0x59,
-	0x10, 0x92, 0xd7, 0x7a,
-	0xff, 0xea, 0x00, 0x5c,
-	0x00, 0xe2, 0xd6, 0x42,
-	0x04, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0x7a, 0x59,
+	0x10, 0x92, 0xd9, 0x7a,
+	0xff, 0xea, 0x02, 0x5c,
+	0x00, 0xe2, 0xd8, 0x42,
+	0x04, 0xea, 0x60, 0x59,
  	0x04, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xd6, 0x42,
-	0x04, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0xd8, 0x42,
+	0x04, 0xea, 0x60, 0x59,
  	0x04, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x0e, 0x42,
-	0x08, 0x92, 0xcf, 0x7a,
-	0xc0, 0x39, 0x43, 0x7b,
-	0x80, 0x39, 0xcf, 0x6a,
-	0xff, 0x88, 0x43, 0x6b,
-	0x40, 0x39, 0xcf, 0x6a,
-	0x10, 0x92, 0x49, 0x7b,
-	0x0a, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0x10, 0x42,
+	0x08, 0x92, 0xd1, 0x7a,
+	0xc0, 0x39, 0x45, 0x7b,
+	0x80, 0x39, 0xd1, 0x6a,
+	0xff, 0x88, 0x45, 0x6b,
+	0x40, 0x39, 0xd1, 0x6a,
+	0x10, 0x92, 0x4b, 0x7b,
+	0x0a, 0xea, 0x60, 0x59,
  	0x0a, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x68, 0x5b,
-	0x00, 0xe2, 0xa8, 0x43,
-	0x50, 0x4b, 0x50, 0x6b,
+	0x00, 0xe2, 0x6a, 0x5b,
+	0x00, 0xe2, 0xaa, 0x43,
+	0x50, 0x4b, 0x52, 0x6b,
  	0xbf, 0x3a, 0x74, 0x08,
  	0x01, 0xe0, 0xf4, 0x31,
  	0xff, 0xea, 0xc0, 0x09,
@@ -438,31 +439,31 @@
  	0x01, 0xfa, 0xc0, 0x35,
  	0x02, 0xa8, 0x90, 0x32,
  	0x02, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x02, 0x48, 0x51, 0x31,
  	0xff, 0x90, 0x85, 0x68,
-	0xff, 0x88, 0x75, 0x6b,
-	0x01, 0xa4, 0x71, 0x6b,
-	0x02, 0xa4, 0x79, 0x6b,
-	0x01, 0x84, 0x79, 0x7b,
+	0xff, 0x88, 0x77, 0x6b,
+	0x01, 0xa4, 0x73, 0x6b,
+	0x02, 0xa4, 0x7b, 0x6b,
+	0x01, 0x84, 0x7b, 0x7b,
  	0x02, 0x28, 0x19, 0x33,
  	0x02, 0xa8, 0x50, 0x36,
-	0xff, 0x88, 0x79, 0x73,
-	0x00, 0xe2, 0x4c, 0x5b,
+	0xff, 0x88, 0x7b, 0x73,
+	0x00, 0xe2, 0x4e, 0x5b,
  	0x02, 0xa8, 0x20, 0x33,
  	0x04, 0xa4, 0x49, 0x03,
  	0xff, 0xea, 0x1a, 0x03,
-	0xff, 0x2d, 0x85, 0x63,
+	0xff, 0x2d, 0x87, 0x63,
  	0x02, 0xa8, 0x58, 0x32,
  	0x02, 0xa8, 0x5c, 0x36,
  	0x02, 0xa8, 0x40, 0x31,
  	0x02, 0x2e, 0x51, 0x31,
  	0x02, 0xa0, 0x18, 0x33,
  	0x02, 0xa0, 0x5c, 0x36,
-	0xc0, 0x39, 0xcf, 0x6a,
+	0xc0, 0x39, 0xd1, 0x6a,
  	0x04, 0x92, 0x25, 0x03,
-	0x20, 0x92, 0xa9, 0x6b,
+	0x20, 0x92, 0xab, 0x6b,
  	0x02, 0xa8, 0x40, 0x31,
  	0xc0, 0x3a, 0xc1, 0x09,
  	0x00, 0x3b, 0x51, 0x01,
@@ -477,60 +478,60 @@
  	0xf7, 0x57, 0xae, 0x08,
  	0x08, 0xea, 0x98, 0x00,
  	0x01, 0x44, 0xd4, 0x31,
-	0xee, 0x00, 0xb2, 0x6b,
+	0xee, 0x00, 0xb4, 0x6b,
  	0x02, 0xea, 0xb4, 0x00,
  	0xc0, 0xea, 0x72, 0x02,
-	0x09, 0x4c, 0xb4, 0x7b,
+	0x09, 0x4c, 0xb6, 0x7b,
  	0x01, 0xea, 0x78, 0x02,
  	0x08, 0x4c, 0x06, 0x68,
-	0x0b, 0xea, 0x5e, 0x59,
+	0x0b, 0xea, 0x60, 0x59,
  	0x0b, 0xea, 0x04, 0x00,
  	0x01, 0x44, 0xd4, 0x31,
-	0x20, 0x39, 0x0f, 0x7a,
-	0x00, 0xe2, 0xc6, 0x5b,
-	0x00, 0xe2, 0x0e, 0x42,
-	0x01, 0x84, 0xcb, 0x7b,
+	0x20, 0x39, 0x11, 0x7a,
+	0x00, 0xe2, 0xc8, 0x5b,
+	0x00, 0xe2, 0x10, 0x42,
+	0x01, 0x84, 0xcd, 0x7b,
  	0x01, 0xa4, 0x49, 0x07,
  	0x08, 0x60, 0x30, 0x33,
  	0x08, 0x80, 0x41, 0x37,
  	0xdf, 0x39, 0x73, 0x0a,
-	0xee, 0x00, 0xd8, 0x6b,
+	0xee, 0x00, 0xda, 0x6b,
  	0x05, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
-	0x00, 0xe2, 0x78, 0x59,
-	0x00, 0xe2, 0xd6, 0x42,
-	0xff, 0x42, 0xe8, 0x6b,
-	0x01, 0x41, 0xdc, 0x6b,
-	0x02, 0x41, 0xdc, 0x7b,
-	0xff, 0x42, 0xe8, 0x6b,
-	0x01, 0x41, 0xdc, 0x6b,
-	0x02, 0x41, 0xdc, 0x7b,
-	0xff, 0x42, 0xe8, 0x7b,
-	0x04, 0x4c, 0xdc, 0x6b,
+	0x00, 0xe2, 0x7a, 0x59,
+	0x00, 0xe2, 0xd8, 0x42,
+	0xff, 0x42, 0xea, 0x6b,
+	0x01, 0x41, 0xde, 0x6b,
+	0x02, 0x41, 0xde, 0x7b,
+	0xff, 0x42, 0xea, 0x6b,
+	0x01, 0x41, 0xde, 0x6b,
+	0x02, 0x41, 0xde, 0x7b,
+	0xff, 0x42, 0xea, 0x7b,
+	0x04, 0x4c, 0xde, 0x6b,
  	0xe0, 0x41, 0x78, 0x0e,
  	0x01, 0x44, 0xd4, 0x31,
-	0xff, 0x42, 0xf0, 0x7b,
-	0x04, 0x4c, 0xf0, 0x6b,
+	0xff, 0x42, 0xf2, 0x7b,
+	0x04, 0x4c, 0xf2, 0x6b,
  	0xe0, 0x41, 0x78, 0x0a,
-	0xe0, 0x3c, 0x0f, 0x62,
+	0xe0, 0x3c, 0x11, 0x62,
  	0xff, 0xea, 0xca, 0x09,
  	0x01, 0xe2, 0xc8, 0x31,
  	0x01, 0x46, 0xda, 0x35,
  	0x01, 0x44, 0xd4, 0x35,
  	0x10, 0xea, 0x80, 0x00,
  	0x01, 0xe2, 0x6e, 0x36,
-	0x04, 0xa6, 0x08, 0x7c,
+	0x04, 0xa6, 0x0a, 0x7c,
  	0xff, 0xea, 0x5a, 0x09,
  	0xff, 0xea, 0x4c, 0x0d,
-	0x01, 0xa6, 0x34, 0x6c,
+	0x01, 0xa6, 0x36, 0x6c,
  	0x10, 0xad, 0x84, 0x78,
-	0x80, 0xad, 0x2c, 0x6c,
+	0x80, 0xad, 0x2e, 0x6c,
  	0x08, 0xad, 0x84, 0x68,
-	0x20, 0x19, 0x20, 0x7c,
+	0x20, 0x19, 0x22, 0x7c,
  	0x80, 0xea, 0xb2, 0x01,
  	0x11, 0x00, 0x00, 0x10,
-	0x02, 0xa6, 0x1c, 0x7c,
+	0x02, 0xa6, 0x1e, 0x7c,
  	0xff, 0xea, 0xb2, 0x0d,
  	0x11, 0x00, 0x00, 0x10,
  	0xff, 0xea, 0xb2, 0x09,
@@ -558,7 +559,7 @@
  	0x00, 0x86, 0x0d, 0x23,
  	0x00, 0x87, 0x0f, 0x23,
  	0x01, 0x84, 0xc5, 0x31,
-	0x80, 0x83, 0x57, 0x7c,
+	0x80, 0x83, 0x59, 0x7c,
  	0x02, 0xe2, 0xc4, 0x01,
  	0xff, 0xea, 0x4c, 0x09,
  	0x01, 0xe2, 0x36, 0x30,
@@ -569,75 +570,75 @@
  	0xfe, 0xa6, 0x4c, 0x0d,
  	0x0b, 0x98, 0xe1, 0x30,
  	0xfd, 0xa4, 0x49, 0x09,
-	0x80, 0xa3, 0x6b, 0x7c,
+	0x80, 0xa3, 0x6d, 0x7c,
  	0x02, 0xa4, 0x48, 0x01,
  	0x01, 0xa4, 0x36, 0x30,
  	0xa8, 0xea, 0x32, 0x00,
  	0xfd, 0xa4, 0x49, 0x0b,
  	0x05, 0xa3, 0x07, 0x33,
-	0x80, 0x83, 0x77, 0x6c,
+	0x80, 0x83, 0x79, 0x6c,
  	0x02, 0xea, 0x4c, 0x05,
  	0xff, 0xea, 0x4c, 0x0d,
  	0x00, 0xe2, 0x52, 0x59,
-	0x02, 0xa6, 0x0a, 0x6c,
+	0x02, 0xa6, 0x0c, 0x6c,
  	0x80, 0xf9, 0xf2, 0x05,
-	0xc0, 0x39, 0x85, 0x7c,
-	0x03, 0xea, 0x5e, 0x59,
+	0xc0, 0x39, 0x87, 0x7c,
+	0x03, 0xea, 0x60, 0x59,
  	0x03, 0xea, 0x04, 0x00,
-	0x20, 0x39, 0xa9, 0x7c,
-	0x01, 0x84, 0x8f, 0x6c,
-	0x06, 0xea, 0x5e, 0x59,
+	0x20, 0x39, 0xab, 0x7c,
+	0x01, 0x84, 0x91, 0x6c,
+	0x06, 0xea, 0x60, 0x59,
  	0x06, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xac, 0x44,
+	0x00, 0xe2, 0xae, 0x44,
  	0x01, 0x00, 0x6c, 0x32,
-	0xee, 0x00, 0x98, 0x6c,
+	0xee, 0x00, 0x9a, 0x6c,
  	0x05, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x58, 0x59,
+	0x33, 0xea, 0x5a, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x80, 0x3d, 0x7a, 0x00,
-	0xfc, 0x42, 0x9a, 0x7c,
+	0xfc, 0x42, 0x9c, 0x7c,
  	0x7f, 0x3d, 0x7a, 0x08,
-	0x00, 0x36, 0x59, 0x59,
+	0x00, 0x36, 0x5b, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x09, 0xea, 0x5e, 0x59,
+	0x09, 0xea, 0x60, 0x59,
  	0x09, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x0e, 0x42,
-	0x01, 0xa4, 0x8f, 0x6c,
-	0x00, 0xe2, 0x62, 0x5c,
+	0x00, 0xe2, 0x10, 0x42,
+	0x01, 0xa4, 0x91, 0x6c,
+	0x00, 0xe2, 0x64, 0x5c,
  	0x20, 0x39, 0x73, 0x02,
  	0x01, 0x00, 0x6c, 0x32,
-	0x02, 0xa6, 0xb4, 0x7c,
-	0x00, 0xe2, 0x78, 0x5c,
+	0x02, 0xa6, 0xb6, 0x7c,
+	0x00, 0xe2, 0x7a, 0x5c,
  	0x00, 0xe2, 0x76, 0x58,
  	0x00, 0xe2, 0x86, 0x58,
  	0x00, 0xe2, 0x5a, 0x58,
-	0x00, 0x36, 0x59, 0x59,
+	0x00, 0x36, 0x5b, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x20, 0x19, 0xb4, 0x6c,
-	0x00, 0xe2, 0xe4, 0x5c,
-	0x04, 0x19, 0xce, 0x6c,
+	0x20, 0x19, 0xb6, 0x6c,
+	0x00, 0xe2, 0xe6, 0x5c,
+	0x04, 0x19, 0xd0, 0x6c,
  	0x02, 0x19, 0x32, 0x00,
-	0x01, 0x84, 0xcf, 0x7c,
-	0x01, 0x1b, 0xc8, 0x7c,
-	0x01, 0x1a, 0xce, 0x6c,
-	0x00, 0xe2, 0x7e, 0x44,
-	0x80, 0x4b, 0xd4, 0x6c,
-	0x01, 0x4c, 0xd0, 0x7c,
-	0x03, 0x42, 0x7e, 0x6c,
-	0x00, 0xe2, 0x04, 0x5c,
+	0x01, 0x84, 0xd1, 0x7c,
+	0x01, 0x1b, 0xca, 0x7c,
+	0x01, 0x1a, 0xd0, 0x6c,
+	0x00, 0xe2, 0x80, 0x44,
+	0x80, 0x4b, 0xd6, 0x6c,
+	0x01, 0x4c, 0xd2, 0x7c,
+	0x03, 0x42, 0x80, 0x6c,
+	0x00, 0xe2, 0x06, 0x5c,
  	0x80, 0xf9, 0xf2, 0x01,
-	0x04, 0x39, 0x0f, 0x7a,
-	0x00, 0xe2, 0x0e, 0x42,
-	0x08, 0x5d, 0xec, 0x6c,
+	0x04, 0x39, 0x11, 0x7a,
+	0x00, 0xe2, 0x10, 0x42,
+	0x08, 0x5d, 0xee, 0x6c,
  	0x00, 0xe2, 0x76, 0x58,
-	0x00, 0x36, 0x59, 0x59,
+	0x00, 0x36, 0x5b, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x02, 0x1b, 0xdc, 0x7c,
-	0x08, 0x5d, 0xea, 0x7c,
+	0x02, 0x1b, 0xde, 0x7c,
+	0x08, 0x5d, 0xec, 0x7c,
  	0x03, 0x68, 0x00, 0x37,
  	0x01, 0x84, 0x09, 0x07,
-	0x80, 0x1b, 0xf6, 0x7c,
-	0x80, 0x84, 0xf7, 0x6c,
+	0x80, 0x1b, 0xf8, 0x7c,
+	0x80, 0x84, 0xf9, 0x6c,
  	0xff, 0x85, 0x0b, 0x1b,
  	0xff, 0x86, 0x0d, 0x23,
  	0xff, 0x87, 0x0f, 0x23,
@@ -649,161 +650,161 @@
  	0xf9, 0xd9, 0xb2, 0x0d,
  	0x01, 0xd9, 0xb2, 0x05,
  	0x01, 0x52, 0x48, 0x31,
-	0x20, 0xa4, 0x20, 0x7d,
-	0x20, 0x5b, 0x20, 0x7d,
-	0x80, 0xf9, 0x2e, 0x7d,
+	0x20, 0xa4, 0x22, 0x7d,
+	0x20, 0x5b, 0x22, 0x7d,
+	0x80, 0xf9, 0x30, 0x7d,
  	0x02, 0xea, 0xb4, 0x00,
  	0x11, 0x00, 0x00, 0x10,
-	0x04, 0x19, 0x3a, 0x7d,
+	0x04, 0x19, 0x3c, 0x7d,
  	0xdf, 0x19, 0x32, 0x08,
-	0x60, 0x5b, 0x3a, 0x6d,
-	0x01, 0x4c, 0x14, 0x7d,
+	0x60, 0x5b, 0x3c, 0x6d,
+	0x01, 0x4c, 0x16, 0x7d,
  	0x20, 0x19, 0x32, 0x00,
  	0x01, 0xd9, 0xb2, 0x05,
  	0x02, 0xea, 0xb4, 0x00,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x10, 0x5b, 0x32, 0x6d,
-	0x08, 0x5b, 0x3c, 0x6d,
-	0x20, 0x5b, 0x2c, 0x6d,
-	0x02, 0x5b, 0x5c, 0x6d,
-	0x0e, 0xea, 0x5e, 0x59,
+	0x10, 0x5b, 0x34, 0x6d,
+	0x08, 0x5b, 0x3e, 0x6d,
+	0x20, 0x5b, 0x2e, 0x6d,
+	0x02, 0x5b, 0x5e, 0x6d,
+	0x0e, 0xea, 0x60, 0x59,
  	0x0e, 0xea, 0x04, 0x00,
-	0x80, 0xf9, 0x1c, 0x6d,
+	0x80, 0xf9, 0x1e, 0x6d,
  	0xdf, 0x5c, 0xb8, 0x08,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x01, 0xa4, 0x17, 0x6e,
-	0x00, 0xe2, 0x62, 0x5c,
-	0x00, 0xe2, 0x66, 0x5d,
+	0x01, 0xa4, 0x19, 0x6e,
+	0x00, 0xe2, 0x64, 0x5c,
+	0x00, 0xe2, 0x68, 0x5d,
  	0x01, 0x90, 0x21, 0x1b,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x00, 0xe2, 0x4c, 0x5b,
+	0x00, 0xe2, 0x4e, 0x5b,
  	0xf3, 0x96, 0xd5, 0x19,
-	0x00, 0xe2, 0x4a, 0x55,
-	0x80, 0x96, 0x4b, 0x6d,
-	0x0f, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0x4c, 0x55,
+	0x80, 0x96, 0x4d, 0x6d,
+	0x0f, 0xea, 0x60, 0x59,
  	0x0f, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x52, 0x45,
+	0x00, 0xe2, 0x54, 0x45,
  	0x04, 0x8c, 0xe1, 0x30,
  	0x01, 0xea, 0xf2, 0x00,
  	0x02, 0xea, 0x36, 0x00,
  	0xa8, 0xea, 0x32, 0x00,
-	0xff, 0x97, 0x59, 0x7d,
-	0x14, 0xea, 0x5e, 0x59,
+	0xff, 0x97, 0x5b, 0x7d,
+	0x14, 0xea, 0x60, 0x59,
  	0x14, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xc8, 0x5d,
+	0x00, 0xe2, 0xca, 0x5d,
  	0x01, 0xd9, 0xb2, 0x05,
  	0x09, 0x80, 0xe1, 0x30,
  	0x02, 0xea, 0x36, 0x00,
  	0xa8, 0xea, 0x32, 0x00,
-	0x00, 0xe2, 0xc0, 0x5d,
+	0x00, 0xe2, 0xc2, 0x5d,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x02, 0xa6, 0x76, 0x7d,
+	0x02, 0xa6, 0x78, 0x7d,
  	0x00, 0xe2, 0x52, 0x59,
-	0x20, 0x5b, 0x84, 0x6d,
-	0xfc, 0x42, 0x70, 0x7d,
-	0x10, 0x40, 0x72, 0x6d,
-	0x20, 0x4d, 0x74, 0x7d,
-	0x08, 0x5d, 0x84, 0x6d,
-	0x02, 0xa6, 0x0a, 0x6c,
+	0x20, 0x5b, 0x86, 0x6d,
+	0xfc, 0x42, 0x72, 0x7d,
+	0x10, 0x40, 0x74, 0x6d,
+	0x20, 0x4d, 0x76, 0x7d,
+	0x08, 0x5d, 0x86, 0x6d,
+	0x02, 0xa6, 0x0c, 0x6c,
  	0x00, 0xe2, 0x52, 0x59,
-	0x20, 0x5b, 0x84, 0x6d,
-	0x01, 0x1b, 0xa4, 0x6d,
-	0xfc, 0x42, 0x80, 0x7d,
-	0x10, 0x40, 0x82, 0x6d,
+	0x20, 0x5b, 0x86, 0x6d,
+	0x01, 0x1b, 0xa6, 0x6d,
+	0xfc, 0x42, 0x82, 0x7d,
+	0x10, 0x40, 0x84, 0x6d,
  	0x20, 0x4d, 0x84, 0x78,
  	0x08, 0x5d, 0x84, 0x78,
  	0x02, 0x19, 0x32, 0x00,
  	0x01, 0x5b, 0x40, 0x31,
-	0x00, 0xe2, 0xe4, 0x5c,
-	0x00, 0xe2, 0xc6, 0x5b,
+	0x00, 0xe2, 0xe6, 0x5c,
+	0x00, 0xe2, 0xc8, 0x5b,
  	0x20, 0xea, 0xb6, 0x00,
-	0x00, 0xe2, 0x04, 0x5c,
+	0x00, 0xe2, 0x06, 0x5c,
  	0x20, 0x5c, 0xb8, 0x00,
-	0x04, 0x19, 0x9a, 0x6d,
-	0x01, 0x1a, 0x9a, 0x6d,
+	0x04, 0x19, 0x9c, 0x6d,
+	0x01, 0x1a, 0x9c, 0x6d,
  	0x00, 0xe2, 0x52, 0x59,
  	0x01, 0x1a, 0x84, 0x78,
  	0x80, 0xf9, 0xf2, 0x01,
-	0x20, 0xa0, 0xfe, 0x7d,
+	0x20, 0xa0, 0x00, 0x7e,
  	0xff, 0x90, 0x21, 0x1b,
-	0x08, 0x92, 0x5d, 0x6b,
+	0x08, 0x92, 0x5f, 0x6b,
  	0x02, 0xea, 0xb4, 0x04,
  	0x01, 0xa4, 0x49, 0x03,
-	0x40, 0x5b, 0xb4, 0x6d,
+	0x40, 0x5b, 0xb6, 0x6d,
  	0x00, 0xe2, 0x52, 0x59,
-	0x40, 0x5b, 0xb4, 0x6d,
-	0x04, 0x5d, 0x18, 0x7e,
-	0x01, 0x1a, 0x18, 0x7e,
+	0x40, 0x5b, 0xb6, 0x6d,
+	0x04, 0x5d, 0x1a, 0x7e,
+	0x01, 0x1a, 0x1a, 0x7e,
  	0x20, 0x4d, 0x84, 0x78,
-	0x40, 0x5b, 0xfe, 0x7d,
-	0x04, 0x5d, 0x18, 0x7e,
-	0x01, 0x1a, 0x18, 0x7e,
+	0x40, 0x5b, 0x00, 0x7e,
+	0x04, 0x5d, 0x1a, 0x7e,
+	0x01, 0x1a, 0x1a, 0x7e,
  	0x80, 0xf9, 0xf2, 0x01,
  	0xff, 0x90, 0x21, 0x1b,
-	0x08, 0x92, 0x5d, 0x6b,
+	0x08, 0x92, 0x5f, 0x6b,
  	0x02, 0xea, 0xb4, 0x04,
  	0x00, 0xe2, 0x52, 0x59,
  	0x01, 0x1b, 0x84, 0x78,
  	0x80, 0xf9, 0xf2, 0x01,
  	0x02, 0xea, 0xb4, 0x04,
  	0x00, 0xe2, 0x52, 0x59,
-	0x01, 0x1b, 0xdc, 0x6d,
-	0x40, 0x5b, 0xea, 0x7d,
-	0x01, 0x1b, 0xdc, 0x6d,
+	0x01, 0x1b, 0xde, 0x6d,
+	0x40, 0x5b, 0xec, 0x7d,
+	0x01, 0x1b, 0xde, 0x6d,
  	0x02, 0x19, 0x32, 0x00,
  	0x01, 0x1a, 0x84, 0x78,
  	0x80, 0xf9, 0xf2, 0x01,
  	0xff, 0xea, 0x10, 0x03,
  	0x08, 0x92, 0x25, 0x03,
-	0x00, 0xe2, 0x5c, 0x43,
-	0x01, 0x1a, 0xe6, 0x7d,
-	0x40, 0x5b, 0xe2, 0x7d,
-	0x01, 0x1a, 0xd0, 0x6d,
+	0x00, 0xe2, 0x5e, 0x43,
+	0x01, 0x1a, 0xe8, 0x7d,
+	0x40, 0x5b, 0xe4, 0x7d,
+	0x01, 0x1a, 0xd2, 0x6d,
  	0xfc, 0x42, 0x84, 0x78,
-	0x01, 0x1a, 0xea, 0x6d,
-	0x10, 0xea, 0x5e, 0x59,
+	0x01, 0x1a, 0xec, 0x6d,
+	0x10, 0xea, 0x60, 0x59,
  	0x10, 0xea, 0x04, 0x00,
  	0xfc, 0x42, 0x84, 0x78,
-	0x10, 0x40, 0xf0, 0x6d,
+	0x10, 0x40, 0xf2, 0x6d,
  	0x20, 0x4d, 0x84, 0x78,
-	0x40, 0x5b, 0xd0, 0x6d,
+	0x40, 0x5b, 0xd2, 0x6d,
  	0x01, 0x1a, 0x84, 0x78,
  	0x01, 0x90, 0x21, 0x1b,
  	0x30, 0x3f, 0xc0, 0x09,
  	0x30, 0xe0, 0x84, 0x60,
  	0x40, 0x4b, 0x84, 0x68,
  	0xff, 0xea, 0x52, 0x01,
-	0xee, 0x00, 0x06, 0x6e,
+	0xee, 0x00, 0x08, 0x6e,
  	0x80, 0xf9, 0xf2, 0x01,
  	0xff, 0x90, 0x21, 0x1b,
  	0x02, 0xea, 0xb4, 0x00,
  	0x20, 0xea, 0x9a, 0x00,
-	0xf3, 0x42, 0x10, 0x6e,
-	0x12, 0xea, 0x5e, 0x59,
+	0xf3, 0x42, 0x12, 0x6e,
+	0x12, 0xea, 0x60, 0x59,
  	0x12, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x0e, 0x42,
-	0x0d, 0xea, 0x5e, 0x59,
+	0x00, 0xe2, 0x10, 0x42,
+	0x0d, 0xea, 0x60, 0x59,
  	0x0d, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x0e, 0x42,
+	0x00, 0xe2, 0x10, 0x42,
  	0x01, 0x90, 0x21, 0x1b,
-	0x11, 0xea, 0x5e, 0x59,
+	0x11, 0xea, 0x60, 0x59,
  	0x11, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x4c, 0x5b,
+	0x00, 0xe2, 0x4e, 0x5b,
  	0x08, 0x5a, 0xb4, 0x00,
-	0x00, 0xe2, 0x3e, 0x5e,
+	0x00, 0xe2, 0x40, 0x5e,
  	0xa8, 0xea, 0x32, 0x00,
  	0x00, 0xe2, 0x52, 0x59,
-	0x80, 0x1a, 0x2c, 0x7e,
-	0x00, 0xe2, 0x3e, 0x5e,
+	0x80, 0x1a, 0x2e, 0x7e,
+	0x00, 0xe2, 0x40, 0x5e,
  	0x80, 0x19, 0x32, 0x00,
-	0x40, 0x5b, 0x32, 0x6e,
-	0x08, 0x5a, 0x32, 0x7e,
+	0x40, 0x5b, 0x34, 0x6e,
+	0x08, 0x5a, 0x34, 0x7e,
  	0x20, 0x4d, 0x84, 0x78,
  	0x02, 0x84, 0x09, 0x03,
-	0x40, 0x5b, 0xfe, 0x7d,
+	0x40, 0x5b, 0x00, 0x7e,
  	0xff, 0x90, 0x21, 0x1b,
  	0x80, 0xf9, 0xf2, 0x01,
-	0x08, 0x92, 0x5d, 0x6b,
+	0x08, 0x92, 0x5f, 0x6b,
  	0x02, 0xea, 0xb4, 0x04,
  	0x01, 0x40, 0xe1, 0x30,
  	0x05, 0x41, 0xe3, 0x98,
@@ -1037,116 +1038,116 @@
  	{ ahd_patch2_func, 67, 1, 2 },
  	{ ahd_patch0_func, 68, 1, 1 },
  	{ ahd_patch4_func, 116, 1, 1 },
-	{ ahd_patch2_func, 172, 3, 1 },
-	{ ahd_patch1_func, 175, 2, 1 },
-	{ ahd_patch5_func, 177, 1, 1 },
-	{ ahd_patch2_func, 186, 1, 2 },
-	{ ahd_patch0_func, 187, 1, 1 },
-	{ ahd_patch6_func, 188, 2, 2 },
-	{ ahd_patch0_func, 190, 6, 3 },
-	{ ahd_patch2_func, 193, 1, 2 },
-	{ ahd_patch0_func, 194, 1, 1 },
-	{ ahd_patch2_func, 197, 1, 2 },
-	{ ahd_patch0_func, 198, 1, 1 },
-	{ ahd_patch3_func, 200, 1, 1 },
-	{ ahd_patch7_func, 201, 3, 1 },
-	{ ahd_patch3_func, 210, 1, 1 },
-	{ ahd_patch5_func, 211, 16, 2 },
-	{ ahd_patch0_func, 227, 1, 1 },
-	{ ahd_patch8_func, 247, 2, 1 },
-	{ ahd_patch1_func, 251, 1, 2 },
-	{ ahd_patch0_func, 252, 1, 1 },
-	{ ahd_patch7_func, 255, 3, 1 },
-	{ ahd_patch1_func, 270, 1, 2 },
-	{ ahd_patch0_func, 271, 1, 1 },
-	{ ahd_patch1_func, 274, 1, 2 },
-	{ ahd_patch0_func, 275, 1, 1 },
-	{ ahd_patch2_func, 278, 1, 2 },
-	{ ahd_patch0_func, 279, 1, 1 },
-	{ ahd_patch9_func, 292, 2, 2 },
-	{ ahd_patch0_func, 294, 1, 1 },
-	{ ahd_patch1_func, 336, 1, 2 },
-	{ ahd_patch0_func, 337, 1, 1 },
-	{ ahd_patch2_func, 345, 1, 2 },
-	{ ahd_patch0_func, 346, 1, 1 },
-	{ ahd_patch2_func, 349, 1, 2 },
-	{ ahd_patch0_func, 350, 1, 1 },
-	{ ahd_patch1_func, 356, 1, 2 },
-	{ ahd_patch0_func, 357, 1, 1 },
-	{ ahd_patch1_func, 359, 1, 2 },
-	{ ahd_patch0_func, 360, 1, 1 },
-	{ ahd_patch10_func, 379, 1, 1 },
-	{ ahd_patch10_func, 382, 1, 1 },
-	{ ahd_patch10_func, 384, 1, 1 },
-	{ ahd_patch10_func, 396, 1, 1 },
-	{ ahd_patch1_func, 406, 1, 2 },
-	{ ahd_patch0_func, 407, 1, 1 },
-	{ ahd_patch1_func, 409, 1, 2 },
-	{ ahd_patch0_func, 410, 1, 1 },
-	{ ahd_patch1_func, 418, 1, 2 },
-	{ ahd_patch0_func, 419, 1, 1 },
-	{ ahd_patch2_func, 432, 1, 2 },
-	{ ahd_patch0_func, 433, 1, 1 },
-	{ ahd_patch11_func, 469, 1, 1 },
-	{ ahd_patch1_func, 477, 1, 2 },
-	{ ahd_patch0_func, 478, 1, 1 },
-	{ ahd_patch2_func, 490, 1, 2 },
-	{ ahd_patch0_func, 491, 1, 1 },
-	{ ahd_patch12_func, 494, 6, 2 },
-	{ ahd_patch0_func, 500, 1, 1 },
-	{ ahd_patch13_func, 521, 7, 1 },
-	{ ahd_patch14_func, 530, 1, 1 },
-	{ ahd_patch15_func, 539, 1, 1 },
-	{ ahd_patch16_func, 540, 1, 2 },
-	{ ahd_patch0_func, 541, 1, 1 },
-	{ ahd_patch17_func, 544, 1, 1 },
-	{ ahd_patch16_func, 545, 1, 1 },
-	{ ahd_patch18_func, 556, 1, 2 },
-	{ ahd_patch0_func, 557, 1, 1 },
-	{ ahd_patch1_func, 576, 1, 2 },
-	{ ahd_patch0_func, 577, 1, 1 },
-	{ ahd_patch1_func, 580, 1, 2 },
-	{ ahd_patch0_func, 581, 1, 1 },
-	{ ahd_patch2_func, 586, 1, 2 },
-	{ ahd_patch0_func, 587, 1, 1 },
-	{ ahd_patch2_func, 591, 1, 2 },
-	{ ahd_patch0_func, 592, 1, 1 },
-	{ ahd_patch1_func, 593, 1, 2 },
-	{ ahd_patch0_func, 594, 1, 1 },
-	{ ahd_patch2_func, 605, 1, 2 },
-	{ ahd_patch0_func, 606, 1, 1 },
-	{ ahd_patch19_func, 610, 1, 1 },
-	{ ahd_patch20_func, 615, 1, 1 },
-	{ ahd_patch21_func, 616, 2, 1 },
-	{ ahd_patch20_func, 620, 1, 2 },
-	{ ahd_patch0_func, 621, 1, 1 },
-	{ ahd_patch2_func, 624, 1, 2 },
-	{ ahd_patch0_func, 625, 1, 1 },
-	{ ahd_patch2_func, 640, 1, 2 },
-	{ ahd_patch0_func, 641, 1, 1 },
-	{ ahd_patch13_func, 642, 14, 1 },
-	{ ahd_patch1_func, 660, 1, 2 },
-	{ ahd_patch0_func, 661, 1, 1 },
-	{ ahd_patch13_func, 662, 1, 1 },
-	{ ahd_patch1_func, 674, 1, 2 },
-	{ ahd_patch0_func, 675, 1, 1 },
-	{ ahd_patch1_func, 682, 1, 2 },
-	{ ahd_patch0_func, 683, 1, 1 },
-	{ ahd_patch19_func, 706, 1, 1 },
-	{ ahd_patch19_func, 744, 1, 1 },
-	{ ahd_patch1_func, 755, 1, 2 },
-	{ ahd_patch0_func, 756, 1, 1 },
-	{ ahd_patch1_func, 773, 1, 2 },
-	{ ahd_patch0_func, 774, 1, 1 },
-	{ ahd_patch1_func, 776, 1, 2 },
-	{ ahd_patch0_func, 777, 1, 1 },
-	{ ahd_patch1_func, 780, 1, 2 },
-	{ ahd_patch0_func, 781, 1, 1 },
-	{ ahd_patch22_func, 783, 1, 2 },
-	{ ahd_patch0_func, 784, 2, 1 },
-	{ ahd_patch23_func, 787, 4, 2 },
-	{ ahd_patch0_func, 791, 1, 1 },
-	{ ahd_patch23_func, 799, 11, 1 }
+	{ ahd_patch2_func, 173, 3, 1 },
+	{ ahd_patch1_func, 176, 2, 1 },
+	{ ahd_patch5_func, 178, 1, 1 },
+	{ ahd_patch2_func, 187, 1, 2 },
+	{ ahd_patch0_func, 188, 1, 1 },
+	{ ahd_patch6_func, 189, 2, 2 },
+	{ ahd_patch0_func, 191, 6, 3 },
+	{ ahd_patch2_func, 194, 1, 2 },
+	{ ahd_patch0_func, 195, 1, 1 },
+	{ ahd_patch2_func, 198, 1, 2 },
+	{ ahd_patch0_func, 199, 1, 1 },
+	{ ahd_patch3_func, 201, 1, 1 },
+	{ ahd_patch7_func, 202, 3, 1 },
+	{ ahd_patch3_func, 211, 1, 1 },
+	{ ahd_patch5_func, 212, 16, 2 },
+	{ ahd_patch0_func, 228, 1, 1 },
+	{ ahd_patch8_func, 248, 2, 1 },
+	{ ahd_patch1_func, 252, 1, 2 },
+	{ ahd_patch0_func, 253, 1, 1 },
+	{ ahd_patch7_func, 256, 3, 1 },
+	{ ahd_patch1_func, 271, 1, 2 },
+	{ ahd_patch0_func, 272, 1, 1 },
+	{ ahd_patch1_func, 275, 1, 2 },
+	{ ahd_patch0_func, 276, 1, 1 },
+	{ ahd_patch2_func, 279, 1, 2 },
+	{ ahd_patch0_func, 280, 1, 1 },
+	{ ahd_patch9_func, 293, 2, 2 },
+	{ ahd_patch0_func, 295, 1, 1 },
+	{ ahd_patch1_func, 337, 1, 2 },
+	{ ahd_patch0_func, 338, 1, 1 },
+	{ ahd_patch2_func, 346, 1, 2 },
+	{ ahd_patch0_func, 347, 1, 1 },
+	{ ahd_patch2_func, 350, 1, 2 },
+	{ ahd_patch0_func, 351, 1, 1 },
+	{ ahd_patch1_func, 357, 1, 2 },
+	{ ahd_patch0_func, 358, 1, 1 },
+	{ ahd_patch1_func, 360, 1, 2 },
+	{ ahd_patch0_func, 361, 1, 1 },
+	{ ahd_patch10_func, 380, 1, 1 },
+	{ ahd_patch10_func, 383, 1, 1 },
+	{ ahd_patch10_func, 385, 1, 1 },
+	{ ahd_patch10_func, 397, 1, 1 },
+	{ ahd_patch1_func, 407, 1, 2 },
+	{ ahd_patch0_func, 408, 1, 1 },
+	{ ahd_patch1_func, 410, 1, 2 },
+	{ ahd_patch0_func, 411, 1, 1 },
+	{ ahd_patch1_func, 419, 1, 2 },
+	{ ahd_patch0_func, 420, 1, 1 },
+	{ ahd_patch2_func, 433, 1, 2 },
+	{ ahd_patch0_func, 434, 1, 1 },
+	{ ahd_patch11_func, 470, 1, 1 },
+	{ ahd_patch1_func, 478, 1, 2 },
+	{ ahd_patch0_func, 479, 1, 1 },
+	{ ahd_patch2_func, 491, 1, 2 },
+	{ ahd_patch0_func, 492, 1, 1 },
+	{ ahd_patch12_func, 495, 6, 2 },
+	{ ahd_patch0_func, 501, 1, 1 },
+	{ ahd_patch13_func, 522, 7, 1 },
+	{ ahd_patch14_func, 531, 1, 1 },
+	{ ahd_patch15_func, 540, 1, 1 },
+	{ ahd_patch16_func, 541, 1, 2 },
+	{ ahd_patch0_func, 542, 1, 1 },
+	{ ahd_patch17_func, 545, 1, 1 },
+	{ ahd_patch16_func, 546, 1, 1 },
+	{ ahd_patch18_func, 557, 1, 2 },
+	{ ahd_patch0_func, 558, 1, 1 },
+	{ ahd_patch1_func, 577, 1, 2 },
+	{ ahd_patch0_func, 578, 1, 1 },
+	{ ahd_patch1_func, 581, 1, 2 },
+	{ ahd_patch0_func, 582, 1, 1 },
+	{ ahd_patch2_func, 587, 1, 2 },
+	{ ahd_patch0_func, 588, 1, 1 },
+	{ ahd_patch2_func, 592, 1, 2 },
+	{ ahd_patch0_func, 593, 1, 1 },
+	{ ahd_patch1_func, 594, 1, 2 },
+	{ ahd_patch0_func, 595, 1, 1 },
+	{ ahd_patch2_func, 606, 1, 2 },
+	{ ahd_patch0_func, 607, 1, 1 },
+	{ ahd_patch19_func, 611, 1, 1 },
+	{ ahd_patch20_func, 616, 1, 1 },
+	{ ahd_patch21_func, 617, 2, 1 },
+	{ ahd_patch20_func, 621, 1, 2 },
+	{ ahd_patch0_func, 622, 1, 1 },
+	{ ahd_patch2_func, 625, 1, 2 },
+	{ ahd_patch0_func, 626, 1, 1 },
+	{ ahd_patch2_func, 641, 1, 2 },
+	{ ahd_patch0_func, 642, 1, 1 },
+	{ ahd_patch13_func, 643, 14, 1 },
+	{ ahd_patch1_func, 661, 1, 2 },
+	{ ahd_patch0_func, 662, 1, 1 },
+	{ ahd_patch13_func, 663, 1, 1 },
+	{ ahd_patch1_func, 675, 1, 2 },
+	{ ahd_patch0_func, 676, 1, 1 },
+	{ ahd_patch1_func, 683, 1, 2 },
+	{ ahd_patch0_func, 684, 1, 1 },
+	{ ahd_patch19_func, 707, 1, 1 },
+	{ ahd_patch19_func, 745, 1, 1 },
+	{ ahd_patch1_func, 756, 1, 2 },
+	{ ahd_patch0_func, 757, 1, 1 },
+	{ ahd_patch1_func, 774, 1, 2 },
+	{ ahd_patch0_func, 775, 1, 1 },
+	{ ahd_patch1_func, 777, 1, 2 },
+	{ ahd_patch0_func, 778, 1, 1 },
+	{ ahd_patch1_func, 781, 1, 2 },
+	{ ahd_patch0_func, 782, 1, 1 },
+	{ ahd_patch22_func, 784, 1, 2 },
+	{ ahd_patch0_func, 785, 2, 1 },
+	{ ahd_patch23_func, 788, 4, 2 },
+	{ ahd_patch0_func, 792, 1, 1 },
+	{ ahd_patch23_func, 800, 11, 1 }
  };

  static struct cs {
@@ -1160,14 +1161,14 @@
  	{ 65, 66 },
  	{ 72, 92 },
  	{ 110, 137 },
-	{ 138, 172 },
-	{ 177, 185 },
-	{ 210, 261 },
-	{ 422, 430 },
-	{ 440, 442 },
-	{ 445, 454 },
-	{ 706, 736 },
-	{ 746, 750 }
+	{ 138, 173 },
+	{ 178, 186 },
+	{ 211, 262 },
+	{ 423, 431 },
+	{ 441, 443 },
+	{ 446, 455 },
+	{ 707, 737 },
+	{ 747, 751 }
  };

  static const int num_critical_sections = sizeof(critical_sections)
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#262 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.c ====
--- /tmp/tmp.27107.11	2004-09-27 13:34:50.148125648 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.c	2004-01-29 19:33:08.000000000 -0500
@@ -1,7 +1,7 @@
  /*
   * Adaptec AIC7xxx device driver for Linux.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#262 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#263 $
   *
   * Copyright (c) 1994 John Aycock
   *   The University of Calgary Department of Computer Science.
@@ -148,6 +148,12 @@

  static int ahc_sysrq_key;

+/***************************** Global Data ************************************/
+/*
+ * Driver Initialization Status.  Used by ahc_linux_exit().
+ */
+int ahc_init_status;
+
  /*
   * Lock protecting manipulation of the ahc softc list.
   */
@@ -488,6 +494,8 @@
  static void ahc_linux_filter_inquiry(struct ahc_softc*, struct ahc_devinfo*);
  static void ahc_linux_sem_timeout(u_long arg);
  static void ahc_linux_dev_timed_unfreeze(u_long arg);
+static int __init ahc_linux_init(void);
+static void __exit ahc_linux_exit(void);
  static int  ahc_linux_queue_recovery_cmd(Scsi_Cmnd *cmd, scb_flag flag);
  static void ahc_linux_initialize_scsi_bus(struct ahc_softc *ahc);
  static void ahc_linux_size_nseg(void);
@@ -933,6 +941,7 @@
  	 */
  	spin_unlock_irq(&io_request_lock);
  #endif
+	found = 0;

  	/*
  	 * Sanity checking of Linux SCSI data structures so
@@ -943,7 +952,8 @@
  	  > offsetof(struct scsi_cmnd, host_scribble)) {
  		printf("ahc_linux_detect: SCSI data structures changed.\n");
  		printf("ahc_linux_detect: Unable to attach\n");
-		return (0);
+		ahc_init_status = -EINVAL;
+		goto done;
  	}
  	ahc_linux_size_nseg();
  #ifdef MODULE
@@ -969,11 +979,15 @@
  	ahc_list_lockinit();

  #ifdef CONFIG_PCI
-	ahc_linux_pci_init();
+	ahc_init_status = ahc_linux_pci_init();
+	if (ahc_init_status != 0)
+		goto done;
  #endif

  #ifdef CONFIG_EISA
-	ahc_linux_eisa_init();
+	ahc_init_status = ahc_linux_eisa_init();
+	if (ahc_init_status != 0)
+		goto done;
  #endif

  	/*
@@ -986,6 +1000,7 @@
  		if (ahc_linux_register_host(ahc, template) == 0)
  			found++;
  	}
+done:
  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
  	spin_lock_irq(&io_request_lock);
  #endif
@@ -5090,18 +5105,28 @@
  static int __init
  ahc_linux_init(void)
  {
+	int found;
+
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
-	return (ahc_linux_detect(&aic7xxx_driver_template) ? 0 : -ENODEV);
+	found = ahc_linux_detect(&aic7xxx_driver_template);
  #else
  	scsi_register_module(MODULE_SCSI_HA, &aic7xxx_driver_template);
-	if (aic7xxx_driver_template.present == 0) {
-		scsi_unregister_module(MODULE_SCSI_HA,
-				       &aic7xxx_driver_template);
-		return (-ENODEV);
-	}
-
-	return (0);
+	found = aic7xxx_driver_template.present;
  #endif
+#ifdef MODULE
+	if (found == 0)
+		ahc_init_status = -ENODEV;
+#endif
+	if (ahc_init_status != 0) {
+		/*
+		 * Linux will only call our exit
+		 * routine if our init function
+		 * returns 0 status.  Force cleanup
+		 * if initialization is not successful.
+		 */
+		ahc_linux_exit();
+	}
+	return (ahc_init_status);
  }

  static void __exit
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#167 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.h ====
--- /tmp/tmp.27107.12	2004-09-27 13:34:50.195118504 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.h	2004-01-29 19:43:50.000000000 -0500
@@ -53,7 +53,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#167 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#168 $
   *
   */
  #ifndef _AIC7XXX_LINUX_H_
@@ -219,6 +219,7 @@
  }

  /**************************** Initialization **********************************/
+extern int	ahc_init_status;
  int		ahc_linux_register_host(struct ahc_softc *,
  					Scsi_Host_Template *);

@@ -249,7 +250,7 @@

  #ifdef CONFIG_EISA
  extern uint32_t aic7xxx_probe_eisa_vl;
-void			 ahc_linux_eisa_init(void);
+int			 ahc_linux_eisa_init(void);
  void			 ahc_linux_eisa_exit(void);
  int			 aic7770_map_registers(struct ahc_softc *ahc,
  					       u_int port);
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c#53 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c ====
--- /tmp/tmp.27107.13	2004-09-27 13:34:50.234112576 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c	2004-01-29 18:08:01.000000000 -0500
@@ -36,7 +36,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c#53 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c#56 $
   */

  #include "aic7xxx_osm.h"
@@ -47,6 +47,8 @@
   */
  #include "aiclib_pci.c"

+static int	ahc_pci_module_registered;
+
  static int	ahc_linux_pci_dev_probe(struct pci_dev *pdev,
  					const struct pci_device_id *ent);
  static int	ahc_linux_pci_reserve_io_region(struct ahc_softc *ahc,
@@ -160,6 +162,13 @@
  	}
  	pci_set_master(pdev);

+	if (aic_set_consistent_dma_mask(ahc, 0xFFFFFFFF) != 0) {
+		printk(KERN_WARNING "aic7xxx: Unable to set"
+		       "coherent DMA mask.\n");
+		ahc_free(ahc);
+		return (-ENOMEM);
+	}
+
  	mask_39bit = (bus_addr_t)0x7FFFFFFFFFULL;
  	if (sizeof(bus_addr_t) > 4
  	 && ahc_linux_get_memsize() > 0x80000000
@@ -167,7 +176,12 @@
  		ahc->flags |= AHC_39BIT_ADDRESSING;
  		ahc->platform_data->hw_dma_mask = mask_39bit;
  	} else {
-		aic_set_dma_mask(ahc, 0xFFFFFFFF);
+		if (aic_set_dma_mask(ahc, 0xFFFFFFFF) != 0) {
+			printk(KERN_WARNING "aic7xxx: Unable to set data "
+			       "DMA mask.\n");
+			ahc_free(ahc);
+			return (-ENOMEM);
+		}
  		ahc->platform_data->hw_dma_mask = 0xFFFFFFFF;
  	}
  	error = ahc_pci_config(ahc, entry);
@@ -191,13 +205,19 @@
  int
  ahc_linux_pci_init(void)
  {
-	return (pci_module_init(&aic7xxx_pci_driver));
+	int error;
+	
+	error = pci_module_init(&aic7xxx_pci_driver);
+	if (error == 0)
+		ahc_pci_module_registered = 1;
+	return (error);
  }

  void
  ahc_linux_pci_exit(void)
  {
-	pci_unregister_driver(&aic7xxx_pci_driver);
+	if (ahc_pci_module_registered != 0)
+		pci_unregister_driver(&aic7xxx_pci_driver);
  }

  static int
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aiclib.c#16 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aiclib.c ====
--- /tmp/tmp.27107.14	2004-09-27 13:34:50.494073056 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aiclib.c	2004-01-29 16:43:07.000000000 -0500
@@ -1504,6 +1504,8 @@
  	map = malloc(sizeof(*map), M_DEVBUF, M_NOWAIT);
  	if (map == NULL)
  		return (ENOMEM);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
  	/*
  	 * Although we can dma data above 4GB, our
  	 * coherent memory is below 4GB for
@@ -1512,8 +1514,11 @@
  	 * our dma mask when doing allocations.
  	 */
  	aic_set_dma_mask(aic, 0xFFFFFFFF);
+#endif
  	*vaddr = aic_alloc_coherent(aic, dmat->maxsize, &map->bus_addr);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
  	aic_set_dma_mask(aic, aic->platform_data->hw_dma_mask);
+#endif
  	if (*vaddr == NULL)
  		return (ENOMEM);
  	*mapp = map;
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aiclib.h#35 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aiclib.h ====
--- /tmp/tmp.27107.15	2004-09-27 13:34:50.871015752 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aiclib.h	2004-01-29 17:56:56.000000000 -0500
@@ -332,6 +332,8 @@
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)

  #define aic_set_dma_mask(aic, mask) dma_set_mask(aic->dev_softc, mask)
+#define aic_set_consistent_dma_mask(aic, mask) \
+	pci_set_consistent_dma_mask(aic_dev_to_pci_dev(aic->dev_softc), mask)

  #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,3)

@@ -341,6 +343,9 @@
  #define aic_set_dma_mask(aic, mask) 			\
  	((aic)->dev_softc == NULL ? 0 : pci_set_dma_mask(aic->dev_softc, mask))

+/* Always successfull in 2.4.X kernels */
+#define aic_set_consistent_dma_mask(aic, mask) (0)
+
  #else
  /*
   * Device softc is NULL for EISA devices.
@@ -350,6 +355,10 @@
      (((aic)->dev_softc == NULL)				\
       ? 0						\
       : (((aic)->dev_softc->dma_mask = mask) && 0))
+
+/* Always successfull in 2.4.X kernels */
+#define aic_set_consistent_dma_mask(aic, mask) (0)
+
  #endif

  /************************* Host Template Macros *******************************/



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-09-28 13:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-28 13:07 [patch 21/28] Sync up drivers/scsi/aic7xxx Luben Tuikov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).