summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2010-04-14 15:29:32 +0000
committermav <mav@FreeBSD.org>2010-04-14 15:29:32 +0000
commite076b6a0a562a34cbc80d43a49a01757740df2da (patch)
tree948d3dd8bbc79aaee4f5a5434be12d98736fa32f
parentc1468b9b677bd151b2f18b5290db1907e18bd130 (diff)
downloadFreeBSD-src-e076b6a0a562a34cbc80d43a49a01757740df2da.zip
FreeBSD-src-e076b6a0a562a34cbc80d43a49a01757740df2da.tar.gz
For early ALI chips do not announce I/O sizes that require unsupported
48bit DMA commands.
-rw-r--r--sys/dev/ata/chipsets/ata-acerlabs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ata/chipsets/ata-acerlabs.c b/sys/dev/ata/chipsets/ata-acerlabs.c
index b7f1147..fee9692 100644
--- a/sys/dev/ata/chipsets/ata-acerlabs.c
+++ b/sys/dev/ata/chipsets/ata-acerlabs.c
@@ -184,8 +184,11 @@ ata_ali_ch_attach(device_t dev)
if (ctlr->chip->cfg2 & ALI_NEW && ctlr->chip->chiprev < 0xc7)
ch->flags |= ATA_CHECKS_CABLE;
/* older chips can't do 48bit DMA transfers */
- if (ctlr->chip->chiprev <= 0xc4)
+ if (ctlr->chip->chiprev <= 0xc4) {
ch->flags |= ATA_NO_48BIT_DMA;
+ if (ch->dma.max_iosize > 256 * 512)
+ ch->dma.max_iosize = 256 * 512;
+ }
return 0;
}
OpenPOWER on IntegriCloud