diff options
author | mav <mav@FreeBSD.org> | 2010-04-14 15:29:32 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-04-14 15:29:32 +0000 |
commit | e076b6a0a562a34cbc80d43a49a01757740df2da (patch) | |
tree | 948d3dd8bbc79aaee4f5a5434be12d98736fa32f | |
parent | c1468b9b677bd151b2f18b5290db1907e18bd130 (diff) | |
download | FreeBSD-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.c | 5 |
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; } |