public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* OMAP Framebuffer memory allocation and mapping
@ 2008-11-20 10:52 Tomi Valkeinen
  2008-11-20 11:25 ` Hiremath, Vaibhav
  0 siblings, 1 reply; 3+ messages in thread
From: Tomi Valkeinen @ 2008-11-20 10:52 UTC (permalink / raw)
  To: linux-omap

Hi,

I have a couple of questions regarding the memory management for the new
display subsystem.

The new DSS allocates memory with dma_alloc_writecombine() and mmaps it
to user space with dma_mmap_writecombine(). Allocation is done when
omapfb starts up. Normally memory gets very quickly too fragmented for
dma_alloc_writecombine() to work, but setting
CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE helps this.

However, even when CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE is set to 14, I
am, for some reason, not able to allocate 1280x1024x4 (~5.2M)
framebuffer. Could the consistent DMA area be already too fragmented, or
is there some size limit there?

There's also support to allocate fb memory in very early phase with
reserve_bootmem(), which needs a predefined physical address and size
that can come from the bootloader. I've been looking at the old DSS to
see how this memory should be mapped, but I haven't been able to get it
to work. It looks like the DSS DMA and the user space have a bit
different view of the memory, so my assumption is that there's some
caching or similar being done.

So how to setup the memory gotten from reserve_bootmem() (or
alloc_bootmem()) so that it would work the same way as
dma_alloc_writecombine()'s memory?

And generally: any other ideas how to improve the memory management of
the DSS?

 Tomi



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-11-26 23:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-20 10:52 OMAP Framebuffer memory allocation and mapping Tomi Valkeinen
2008-11-20 11:25 ` Hiremath, Vaibhav
2008-11-26 23:07   ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox