diff options
author | sos <sos@FreeBSD.org> | 2003-11-28 19:01:28 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2003-11-28 19:01:28 +0000 |
commit | 9bcba46103bb735c3d96d29b2f58c40d3ffeeccb (patch) | |
tree | 3b4a8f6b8ab04b09777278a31796f9447ffa82dd /sys/dev/ata/ata-dma.c | |
parent | 73c251c926015bb7a04ec55aacdabd690f0873b6 (diff) | |
download | FreeBSD-src-9bcba46103bb735c3d96d29b2f58c40d3ffeeccb.zip FreeBSD-src-9bcba46103bb735c3d96d29b2f58c40d3ffeeccb.tar.gz |
Workaround for errata on early versions of the sii3112.
Approved by: re@
Diffstat (limited to 'sys/dev/ata/ata-dma.c')
-rw-r--r-- | sys/dev/ata/ata-dma.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c index a052f08..1637f20 100644 --- a/sys/dev/ata/ata-dma.c +++ b/sys/dev/ata/ata-dma.c @@ -74,7 +74,8 @@ ata_dmainit(struct ata_channel *ch) ch->dma->load = ata_dmaload; ch->dma->unload = ata_dmaunload; ch->dma->alignment = 2; - ch->dma->max_iosize = 64*1024; + ch->dma->max_iosize = 64 * 1024; + ch->dma->boundary = 64 * 1024; } } @@ -106,9 +107,10 @@ ata_dmaalloc(struct ata_channel *ch) BUS_DMA_ALLOCNOW, NULL, NULL, &ch->dma->cdmatag)) goto error; - if (bus_dma_tag_create(ch->dma->dmatag, ch->dma->alignment, 64*1024, + if (bus_dma_tag_create(ch->dma->dmatag,ch->dma->alignment,ch->dma->boundary, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, - NULL, NULL, MAXPHYS, ATA_DMA_ENTRIES, MAXSEGSZ, + NULL, NULL, ch->dma->max_iosize, + ATA_DMA_ENTRIES, ch->dma->boundary, BUS_DMA_ALLOCNOW, NULL, NULL, &ch->dma->ddmatag)) goto error; |