On Wed, Mar 03, 2004 at 07:29:19PM +0100, Jaroslav Kysela wrote: > On Wed, 3 Mar 2004, Gupta, Kshitij wrote: > > hi, > > Can someone please explain me what is the difference between > > runtime->dma_addr and runtime->dma_area > > > > where runtime = substream->runtime > > > > I am getting a very strange problem where I am getting a rumtime->dma_addr > > value as 0 while runtime->dma_area is a proper value. > > Any hints will be helpful > > dma_area is virtual address (visible from the CPU view) > dma_addr is the physical bus address (visible from the hardware)
Not quite true - dma_addr is the bus address. Linux has three memory spaces: virtual, physical and bus. The value returned from dma_alloc_coherent/pci_alloc_consistent has always been this magical "bus" address which may be unique to the device it's being programmed into. This is why DMA-mapping.txt says: pci_alloc_consistent returns two values: the virtual address which you can use to access it from the CPU and dma_handle which you pass to the card. rather than calling dma_handle the "physical" address. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel