Dear Mr. Iwai, Takashi Iwai wrote: > The implementation depends pretty much on the architecture. > (Also, dma_mmap() is no global function but specific only for ARM.) > Since the vm_region struct is different between ppc and arm (the page > pointer is missing in ppc version), it cannot be copied as it is. > > A simple (but totally untested) version would be like below: > > int dma_mmap_coherent(struct device *dev, > struct vm_area_struct *vma, void *cpu_addr, > dma_addr_t dma_addr, size_t size) > { > unsigned long pfn; > > pfn = page_to_pfn(virt_to_page(bus_to_virt(dma_addr))); > vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); > return remap_pfn_range(vma, vma->vm_start, pfn + vma->vm_pgoff, > vma->vm_end - vma->vm_start, > vma->vm_pgprot); > } > > (This might not work for some ppc models, though...) > > Then either add .mmap callback to each of snd_pcm_ops table in ca0106 > that calls dma_mmap_coherent() above, or change snd_pcm_default_mmap > to call dma_mmap_coherent() directly instead of nopage method. > For the former way, take a look at sound/arm/aaci.c (and devdma.c) as > a reference. > I implemented the "former way". However, when I put a breakpoint in __dma_alloc_coherent it does not get called when I run speaker-test. It does get called during execution of "modprobe snd-ca0106". Also, when I try to look at the memory allocated by the problematic call to mmap in gdb, I get the following results: Breakpoint 1, snd_pcm_mmap (pcm=0x10031880) at pcm_mmap.c:383 383 ptr = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, i->u.mmap.fd, i->u.mmap.offset); (gdb) n 384 if (ptr == MAP_FAILED) { (gdb) print (void *)ptr $1 = (void *) 0x3001e000 (gdb) print ptr[0] Cannot access memory at address 0x3001e000 So, while these changes eliminate the bugcheck, it does not appear to be the correct solution. -- Thank you, David Cullen Teligy (864) 527-1263 Office (864) 415-7063 Cell ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel