[PATCH] aic94xx: disable split completion timer/setting by default

From: Alexis Bruemmer
Date: Fri Jun 30 2006 - 17:10:31 EST


The aic94xx driver will lock up under heavy load with a split completion
error. There is a split completion timer/setting which should be
disabled by default but is not. This patch fixes this problem.

Signed-off-by: Adaptec
Acked-by: Alexis Bruemmer <alexisb@xxxxxxxxxx>

----------

Index: aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_hwi.c
===================================================================
--- aic94xx-sas-2.6-patched.orig/drivers/scsi/aic94xx/aic94xx_hwi.c 2006-06-23 11:12:01.000000000 -0700
+++ aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_hwi.c 2006-06-29 12:10:08.000000000 -0700
@@ -604,11 +604,26 @@
int asd_init_hw(struct asd_ha_struct *asd_ha)
{
int err;
+ u32 v;

err = asd_init_sw(asd_ha);
if (err)
return err;

+ err = pci_read_config_dword(asd_ha->pcidev, PCIC_HSTPCIX_CNTRL, &v);
+ if (err) {
+ asd_printk("couldn't read PCIC_HSTPCIX_CNTRL of %s\n",
+ pci_name(asd_ha->pcidev));
+ return err;
+ }
+ pci_write_config_dword(asd_ha->pcidev, PCIC_HSTPCIX_CNTRL,
+ v | SC_TMR_DIS);
+ if (err) {
+ asd_printk("couldn't disable split completion timer of %s\n",
+ pci_name(asd_ha->pcidev));
+ return err;
+ }
+
err = asd_read_ocm(asd_ha);
if (err) {
asd_printk("couldn't read ocm(%d)\n", err);
Index: aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_reg_def.h
===================================================================
--- aic94xx-sas-2.6-patched.orig/drivers/scsi/aic94xx/aic94xx_reg_def.h 2006-06-23 11:12:01.000000000 -0700
+++ aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_reg_def.h 2006-06-29 11:57:49.000000000 -0700
@@ -1787,6 +1787,7 @@
#define PCIC_HSTPCIX_CNTRL 0xA0

#define REWIND_DIS 0x0800
+#define SC_TMR_DIS 0x04000000

#define PCIC_MBAR0_MASK 0xA8
#define PCIC_MBAR0_SIZE_MASK 0x1FFFE000


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/