OSDN Git Service

[PATCH] sata_sil: Fix FIFO PCI Bus Arbitration kernel oops
authorJens Axboe <axboe@suse.de>
Wed, 8 Jun 2005 11:02:25 +0000 (13:02 +0200)
committerJeff Garzik <jgarzik@pobox.com>
Thu, 9 Jun 2005 07:06:22 +0000 (03:06 -0400)
Correct this.

diff --git a/drivers/scsi/sata_sil.c b/drivers/scsi/sata_sil.c

drivers/scsi/sata_sil.c

index 238580d..49ed557 100644 (file)
@@ -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));