diff options
Diffstat (limited to 'sys/dev/ata/ata-dma.c')
-rw-r--r-- | sys/dev/ata/ata-dma.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c index 4627856..a9b7a22 100644 --- a/sys/dev/ata/ata-dma.c +++ b/sys/dev/ata/ata-dma.c @@ -78,6 +78,7 @@ ata_dmainit(device_t dev) ch->dma->boundary = 128 * DEV_BSIZE; ch->dma->segsize = 128 * DEV_BSIZE; ch->dma->max_iosize = 128 * DEV_BSIZE; + ch->dma->max_address = BUS_SPACE_MAXADDR_32BIT; } } @@ -95,24 +96,22 @@ ata_dmaalloc(device_t dev) { struct ata_channel *ch = device_get_softc(dev); struct ata_dc_cb_args ccba; - int maxaddr = (ch->dma->flags & ATA_DMA_64BIT ? - BUS_SPACE_MAXADDR : BUS_SPACE_MAXADDR_32BIT); if (bus_dma_tag_create(bus_get_dma_tag(dev), ch->dma->alignment, 0, - maxaddr, BUS_SPACE_MAXADDR, + ch->dma->max_address, BUS_SPACE_MAXADDR, NULL, NULL, ch->dma->max_iosize, ATA_DMA_ENTRIES, ch->dma->segsize, 0, NULL, NULL, &ch->dma->dmatag)) goto error; if (bus_dma_tag_create(ch->dma->dmatag, PAGE_SIZE, PAGE_SIZE, - maxaddr, BUS_SPACE_MAXADDR, + ch->dma->max_address, BUS_SPACE_MAXADDR, NULL, NULL, MAXTABSZ, 1, MAXTABSZ, 0, NULL, NULL, &ch->dma->sg_tag)) goto error; if (bus_dma_tag_create(ch->dma->dmatag,ch->dma->alignment,ch->dma->boundary, - maxaddr, BUS_SPACE_MAXADDR, + ch->dma->max_address, BUS_SPACE_MAXADDR, NULL, NULL, ch->dma->max_iosize, ATA_DMA_ENTRIES, ch->dma->segsize, 0, NULL, NULL, &ch->dma->data_tag)) @@ -133,7 +132,7 @@ ata_dmaalloc(device_t dev) goto error; if (bus_dma_tag_create(ch->dma->dmatag, PAGE_SIZE, 64 * 1024, - maxaddr, BUS_SPACE_MAXADDR, + ch->dma->max_address, BUS_SPACE_MAXADDR, NULL, NULL, MAXWSPCSZ, 1, MAXWSPCSZ, 0, NULL, NULL, &ch->dma->work_tag)) goto error; |