NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-amd64/42980: satalink DMA fails under amd64
The following reply was made to PR port-amd64/42980; it has been noted by GNATS.
From: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
To: matthew green <mrg%eterna.com.au@localhost>
Cc: Julian Bourne <julian.bourne%gmail.com@localhost>,
port-amd64-maintainer%NetBSD.org@localhost,
gnats-admin%NetBSD.org@localhost, netbsd-bugs%NetBSD.org@localhost,
gnats-bugs%NetBSD.org@localhost
Subject: Re: port-amd64/42980: satalink DMA fails under amd64
Date: Thu, 18 Mar 2010 17:38:07 +0100
On Thu, Mar 18, 2010 at 12:45:36PM +1100, matthew green wrote:
> you're right.
>
> i guess the bus_dmamap_create() call needs to use this in place
> of the IDEDMA_TBL_ALIGN argument?
>
> min(dma_table_size, IDEDMA_TBL_ALIGN);
Now I'm confused. Why would this change anything (especially as AFAIK
dma_table_size can't be larger than IDEDMA_TBL_ALIGN) ?
Also, from what I understood, the problem comes from this call:
if ((error = bus_dmamap_create(sc->sc_dmat, MAXPHYS,
NIDEDMA_TABLES(sc), sc->sc_dma_maxsegsz, sc->sc_dma_boundary,
BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW,
&dma_maps->dmamap_xfer)) != 0) {
not from the one a few lines above, which uses IDEDMA_TBL_ALIGN.
I think this bus_dmamap_create() call is correct. The man page doesn't
prevent a boundary smaller than the total size (a boundary smaller than the
max segment size doesn't make sense, of course).
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index