Thread (5 messages) flat view 5 messages, 3 authors, 2007-07-06

Re: PowerPC equivalent to dma_mmap_writecombine()?

From: Arnd Bergmann <arnd@arndb.de>
Date: 2007-07-06 21:26:39

On Friday 06 July 2007, Timur Tabi wrote:
Arnd Bergmann wrote:
=20
quoted
Not sure exactly what arm does here, but it sounds like you want
to call remap_pfn_range with the _PAGE_NO_CACHE bit set in the
protection flags, and _PAGE_GUARDED not set.
=20
I always have a hard time with these mapping functions. =A0Is this right?
=20
vma->vm_page_prot =3D __pgprot((pgprot_val(vma->vm_page_prot) | _PAGE_NO_=
CACHE) &=20
~_PAGE_GUARDED));
=20
ret =3D remap_pfn_range(vma, vma->vm_start, runtime->dma_addr, runtime->d=
ma_bytes,=20
vma->vm_page_prot);
=20
Alternatively, could I use function snd_pcm_lib_mmap_iomem() (sound/core/=
pcm_native.c)?=20
It looks like it does the right thing, although it doesn't unset the guar=
ded bit. =A0If=20
that's wrong, I can submit a patch to unset that bit on PowerPC, but like=
 I said, I can=20
never quite get my head around this mapping stuff.
The guarded bit is disabled by default, so you don't need t remove it, so
the function you quoted should be alright for this purpose. Not sure if you
need the ioremap in there though.

	Arnd <><
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help