From 49373540b917f17a244cba002e98203b154d5f64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Schmidt?= Date: Mon, 8 Dec 2003 09:22:20 +0000 Subject: [PATCH] More errata fixing for the SiI3112A disaster chip: Serialize access to the SATA channels, the chip messes up if both channels are used at the same time. The SiI3112 hereby takes the price as the most crappy SATA chip in existance by a significant amount. My advise to our userbase is to avoid this chip like the plague... --- sys/dev/ata/ata-chipset.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c index 217499d4423c..1559ff8c3f48 100644 --- a/sys/dev/ata/ata-chipset.c +++ b/sys/dev/ata/ata-chipset.c @@ -1650,8 +1650,10 @@ ata_sii_chipinit(device_t dev) pci_write_config(dev, 0xec, 0x40094009, 4); ctlr->allocate = ata_sii_mio_allocate; - if (ctlr->chip->max_dma >= ATA_SA150) + if (ctlr->chip->max_dma >= ATA_SA150) { ctlr->setmode = ata_sata_setmode; + ctlr->locking = ata_serialize; + } else ctlr->setmode = ata_sii_setmode; }