AnsweredAssumed Answered

file mxsfb.c file driver for iMX287 Framebuffer Driver have issues to initialize memory more than 4MB for more number of SCREENS

Question asked by Bhuvaneshsubramanian on Mar 13, 2014
Latest reply on Mar 18, 2014 by Bhuvaneshsubramanian

Hi,

 

Driver is working great for 800x480 with bpp 32 and also with two screens, But for my requirement I need more number of SCREENS so I increased the MACRO which is defined NUM_SCREENS to 5.

so the DMA memory allocation requirement went like this below:

Width x Height x bpp x NUM_SCREENS = in Bytes

800*480*4*5 = 7.5MB

which was failing while booting when initializing the LCD, I have copied the trace of it where it got failed.

 

I got to understand that DMA memory allocation is limited to 4MB can anybody suggest something to get this extented to 8MB so that I can have more screens?

 

[    1.050000] ------------[ cut here ]------------

 

[    1.050000] WARNING: at mm/page_alloc.c:1968 __alloc_pages_nodemask+0x170/0x564()

 

[    1.060000] Backtrace:

[    1.060000] [<c0040468>] (dump_backtrace+0x0/0x114) from [<c03a6d8c>] (dump_stack+0x18/0x1c)

[    1.070000]  r7:00000009 r6:000007b0 r5:c00a1ca8 r4:00000000

[    1.080000] [<c03a6d74>] (dump_stack+0x0/0x1c) from [<c005b178>] (warn_slowpath_common+0x50/0x68)

[    1.080000] [<c005b128>] (warn_slowpath_common+0x0/0x68) from [<c005b1b4>] (warn_slowpath_null+0x24/0x2c)

[    1.090000]  r9:00000000 r8:00000000 r7:c7c26000 r6:c04a8d24 r5:0000000b

[    1.100000] r4:c04d21d8

[    1.100000] [<c005b190>] (warn_slowpath_null+0x0/0x2c) from [<c00a1ca8>] (__alloc_pages_nodemask+0x170/0x564)

[    1.110000] [<c00a1b38>] (__alloc_pages_nodemask+0x0/0x564) from [<c00417c4>] (__dma_alloc+0xfc/0x2b4)

[    1.120000] [<c00416c8>] (__dma_alloc+0x0/0x2b4) from [<c00419a4>] (dma_alloc_writecombine+0x28/0x34)

[    1.130000] [<c004197c>] (dma_alloc_writecombine+0x0/0x34) from [<c03a4eb8>] (mxsfb_probe+0x24c/0x814)

[    1.140000] [<c03a4c6c>] (mxsfb_probe+0x0/0x814) from [<c0235854>] (platform_drv_probe+0x1c/0x20)

[    1.150000] [<c0235838>] (platform_drv_probe+0x0/0x20) from [<c02344e0>] (driver_probe_device+0x1b4/0x358)

[    1.160000] [<c023432c>] (driver_probe_device+0x0/0x358) from [<c02346ec>] (__driver_attach+0x68/0x8c)

[    1.170000]  r7:00000000 r6:c0497fa4 r5:c047f81c r4:c047f7e8

[    1.180000] [<c0234684>] (__driver_attach+0x0/0x8c) from [<c0233980>] (bus_for_each_dev+0x54/0x94)

[    1.190000]  r7:00000000 r6:c0234684 r5:c7c27ef0 r4:c0497fa4

[    1.190000] [<c023392c>] (bus_for_each_dev+0x0/0x94) from [<c0234114>] (driver_attach+0x20/0x28)

[    1.200000]  r7:00000000 r6:c0498cc0 r5:c76160c0 r4:c0497fa4

[    1.210000] [<c02340f4>] (driver_attach+0x0/0x28) from [<c0233144>] (bus_add_driver+0x100/0x288)

[    1.210000] [<c0233044>] (bus_add_driver+0x0/0x288) from [<c0234a28>] (driver_register+0xb4/0x144)

[    1.220000] [<c0234974>] (driver_register+0x0/0x144) from [<c0235cdc>] (platform_driver_register+0x4c/0x60)

[    1.230000]  r9:00000000 r8:00000000 r7:00000013 r6:00000001 r5:c0028f24

[    1.240000] r4:c001d2c0

[    1.240000] [<c0235c90>] (platform_driver_register+0x0/0x60) from [<c001d2d4>] (mxsfb_init+0x14/0x1c)

[    1.250000] [<c001d2c0>] (mxsfb_init+0x0/0x1c) from [<c003c3ac>] (do_one_initcall+0x64/0x1cc)

[    1.260000] [<c003c348>] (do_one_initcall+0x0/0x1cc) from [<c0008484>] (kernel_init+0xb4/0x170)

[    1.270000]  r9:00000000 r8:00000000 r7:00000013 r6:c005eacc r5:c0028f24

[    1.280000] r4:c0028df0

[    1.280000] [<c00083d0>] (kernel_init+0x0/0x170) from [<c005eacc>] (do_exit+0x0/0x688)

[    1.290000]  r5:c00083d0 r4:00000000

[    1.290000] ---[ end trace dec6997083161631 ]---

[    1.300000] mxs-fb: probe of mxs-fb.0 failed with error -12

Outcomes