主题中讨论的其他器件:DA8XX
工具/软件:Linux
目前,使用24位连接速率为1366×768的 LVDS 屏幕,并且已报告内核启动该错误。
da8xx_LCDC da8xx_LCDC.0:GLCD:针对帧缓冲区的 kmalloc 失败。
设置 CONFIG_FORCE_MAX_ZONEORDER = 16
并在 defconfig 中设置 CONFIG_FB_DA8XX_CONSTD_DMA_SIZE=14
LCD 代码如下所示
静态结构 pinmux_config lcdc_pin_mux[]={ {"lcd_Data0.lcd_Data0"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data1.lcd_data1"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data2.lcd_data2"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data3.lcd_data3"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data4.lcd_data4"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data5.lcd_data5"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data6.lcd_data6"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data7.lcd_data7"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data8.lcd_data8"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data9.lcd_data9"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data10.lcd_data10"、OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data11.lcd_data11"、omap_MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data12.lcd_data12"、OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data13.lcd_data13"、OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data14.lcd_data14"、omap_MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"lcd_data15.lcd_data15"、OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 #IF 1. {"GPMC_ad8.LCD_data16"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"GPMC_ad9.LCD_data17"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"GPMC_ad10.LCD_data18"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"GPMC_ad11.LCD_data19"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"GPMC_ad12.LCD_data20"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"GPMC_ad13.LCD_data21"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"GPMC_ad14.LCD_data22"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 {"GPMC_ad15.LCD_data23"、 OMAP-MUX_MODE1 | AM33XX_PIN_OUTPUT |AM33XX_PULL_DISA}、 #endif {"lcd_vsync.lcd_vsync"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT}、 {"LCD_HSYNC.LCD_HSYNC"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT}、 {"lcd_pclk.lcd_pclk"、 OMAP-MUX_MODE0 | AM33XX_PIN_OUTPUT}、 {"lcd_ac_bias _en.lcd_ac_bias _en"、omap_MUX_MODE0 | AM33XX_PIN_OUTPUT}、 {NULL、0}、 }; 静态结构 LCD_CTRL_CONFIG DVI_cfg ={ &DVI_PA电池板、 .AC_BIAS = 255、 .AC_BIAS_INIPT = 0、 .DMA_BURST_SZ = 16、 .bpp = 24、 /*RGB888*/ .FDD = 0x80、 .TFT_alt_MODE = 0、 .stn_565_MODE = 0、 .mono_8bit_MODE = 0、 .inver_line_clock = 1、 .inver_frm_clock = 1、 .sync_edge = 0、 .sync_ctrl = 1、 .raster _order = 0、 }; struct da8xx_LCDC_platform_data TFT_HM185WX1_pdata ={ .manu_name ="BOE"、 .controller_data =&DVI_cfg、 .type ="HM185WX1-400"、 }; [8]={ .name ="185WX1-400"、 .width = 1366、 HFP =.height = 14、HFP =.768 .hsw = 20、 .VFP = 18、 .VBP = 10、 .vsw = 10、 .pxl_clk = 60000000、 .inver_pxl_clk = 0、 }、
Linux 内核无可指责:da8xx_LCDC da8xx_LCDC.0:GLCD:找到 HM185WX1-400面板
------ [在此处剪切]-----
警告:位于 mm/page_alloc.c:2095 __alloc_pages_nodemask+0x448/0x600 ()
链接的模块:
回溯:
[ ](dump_backtrace+0x0/0x110)从[ ](dump_stack+0x18/0x1c)
R6:c048b074 R5:0000082f R4:00000000 R3:c064dc0c
[ ](dump_stack+0x0/0x1c)从[ ](WARN_RASPEK_COMMON + 0x5c/0x6c)
[ ](warn_slESpath_common+0x0/0x6c)、来自[ ](WARN_RASPEK_NULL_0x24/0x2C)
r8:00000000 r7:00000000 r6:c0680a04 r5:c062e0f0 r4:c069f448
r3:00000009
[ ](warn_slESpath_null+0x0/0x2C)、来自[ ](_alloc_pages_nodemASK+0x448/0x600)
[ ](__alloc_pages_nodemASK+0x0/0x600)从[ ](_dma_alloc+0xa4/0x438)
[ ](_dma_alloc+0x0/0x438)、来自[ ](dma_alloc_相干+0x60/0x68)
[ ](dma_alloc_相干+0x0/0x68)从[ ](fb_prob+b90/0xba8)
r7:cf06ac08 r6:cf19d650 r5:c0667040 r4:01002000
[ ](fb_prob+0x0/0xba8)、来自[ ](platform_drv_probe +0x20/0x24)
[ ](platform_drv_probe +0x0/0x24)从[ ](DRIVER_PROBLE_DEVICE_0xc0/0x2d8)
[ ](driver_probe_device+0x0/0x2d8)从[ ](__driver_attach+0x94/0x98)
r8:00000000 r7:00000000 r6:cf06ac3c r5:c0666e04 r4:cf06ac08
[ ](_DRIVER_ATT+0x0/0x98)从[ ](BUS_TO_EASE_DEV_0x58/0x84)
R6:00000000 R5:c01eade8 R4:c0666e04 R3:c01eade8
[ ](BUS_TO_EASE_DEV_0x0/0x84)从[ ](DRIVER_ATT+0x24/0x28)
r6:cf1bba40 r5:c066b5d0 r4:c0666e04
[ ](DRIVER_ATT+0x0/0x28)、来自[ ](BUS_ADD_DRIVER+0x204/0x2d8)
[ ](BUS_ADD_DRIVER+0x0/0x2d8)、来自[ ](DRIVER_REGISTER+0x80/0x184)
[ ](DRIVER_REGISTER+0x0/0x184)、来自[ ](platform_driver_register+0x5c/0x60)
[ ](platform_driver_register+0x0/0x60)从[ ](da8xx_fb_init+0x18/0x1c)
[ ](da8xx_fb_init+0x0/0x1c)从[ ](do_one _initcall+0x3c/0x184)
[ ](do_one _initcall+0x0/0x184)从[ ](kernel_init+0x9C/0x12c)
[ ](kernel_init+0x0/0x12c)从[ ](do_exit+0x0/0x660)
所以
如何修改内核?
允许 驱动1366×768 24位屏幕。