Hi guys,

I have tried these calls to covert part of my DMA address to Virtual and it seems to work fine.
I am curious to know more about these calls.

dma_map_single(NULL, dev->buf_addr, tx_cnt, DMA_TO_DEVICE));
dma_map_single(NULL, dev->buf_addr, tx_cnt, DMA_FROM_DEVICE));

The reason I am suspect these calls is:

I allocated a single DMA memory of 4K bytes size.
No I want to split and distribute the so allocated buffer between each device.
in that case of my starting address is ADDR. the address I submit to the device would be something like

ADDR + 32* device_num.

But, I realize that it is not actually returning the Virtual address.

Regards,
Adams



On Tue, Sep 16, 2008 at 3:37 PM, bhanu jampala <adams.ppc@gmail.com> wrote:
Hi All,

How do I convert a DMA buffer to virtual address on Linux PPC?

I know there is some thing like dma_to_virt(), but I don't think if there is one for PPC.
In this scenario where I have submitted some dma buffer form a chunk of memory to Device.
Now at the end of successful receive, how do I convert it back to Virtual address?
Any pointers?