Thread (30 messages) 30 messages, 7 authors, 2009-05-28

Re: [PATCH V2 2/3] powerpc: Add support for swiotlb on 32-bit

From: Becky Bruce <hidden>
Date: 2009-05-27 19:11:24
Also in: lkml

On May 26, 2009, at 7:51 AM, Ian Campbell wrote:
On Fri, 2009-05-22 at 19:55 -0400, Jeremy Fitzhardinge wrote:
quoted
Ian Campbell wrote:
quoted
On Thu, 2009-05-21 at 14:27 -0400, Becky Bruce wrote:
quoted
I can work with that, but it's going to be a bit inefficient, as I
actually need the dma_addr_t, not the phys_addr_t, so I'll have to
convert.  In every case, this is a conversion I've already done and
that I need in the calling code as well.
Does

   dma_addr_t dma_map_range(struct device *hwdev, phys_addr_t addr,
   size_t size);

work for you?

If the range does not need mapping then it returns the dma  
address, if
you needed to calculate the dma address anyway to figure out if  
mapping
is required then this is fine. If the range does need mapping then  
it
returns NULL.
My only concern is whether dma_addr_t == 0 is actually equivalent to
NULL.  That is, can we be sure that address 0 will never be used?
It seems not, ~0UL might have been an option, but...
quoted
Taking dma_alloc_coherent as a model, we could have something like:

   int dma_map_range(struct device *hwdev, phys_addr_t addr, size_t  
size, dma_addr_t *dma_addrp);


where *dma_addrp is set if the function returns success (bool return
type might be clearer).
... this sounds like a good idea to me.
I agree.  This will work for me as well.

-becky
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help