I’m trying to add support for the display we’re using to the TI-Android-GingerBread-2.3.4-DevKit-2.1.1 release for BeagleBone. When I create the new panel in the known_lcd_panels array in drivers/video/da8xx-fb.c and add the relevant structure to the board file, I get the message “da8xx_lcdc da8xx_lcdc.0: GLCD: kmalloc for frame buffer failed” when it tries to allocate the 6291456 byte dma buffer for the frame buffer at dma_alloc_coherent in fb_probe. Our display resolution is larger than the other panels (1024x768), so I assumed that the DMA area needed to be increased. I found the CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE option and changed it from the 4MB default to 8 MB and then 14 MB, but there was no change. The memory layout is printed out as follows:
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)
[ 0.000000] vmalloc : 0xd0800000 - 0xf8000000 ( 632 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc04d4000 (4912 kB)
[ 0.000000] .init : 0xc04d4000 - 0xc0508000 ( 208 kB)
[ 0.000000] .data : 0xc0508000 - 0xc054b960 ( 271 kB)
[ 0.000000] .bss : 0xc054b99c - 0xc0686108 (1258 kB)
So, I believe that the DMA size should be sufficient for the 1024 x 768 x 32 (bpp) / 8 x 2 (buffers) size. Can someone provide any additional information that could help to solve this issue? Are there other options that need to be set to increase the DMA size?
-Mark