Thread (4 messages) flat view 4 messages, 3 authors, 2002-12-06

RE: Regarding consistent_alloc

From: Joakim Tjernlund <hidden>
Date: 2002-12-06 18:15:15

On Fri, Dec 06, 2002 at 05:08:22PM +0100, Joakim Tjernlund wrote:
quoted
quoted
On Fri, Dec 06, 2002 at 03:25:48PM +0100, Joakim Tjernlund wrote:
quoted
If you implement the performance improvement I suggested earlier, I don't think
you need them. Another thing with consistent_xxx() is that you can not use
__pa() and __va() on addresses returned by the consistent_alloc et. al.
Um, well if you are doing a consistent_alloc() then surely you are
keeping the dma_handle around which is your physical address.  If you
want the kernel virtual address then you can apply __va to that.  So,
you have the cache inhibited mapping in vmalloc space returned to you,
the physical address provided in dma_handle, and a kernel virtual address
that can be trivially generated.
m8xx_cpm_hostalloc() does not keep the DMA handle and __pa() does not work
on addresses returned by m8xx_cpm_hostalloc(). I just found that out the
hard way when upgrading from MV 2.4.2 to linuxppc_2_4_devel 2.4.20. My SPI driver
that's a problem with m8xx_cpm_hostalloc() (or how you are using it) if
it doesn't keep around the values you need.
Yes and no, someone changed the m8xx_cpm_hostalloc() implementation and now
it does not behave as it used to. Earlier both __pa(adr) and __va(__pa(adr))
worked on addresses returned by m8xx_cpm_hostalloc().

I think in it's current form it's useless and should either be changed back to what
it was or die.

   Jocke


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help