Re: ALSA on MIPS platform

From: Takashi Iwai
Date: Fri Jan 27 2006 - 10:56:40 EST


At Sat, 28 Jan 2006 00:45:40 +0900 (JST),
Atsushi Nemoto wrote:
>
> >>>>> On Thu, 26 Jan 2006 19:19:22 +0000 (GMT), Hugh Dickins <hugh@xxxxxxxxxxx> said:
>
> >> Well, the whole page-reserve kludge should disappear anyway in near
> >> future. Right now it's in the process.
>
> hugh> Yes, mark_pages() and unmark_pages() can just be removed as soon
> hugh> as you like.
>
> When I tried undefining NEED_RESERVE_PAGES for MIPS on 2.6.13,
> something did not work (I can not remember details...). But it seems
> things have been changed in 2.6.15. I'll try again. Thanks.

Yes, it was changed pretty much.

> hugh> I didn't reply to the original posting because I noticed they're
> hugh> not all of the virt_to_page()s in sound/core, and sometimes a
> hugh> part-answer distracts someone more competent from responding
> hugh> with the full answer.
>
> Yes, there is still virt_to_page() in snd_pcm_mmap_data_nopage() and
> snd_malloc_sgbuf_pages(). If dma_mmap_coherent() was ported, former
> might disappear but latter might not. So it seems virt_to_page()
> issue still remains...

In theory, you can call dma_mmap_coherent() on each page obtained via
dma_alloc_coherent() in the case of sg-buffer. It should work without
much overhead on most of archs, but ones like sparc32 may have
problems because each alloc_coherent call results in another
allocation a resource struct (if I understand the code correctly).

So, I rewrote the code to use the normal get_page() + map/sync.
Hopefully this works for archs with non-coherent mm...


Takashi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/