dma_map_page and dma_map_single

2 messages, 2 authors, 2012-10-25 · open the first message on its own page

dma_map_page and dma_map_single

From: ratheesh kannoth <hidden>
Date: 2012-10-25 08:58:56

Hi ,

I was looking at tx_map ( igb-3.3.6  ) in igb driver. I could see that
dma_map_single is used for first buffer and dma_map_page is used for
the fragments.

What is the real difference  between these api ?  we can replace
dma_map_single with dma_map_page. then  why  we used dma_map_single
here ?.

Thanks,
Ratheesh

Re: [E1000-devel] dma_map_page and dma_map_single

From: Alexander Duyck <hidden>
Date: 2012-10-25 16:23:33

We use dma_map_single here because we have a virtual pointer and not a
page.  If you look in the kernel at the file
include/asm-generic/dma-mapping-common.h you will see that
dma_map_single_attrs which is what ends up being called when we call
dma_map_single will convert the pointer to a page and then call
map_page.  This way we don't have to place the overhead for the code
directly in our driver.

Thanks,

Alex

On 10/25/2012 01:58 AM, ratheesh kannoth wrote:
Hi ,

I was looking at tx_map ( igb-3.3.6  ) in igb driver. I could see that
dma_map_single is used for first buffer and dma_map_page is used for
the fragments.

What is the real difference  between these api ?  we can replace
dma_map_single with dma_map_page. then  why  we used dma_map_single
here ?.

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