On Wed, 2008-05-07 at 11:07 +0200, Vladimir Pantelic wrote: > steven.zhang wrote: > > On Wed, 2008-05-07 at 10:36 +0200, Vladimir Pantelic wrote: > >> steven.zhang wrote: > >> > So many thanks!Vladimir. > >> > But why 720*480 succeeded?Its size is 2488320 byte, which exceeds 2M > >> > already. > >> > I have checked the CONSISTENT_DMA_SIZE of my arch.Its value is 14M, that > >> > should be enough. > >> > >> yes, I saw that after sending the mail > >> > >> > any other suggestion? > >> > >> well, the kernel tries to find such a big contiguous piece of memory, > >> maybe the > >> memory is already too fragmented at that time? > >> > > Yes, I think, we should not allocate frame buffer memory dynamic.Map a fix > > memory area before kernel start? > > I would do so. You are not going to free this memory ever, are you? > Yes.It would need about 10M memory reserve for frame buffer and would never be free. I wonder if this way is recommended by Linux. Because if I map the frame buffer memory to a fix area, and someone wants to port this driver, it would fail as to its memory map.
And I want to know if there is another better way to achieve this? I am afraid, it is common to allocate about 10M memory for DMA transfer.How to do it?Thanks. > > > >> > > >> > On Wed, 2008-05-07 at 09:31 +0200, Vladimir Pantelic wrote: > >> >> steven.zhang wrote: > >> >> > Hi, all. > >> >> > I am porting the davincifb driver to support 1280*720 resolution. > >> >> > As you know, I should alloc memory for different OSD windows. > >> >> > To support 1280*720 p, I do it as follows: > >> >> > > >> >> > #define DISP_XRES 1280 > >> >> > #define DISP_YRES 720 > >> >> > #define DISP_MEMY 740 > >> >> > #define VID0_FB_SIZE (round_32(DISP_XRES*16/8) * DISP_MEMY * > >> >> > TRIPLE_BUF) > >> >> > > >> >> > using dma_alloc_coherent() to allocate 5683200byte > >> >> > memory.However, it fails. > >> >> > when define DISP_XRES be 720 and DISP_YRES be 480, it succeeds. > >> >> > > >> >> > > >> >> > What can be the problems? dma_alloc_coherent() can not allocate > >> >> > 5683200 > >> >> > (about 5M) memory using for DMA? > >> >> > >> >> maybe this: > >> >> > >> >> http://kerneltrap.org/node/3600 > >> >> > >> >> what is your CONSISTENT_DMA_SIZE, default is: > >> >> > >> >> /linux/include/asm/memory.h: > >> >> #define CONSISTENT_DMA_SIZE SZ_2M > >> >> > >> >> but your arch could define another value. > >> >> > >> >> > >> >> > >> >> _______________________________________________ > >> >> Davinci-linux-open-source mailing list > >> >> [email protected] > >> >> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source > >> > > >> > > > _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
