summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2005-06-08 13:02:25 +0200
committerJeff Garzik <jgarzik@pobox.com>2005-06-09 03:06:22 -0400
commite1dd23a0012c3929737798fda9fede0e783f4ff3 (patch)
treec7f808b6433ef1015f55418e7f11f432943bdefd /drivers/scsi
parent5273a00d9c763108397658d440618f7ac3e40f83 (diff)
[PATCH] sata_sil: Fix FIFO PCI Bus Arbitration kernel oops
Correct this. diff --git a/drivers/scsi/sata_sil.c b/drivers/scsi/sata_sil.c
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/sata_sil.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/scsi/sata_sil.c b/drivers/scsi/sata_sil.c
index 238580d244e..49ed557a4b6 100644
--- a/drivers/scsi/sata_sil.c
+++ b/drivers/scsi/sata_sil.c
@@ -432,7 +432,13 @@ static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
writeb(cls, mmio_base + SIL_FIFO_R0);
writeb(cls, mmio_base + SIL_FIFO_W0);
writeb(cls, mmio_base + SIL_FIFO_R1);
- writeb(cls, mmio_base + SIL_FIFO_W2);
+ writeb(cls, mmio_base + SIL_FIFO_W1);
+ if (ent->driver_data == sil_3114) {
+ writeb(cls, mmio_base + SIL_FIFO_R2);
+ writeb(cls, mmio_base + SIL_FIFO_W2);
+ writeb(cls, mmio_base + SIL_FIFO_R3);
+ writeb(cls, mmio_base + SIL_FIFO_W3);
+ }
} else
printk(KERN_WARNING DRV_NAME "(%s): cache line size not set. Driver may not function\n",
pci_name(pdev));