Re: Proposal for new generic device API: dma_get_required_mask()

Krzysztof Halasa
2004-06-20T02:01:43Z

James Bottomley <James.Bottomley@steeleye.com> writes:

> Could you elaborate on this? In the current scheme the coherent mask is
> for descriptor allocation (i.e. dma_alloc_coherent()) and the dma_mask
> represents the bus physical addresses to which the device can DMA
> directly; there's not much more the DMA API really does, what do you
> think is missing?

The problem is that (depending on platform) the pci_map_* and dma_map_*
functions ignore both masks. An example of such platform is i386 :-)

It seems the masks are used on i386 for only one thing - consistent
dma mask is used for consistent allocations only, and normal dma mask
is not used at all.

The normal mask is used mainly on 64-bit platforms and the meaningful
values are 2^32-1 and 2^64-1. It's used by PCI-X device drivers to
enable DAC transfers. This is why it isn't used on 32-bit platforms.
--
Krzysztof Halasa, B*FH