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

Reply via email to