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
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