Ilitek ILI9881C MIPI LCD Panel issue on i.MX93 I am working with a carrier board based on the iMX93, which is connected to a DSI panel. I'm trying to use the ilitek ili9881c driver with specific configurations to get the panel to display correctly, but I have been unsuccessful so far. I do some displays with Weston and modetest. In 2 cas, The panel displays something initially, but then the screen becomes blurry and eventually becomes completely unreadable. Could you please assist me in making it work with the information follow : Panel DSI (https://midasdisplays.com/shop/tft/mdt0500b2ihc-mipi/) with documentation (https://midasdisplays.com/wp-content/uploads/2023/08/MDT0500B2IHC-MIPI.pdf) Driver panel-ilitek-ili9881c for ili9881C IC on linux-imx 6.1.36. Configuration : There are no information about timming configuration on datasheet of Panel then i use the configuration from driver "bananapi,lhr050h41" of "ilitek ili9881c"; Display timings : static const struct drm_display_mode lhr050h41_default_mode = {
.clock = 62000,
.hdisplay = 720,
.hsync_start = 720 + 10,
.hsync_end = 720 + 10 + 20,
.htotal = 720 + 10 + 20 + 30,
.vdisplay = 1280,
.vsync_start = 1280 + 10,
.vsync_end = 1280 + 10 + 10,
.vtotal = 1280 + 10 + 10 + 20,
.width_mm = 62,
.height_mm = 110,
}; Devicetree : &lcdif {
status = "okay";
assigned-clock-rates = <310000000>, <62000000>, <400000000>, <133333333>;
// assigned-clock-rates = <372000000>, <62000000>, <400000000>, <133333333>;
// assigned-clock-rates = <248000000>, <62000000>, <400000000>, <133333333>;
};
&dsi {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
panel@0 {
compatible = "bananapi,lhr050h41", "ilitek,ili9881c";
reg = <0>;
power-supply = <®_vdd_3v3>;
reset-gpios = <&ioexpander_1 1 GPIO_ACTIVE_LOW>;
backlight = <&disp_backlight>;
width-mm = <62>;
height-mm = <110>;
port {
panel_to_dsi: endpoint {
remote-endpoint = <&dsi_to_panel>;
};
};
};
ports {
port@1 {
reg = <1>;
dsi_to_panel: endpoint {
remote-endpoint = <&panel_to_dsi>;
};
};
};
};
&epxp {
status = "okay";
};
&dphy {
status = "okay";
}; Clock configuration : /*
* Fvco = (Fref / rdiv) * (MFI + MFN / MFD)
* Fout = Fvco / odiv
* The (Fref / rdiv) should be in range 20MHz to 40MHz
* The Fvco should be in range 2.5Ghz to 5Ghz
*/
static const struct imx_fracn_gppll_rate_table fracn_tbl[] = {
PLL_FRACN_GP(1700000000U, 141, 0, 0, 1, 2),
PLL_FRACN_GP(1400000000U, 175, 0, 0, 1, 3),
PLL_FRACN_GP(1039500000U, 173, 25, 100, 1, 4),
PLL_FRACN_GP(900000000U, 150, 0, 0, 1, 4),
PLL_FRACN_GP(800000000U, 200, 0, 0, 1, 6),
PLL_FRACN_GP(650000000U, 162, 50, 100, 0, 6),
PLL_FRACN_GP(594000000U, 198, 0, 1, 0, 8),
PLL_FRACN_GP(560000000U, 140, 0, 1, 0, 6),
PLL_FRACN_GP(520800000U, 217, 0, 1, 1, 10),
PLL_FRACN_GP(504000000U, 42, 0, 1, 1, 2),
PLL_FRACN_GP(498000000U, 166, 0, 1, 0, 8),
PLL_FRACN_GP(484000000U, 121, 0, 1, 0, 6),
PLL_FRACN_GP(445333333U, 167, 0, 1, 0, 9),
PLL_FRACN_GP(400000000U, 200, 0, 1, 0, 12),
PLL_FRACN_GP(393216000U, 163, 84, 100, 0, 10),
PLL_FRACN_GP(300000000U, 150, 0, 1, 0, 12),
/* ILI9881C Panel */
PLL_FRACN_GP(372000000U, 186, 0, 1, 0, 12),
PLL_FRACN_GP(310000000U, 155, 0, 1, 0, 12),
PLL_FRACN_GP(248000000U, 124, 0, 1, 0, 12)
}; From documentation of imx93: Clocks : tested with 3 clocks x4, x5, x6 cat /sys/kernel/debug/clk/clk_summary Weston : mopdetest : sudo modetest -M imx-drm -D 0 -a -s 35@33:720x1280 -P 31@33:720x1280 Is my configuration wrong ? #i.MX93 #DSI #ILI9881C Re: Ilitek ILI9881C MIPI LCD Panel issue on i.MX93 can you please share your DTS file Re: Ilitek ILI9881C MIPI LCD Panel issue on i.MX93 Hello, Please do accept my apologize for the delayed response, the logs provided show no issues, it just shows that the driver is running, from the same logs I see that the driver triggers a sleep thats the only "strange" thing I could see, I could suggest a couple of things to try out if you are willing to try. 1.- Please double check the voltage level of the display that it is correct and working as expected when the failure is seen, specifically the PWM. 2.- Please double check with the display vendor wheter the driver is working as spected, as this driver is not provided by us. Best regards/Saludos, Aldo. Re: Ilitek ILI9881C MIPI LCD Panel issue on i.MX93 Hello Aldo. Thank you for your response. I tested with different clocks, but the issue remains the same: the panel initially displays something, but then the screen becomes blurry and eventually becomes completely unreadable. Strange message in logs: I analyzed the dmesg logs and found an issue with dw-mipi-dsi-imx (see the dmesg log). The fset command doesn't provide the timing information (see the fset command output). New questions : Question 1: How can I resolve this issue? Question 2: Based on the log information below, is there any other issue? 1. Configuration I contacted the panel provider and obtained more information about the timing configuration : Here is my new configuration : linux-imx/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c for 720x1280x60 Hz static const struct drm_display_mode lhr050h41_default_mode = {
.clock = 66340,
.hdisplay = 720,
.hsync_start = 720 + 4, // HACT + HSA
.hsync_end = 720 + 4 + 60, // HACT + HSA + HBP
.htotal = 720 + 4 + 60 + 60, // HACT + HSA + HBP + HFP
.vdisplay = 1280,
.vsync_start = 1280 + 4, // VACT + VSA
.vsync_end = 1280 + 4 + 16, // VACT + VSA + VBP
.vtotal = 1280 + 4 + 16 + 10, // VACT + VSA + VBP + VFP
.width_mm = 62,
.height_mm = 110,
}; Devicetree : &lcdif {
status = "okay";
assigned-clock-rates = <331700000>, <66340000>, <400000000>, <133333333>;
// assigned-clock-rates = <256360000>, <66340000>, <400000000>, <133333333>;
};
&dsi {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
panel@0 {
compatible = "bananapi,lhr050h41", "ilitek,ili9881c";
reg = <0>;
power-supply = <®_vdd_3v3>;
reset-gpios = <&ioexpander_1 1 GPIO_ACTIVE_LOW>;
backlight = <&disp_backlight>;
width-mm = <62>;
height-mm = <110>;
port {
panel_to_dsi: endpoint {
remote-endpoint = <&dsi_to_panel>;
};
};
};
ports {
port@1 {
reg = <1>;
dsi_to_panel: endpoint {
remote-endpoint = <&panel_to_dsi>;
};
};
};
};
&epxp {
status = "okay";
};
&dphy {
status = "okay";
}; linux-imx/drivers/clk/imx/clk-fracn-gppll.c /*
* Fvco = (Fref / rdiv) * (MFI + MFN / MFD)
* Fout = Fvco / odiv
* The (Fref / rdiv) should be in range 20MHz to 40MHz
* The Fvco should be in range 2.5Ghz to 5Ghz
*/
static const struct imx_fracn_gppll_rate_table fracn_tbl[] = {
PLL_FRACN_GP(1700000000U, 141, 0, 0, 1, 2),
PLL_FRACN_GP(1400000000U, 175, 0, 0, 1, 3),
PLL_FRACN_GP(1039500000U, 173, 25, 100, 1, 4),
PLL_FRACN_GP(900000000U, 150, 0, 0, 1, 4),
PLL_FRACN_GP(800000000U, 200, 0, 0, 1, 6),
PLL_FRACN_GP(650000000U, 162, 50, 100, 0, 6),
PLL_FRACN_GP(594000000U, 198, 0, 1, 0, 8),
PLL_FRACN_GP(560000000U, 140, 0, 1, 0, 6),
PLL_FRACN_GP(520800000U, 217, 0, 1, 1, 10),
PLL_FRACN_GP(504000000U, 42, 0, 1, 1, 2),
PLL_FRACN_GP(498000000U, 166, 0, 1, 0, 8),
PLL_FRACN_GP(484000000U, 121, 0, 1, 0, 6),
PLL_FRACN_GP(445333333U, 167, 0, 1, 0, 9),
PLL_FRACN_GP(400000000U, 200, 0, 1, 0, 12),
PLL_FRACN_GP(393216000U, 163, 84, 100, 0, 10),
PLL_FRACN_GP(300000000U, 150, 0, 1, 0, 12),
PLL_FRACN_GP(331700000U, 165, 17, 20, 1, 12), // _rate, _mfi, _mfn, _mfd, _rdiv, _odiv
PLL_FRACN_GP(256360000U, 128, 9, 50, 1, 12)
}; Clock summery from commande: cat /sys/kernel/debug/clk/clk_summary 2. Log a. DMESG I added some printk in PANEL driver code to check its flow (Log begin with PANEL:) ...
[ 1.613373] pwm-backlight pwm-backlight: GPIO lookup for consumer enable
[ 1.613387] pwm-backlight pwm-backlight: using device tree for GPIO lookup
[ 1.613396] of_get_named_gpiod_flags: can't parse 'enable-gpios' property of node '/pwm-backlight[0]'
[ 1.613407] of_get_named_gpiod_flags: can't parse 'enable-gpio' property of node '/pwm-backlight[0]'
[ 1.613417] pwm-backlight pwm-backlight: using lookup tables for GPIO lookup
[ 1.613422] pwm-backlight pwm-backlight: No GPIO consumer enable found
[ 1.616645] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[ 1.624620] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/dsi@4ae10000 to encoder DSI-34: -517
[ 1.634715] dw-mipi-dsi-imx 4ae10000.dsi: [drm:dw_mipi_dsi_imx_bind] *ERROR* failed to attach bridge: -517
[ 1.644614] dw-mipi-dsi-imx 4ae10000.dsi: [drm:dw_mipi_dsi_imx_probe] *ERROR* failed to register component: -517
...
[ 1.805466] pca953x 4-0020: GPIO lookup for consumer reset
[ 1.805476] pca953x 4-0020: using device tree for GPIO lookup
[ 1.805484] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/soc@0/bus@42000000/i2c@426b0000/gpio@20[0]'
[ 1.805501] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/soc@0/bus@42000000/i2c@426b0000/gpio@20[0]'
[ 1.805515] pca953x 4-0020: using lookup tables for GPIO lookup
[ 1.805519] pca953x 4-0020: No GPIO consumer reset found
[ 1.805622] pca953x 4-0020: using no AI
[ 1.809964] gpiochip_find_base: found new base at 488
[ 1.809995] gpio gpiochip5: Persistence not supported for GPIO 2
[ 1.810280] gpio-490 (reset): hogged as output/high
[ 1.815318] gpio gpiochip5: (4-0020): added GPIO chardev (254:5)
[ 1.815325] gpio gpiochip5: registered GPIOs 488 to 495 on 4-0020
[ 1.815517] pca953x 4-0021: GPIO lookup for consumer reset
[ 1.815522] pca953x 4-0021: using device tree for GPIO lookup
[ 1.815530] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/soc@0/bus@42000000/i2c@426b0000/gpio@21[0]'
[ 1.815545] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/soc@0/bus@42000000/i2c@426b0000/gpio@21[0]'
[ 1.815559] pca953x 4-0021: using lookup tables for GPIO lookup
[ 1.815563] pca953x 4-0021: No GPIO consumer reset found
[ 1.815660] pca953x 4-0021: using no AI
[ 1.819619] gpiochip_find_base: found new base at 480
...
[ 1.837049] PANEL: ili9881c_dsi_probe
[ 1.837165] ili9881c-dsi 4ae10000.dsi.0: GPIO lookup for consumer reset
[ 1.840818] ili9881c-dsi 4ae10000.dsi.0: using device tree for GPIO lookup
[ 1.840843] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/soc@0/dsi@4ae10000/panel@0[0]' - status (0)
[ 1.841045] PANEL: drm_panel_of_backlight
[ 1.841053] PANEL: drm_panel_add
[ 1.845060] PANEL: mipi_dsi_attach
[ 1.849049] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[ 1.860484] imx-drm display-subsystem: bound 4ae10000.dsi (ops dw_mipi_dsi_imx_ops)
[ 1.868486] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0
[ 1.876358] PANEL: ili9881c_get_modes
[ 1.876360] PANEL: drm_mode_duplicate
[ 1.880018] PANEL: drm_mode_set_name
[ 1.883671] PANEL: mode->type = 0x48
[ 1.887239] PANEL: drm_mode_set_name
[ 1.890801] PANEL: return 1
[ 1.937230] PANEL: ili9881c_prepare
[ 1.937238] PANEL: regulator_enable -> Sleep 5ms
[ 1.953133] ------------[ cut here ]------------
[ 1.953138] WARNING: CPU: 0 PID: 40 at drivers/gpio/gpiolib.c:3140 gpiod_set_value+0x5c/0xcc
[ 1.953158] Modules linked in:
[ 1.953165] CPU: 0 PID: 40 Comm: kworker/u4:1 Not tainted 6.1.36+gd997ba75bc0a #1
[ 1.953171] Hardware name: BOSCH MOP ENG i.MX93 Sirius board (DT)
[ 1.953175] Workqueue: events_unbound deferred_probe_work_func
[ 1.953185] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 1.953190] pc : gpiod_set_value+0x5c/0xcc
[ 1.953194] lr : ili9881c_prepare+0x74/0x1e8
[ 1.953202] sp : ffff80000a12b340
[ 1.953205] x29: ffff80000a12b340 x28: ffff0000050cc4b0 x27: 0000000000000000
[ 1.953212] x26: ffff800009396ad0 x25: ffff8000097619f0 x24: 0000000000000028
[ 1.953219] x23: 00000000ffff98ff x22: 00000000ffffff81 x21: 0000000000000000
[ 1.953225] x20: 0000000000000001 x19: ffff0000042cc430 x18: fffffffffffebf10
[ 1.953232] x17: 0000000017b99bc0 x16: 00000000000000c7 x15: 0000000000000030
[ 1.953238] x14: 0000000000000152 x13: 0000000000000000 x12: 0000000000000000
[ 1.953244] x11: 0000000000000001 x10: 0000000000000a60 x9 : ffff80000a12b240
[ 1.953251] x8 : ffff00002fd94000 x7 : ffff00002fd9ab40 x6 : 0000000008c2a66c
[ 1.953257] x5 : 00000000410fd050 x4 : 0000000000000000 x3 : 0000000000000000
[ 1.953263] x2 : 0000000000000000 x1 : ffff000004bdad00 x0 : 0000000000000001
[ 1.953270] Call trace:
[ 1.953273] gpiod_set_value+0x5c/0xcc
[ 1.953278] ili9881c_prepare+0x74/0x1e8
[ 1.953282] drm_panel_prepare+0x28/0x40
[ 1.953290] panel_bridge_pre_enable+0x14/0x20
[ 1.953296] drm_atomic_bridge_chain_pre_enable+0x94/0xd0
[ 1.953304] drm_atomic_helper_commit_modeset_enables+0x170/0x26c
[ 1.953310] lcdifv3_drm_atomic_commit_tail+0x30/0x70
[ 1.953317] commit_tail+0xa4/0x190
[ 1.953321] drm_atomic_helper_commit+0x164/0x180
[ 1.953327] drm_atomic_commit+0xa8/0xe0
[ 1.953332] drm_client_modeset_commit_atomic+0x210/0x270
[ 1.953338] drm_client_modeset_commit_locked+0x5c/0x18c
[ 1.953342] drm_client_modeset_commit+0x30/0x60
[ 1.953346] drm_fb_helper_set_par+0xb8/0x110
[ 1.953351] fbcon_init+0x1fc/0x500
[ 1.953356] visual_init+0xb4/0x104
[ 1.953364] do_bind_con_driver.isra.0+0x1b8/0x390
[ 1.953368] do_take_over_console+0x1a4/0x200
[ 1.953372] do_fbcon_takeover+0x6c/0xe4
[ 1.953376] fbcon_fb_registered+0x1e0/0x1ec
[ 1.953380] register_framebuffer+0x1ac/0x2f4
[ 1.953386] __drm_fb_helper_initial_config_and_unlock+0x358/0x540
[ 1.953391] drm_fbdev_client_hotplug+0x150/0x210
[ 1.953395] drm_fbdev_generic_setup+0xb4/0x194
[ 1.953399] imx_drm_bind+0x260/0x2e0
[ 1.953406] try_to_bring_up_aggregate_device+0x164/0x1d0
[ 1.953412] __component_add+0xa4/0x170
[ 1.953416] component_add+0x14/0x20
[ 1.953420] dw_mipi_dsi_imx_probe+0x118/0x254
[ 1.953424] platform_probe+0x68/0xc0
[ 1.953429] really_probe+0xbc/0x2dc
[ 1.953433] __driver_probe_device+0x78/0x114
[ 1.953437] driver_probe_device+0x3c/0x15c
[ 1.953441] __device_attach_driver+0xb8/0x134
[ 1.953445] bus_for_each_drv+0x7c/0xd4
[ 1.953451] __device_attach+0x9c/0x1a0
[ 1.953455] device_initial_probe+0x14/0x20
[ 1.953459] bus_probe_device+0x98/0xa0
[ 1.953463] deferred_probe_work_func+0x80/0xc0
[ 1.953467] process_one_work+0x1d4/0x330
[ 1.953474] worker_thread+0x220/0x430
[ 1.953478] kthread+0x108/0x10c
[ 1.953483] ret_from_fork+0x10/0x20
[ 1.953489] ---[ end trace 0000000000000000 ]---
[ 1.953591] PANEL: gpiod_set_value 1 (reset)-> Sleep 20ms
[ 1.981153] ------------[ cut here ]------------
[ 1.981156] WARNING: CPU: 0 PID: 40 at drivers/gpio/gpiolib.c:3140 gpiod_set_value+0x5c/0xcc
[ 1.981167] Modules linked in:
[ 1.981172] CPU: 0 PID: 40 Comm: kworker/u4:1 Tainted: G W 6.1.36+gd997ba75bc0a #1
[ 1.981176] Hardware name: BOSCH MOP ENG i.MX93 Sirius board (DT)
[ 1.981179] Workqueue: events_unbound deferred_probe_work_func
[ 1.981185] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 1.981190] pc : gpiod_set_value+0x5c/0xcc
[ 1.981195] lr : ili9881c_prepare+0x94/0x1e8
[ 1.981199] sp : ffff80000a12b340
[ 1.981201] x29: ffff80000a12b340 x28: ffff0000050cc4b0 x27: 0000000000000000
[ 1.981208] x26: ffff800009396ad0 x25: ffff8000097619f0 x24: 0000000000000028
[ 1.981215] x23: 00000000ffff98ff x22: 00000000ffffff81 x21: 0000000000000000
[ 1.981222] x20: 0000000000000000 x19: ffff0000042cc430 x18: fffffffffffecca0
[ 1.981228] x17: 0000000017b99bc0 x16: 00000000000000c7 x15: 0000000000000038
[ 1.981235] x14: 0000000000000022 x13: 0000000000000000 x12: 0000000000000000
[ 1.981241] x11: 0000000000000001 x10: 0000000000000a60 x9 : ffff80000a12b240
[ 1.981248] x8 : ffff00002fd94000 x7 : ffff00002fd9ab40 x6 : 00000000ffffffff
[ 1.981254] x5 : 00000000410fd050 x4 : 0000000000000000 x3 : 0000000000000000
[ 1.981260] x2 : 0000000000000000 x1 : ffff000004bdad00 x0 : 0000000000000001
[ 1.981266] Call trace:
[ 1.981268] gpiod_set_value+0x5c/0xcc
[ 1.981273] ili9881c_prepare+0x94/0x1e8
[ 1.981278] drm_panel_prepare+0x28/0x40
[ 1.981284] panel_bridge_pre_enable+0x14/0x20
[ 1.981288] drm_atomic_bridge_chain_pre_enable+0x94/0xd0
[ 1.981295] drm_atomic_helper_commit_modeset_enables+0x170/0x26c
[ 1.981301] lcdifv3_drm_atomic_commit_tail+0x30/0x70
[ 1.981306] commit_tail+0xa4/0x190
[ 1.981311] drm_atomic_helper_commit+0x164/0x180
[ 1.981316] drm_atomic_commit+0xa8/0xe0
[ 1.981321] drm_client_modeset_commit_atomic+0x210/0x270
[ 1.981327] drm_client_modeset_commit_locked+0x5c/0x18c
[ 1.981331] drm_client_modeset_commit+0x30/0x60
[ 1.981336] drm_fb_helper_set_par+0xb8/0x110
[ 1.981340] fbcon_init+0x1fc/0x500
[ 1.981345] visual_init+0xb4/0x104
[ 1.981351] do_bind_con_driver.isra.0+0x1b8/0x390
[ 1.981355] do_take_over_console+0x1a4/0x200
[ 1.981359] do_fbcon_takeover+0x6c/0xe4
[ 1.981364] fbcon_fb_registered+0x1e0/0x1ec
[ 1.981368] register_framebuffer+0x1ac/0x2f4
[ 1.981374] __drm_fb_helper_initial_config_and_unlock+0x358/0x540
[ 1.981379] drm_fbdev_client_hotplug+0x150/0x210
[ 1.981383] drm_fbdev_generic_setup+0xb4/0x194
[ 1.981388] imx_drm_bind+0x260/0x2e0
[ 1.981393] try_to_bring_up_aggregate_device+0x164/0x1d0
[ 1.981397] __component_add+0xa4/0x170
[ 1.981402] component_add+0x14/0x20
[ 1.981406] dw_mipi_dsi_imx_probe+0x118/0x254
[ 1.981409] platform_probe+0x68/0xc0
[ 1.981414] really_probe+0xbc/0x2dc
[ 1.981418] __driver_probe_device+0x78/0x114
[ 1.981422] driver_probe_device+0x3c/0x15c
[ 1.981426] __device_attach_driver+0xb8/0x134
[ 1.981430] bus_for_each_drv+0x7c/0xd4
[ 1.981436] __device_attach+0x9c/0x1a0
[ 1.981439] device_initial_probe+0x14/0x20
[ 1.981443] bus_probe_device+0x98/0xa0
[ 1.981447] deferred_probe_work_func+0x80/0xc0
[ 1.981451] process_one_work+0x1d4/0x330
[ 1.981456] worker_thread+0x220/0x430
[ 1.981461] kthread+0x108/0x10c
[ 1.981464] ret_from_fork+0x10/0x20
[ 1.981470] ---[ end trace 0000000000000000 ]---
[ 1.981560] PANEL: gpiod_set_value 0 (reset)-> Sleep 20ms
[ 2.193755] PANEL: ili9881c_switch_page
[ 2.194765] PANEL: mipi_dsi_dcs_set_tear_on
[ 2.195774] PANEL: mipi_dsi_dcs_exit_sleep_mode
[ 2.196783] PANEL: ili9881c_prepare -> OK
[ 2.196789] PANEL: ili9881c_enable + sleep 120ms
[ 2.401176] PANEL: mipi_dsi_dcs_set_display_on
[ 2.402191] PANEL: ili9881c_enable -> OK
[ 2.452996] Console: switching to colour frame buffer device 90x80
...
[ 3.458019] mmc1: SDHCI controller on 42860000.mmc [42860000.mmc] using ADMA
[ 3.490601] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none.
[ 3.499240] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 3.505721] devtmpfs: mounted
[ 3.512373] Freeing unused kernel memory: 3200K
[ 3.517072] Run /sbin/init as init process
[ 3.521270] with arguments:
[ 3.521272] /sbin/init
[ 3.521275] with environment:
[ 3.521277] HOME=/
[ 3.521279] TERM=linux
[ 3.521281] dtb-module=sirius-imx93.dtb
[ 3.642688] systemd[1]: systemd 253.1^ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[ 3.674584] systemd[1]: Detected architecture arm64.
... b. WESTON weston ini : cat /etc/xdg/weston/weston.ini [core]
use-g2d=true
repaint-window=16
#gbm-format=argb8888
idle-time=0
xwayland=true
#enable-overlay-view=1
[shell]
[libinput]
touchscreen_calibrator=true
[output]
name=DSI-1
mode=720x1280@60
[screen-share]
command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize Weston log Date: 2024-11-21 CET
[11:38:49.372] weston 11.0.2
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 10.0.0-661-ga3c5e63a+
[11:38:49.373] Command line: /usr/bin/weston --log=/run/user/0/weston.log --modules=systemd-notify.so
[11:38:49.373] OS: Linux, 6.1.36+gd997ba75bc0a, #1 SMP PREEMPT Sun Nov 3 01:09:31 UTC 2024, aarch64
[11:38:49.373] Flight recorder: enabled
[11:38:49.374] Using config file '/etc/xdg/weston/weston.ini'
[11:38:49.375] Output repaint window is 16 ms maximum.
[11:38:49.377] Loading module '/usr/lib/libweston-11/drm-backend.so'
[11:38:49.383] initializing drm backend
[11:38:49.383] Trying logind launcher...
[11:38:49.397] logind: session control granted
[11:38:49.405] using /dev/dri/card0
[11:38:49.405] DRM: supports atomic modesetting
[11:38:49.405] DRM: does not support GBM modifiers
[11:38:49.405] DRM: supports picture aspect ratio
[11:38:49.406] Loading module '/usr/lib/libweston-11/g2d-renderer.so'
[11:38:49.476] failed to query DRM device from EGL
[11:38:49.500] event1 - gpio-keys: is tagged by udev as: Keyboard
[11:38:49.500] event1 - gpio-keys: device is a keyboard
[11:38:49.508] event2 - Goodix Capacitive TouchScreen: is tagged by udev as: Keyboard Touchscreen
[11:38:49.509] event2 - Goodix Capacitive TouchScreen: device is a keyboard
[11:38:49.509] event2 - Goodix Capacitive TouchScreen: device is a touch device
[11:38:49.517] event0 - 44440000.bbnsm:pwrkey: is tagged by udev as: Keyboard
[11:38:49.518] event0 - 44440000.bbnsm:pwrkey: device is a keyboard
[11:38:49.552] libinput: configuring device "gpio-keys".
[11:38:49.552] Touchscreen - Goodix Capacitive TouchScreen - /sys/devices/platform/soc@0/44000000.bus/44350000.i2c/i2c-1/1-005d/input/input2/event2
[11:38:49.552] libinput: configuring device "Goodix Capacitive TouchScreen".
[11:38:49.552] input device event2 has no enabled output associated (none named), skipping calibration for now.
[11:38:49.552] libinput: configuring device "44440000.bbnsm:pwrkey".
[11:38:49.571] DRM: head 'DSI-1' updated, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
Supported EOTF modes: SDR
[11:38:49.571] DRM: head 'DSI-1' found, connector 35 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
Supported EOTF modes: SDR
[11:38:49.571] Registered plugin API 'weston_drm_output_api_v1' of size 32
[11:38:49.571] Color manager: no-op
[11:38:49.572] Loading module '/usr/lib/libgbm.so'
[11:38:49.572] Failed to load module: /usr/lib/libgbm.so: cannot open shared object file: No such file or directory
[11:38:49.572] Output 'DSI-1' attempts EOTF mode: SDR
[11:38:49.572] Output 'DSI-1' using color profile: built-in default sRGB SDR profile
[11:38:49.577] Initialized backlight for head 'DSI-1', device /sys/class/backlight/pwm-backlight
[11:38:49.577] Output DSI-1 (crtc 33) video modes:
[email protected], preferred, current, 62.0 MHz
[11:38:49.577] associating input device event1 with output DSI-1 (none by udev)
[11:38:49.577] associating input device event2 with output DSI-1 (none by udev)
[11:38:49.578] associating input device event0 with output DSI-1 (none by udev)
[11:38:49.578] Output 'DSI-1' enabled with head(s) DSI-1
[11:38:49.578] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: no
view mask clipping: yes
explicit sync: yes
color operations: no
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[11:38:49.579] Loading module '/usr/lib/weston/desktop-shell.so'
[11:38:49.581] Loading module '/usr/lib/libweston-11/xwayland.so'
[11:38:49.648] Registered plugin API 'weston_xwayland_v1' of size 32
[11:38:49.648] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[11:38:49.648] xserver listening on display :0
[11:38:49.649] Loading module '/usr/lib/weston/systemd-notify.so'
[11:38:49.650] info: add 1 socket(s) provided by systemd
[11:38:49.650] launching '/usr/libexec/weston-keyboard'
[11:38:49.658] launching '/usr/libexec/weston-desktop-shell' c. Modetest fbset Modetest Encoders:
id crtc type possible crtcs possible clones
34 33 DSI 0x00000001 0x00000001
Connectors:
id encoder status name size (mm) modes encoders
35 34 connected DSI-1 62x110 1 34
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 720x1280 60.22 720 730 750 780 1280 1290 1300 1320 62000 flags: ; type: preferred, driver
props:
1 EDID:
flags: immutable blob
blobs:
value:
2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0
5 link-status:
flags: enum
enums: Good=0 Bad=1
value: 0
6 non-desktop:
flags: immutable range
values: 0 1
value: 0
4 TILE:
flags: immutable blob
blobs:
value:
CRTCs:
id fb pos size
33 36 (0,0) (720x1280)
#0 720x1280 60.22 720 730 750 780 1280 1290 1300 1320 62000 flags: ; type: preferred, driver
props:
24 VRR_ENABLED:
flags: range
values: 0 1
value: 0
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
31 33 36 0,0 0,0 0 0x00000001
formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
32 zpos:
flags: immutable range
values: 0 0
value: 0
Frame buffers:
id size pitch modetest -M imx-drm -D 0 -a -s 35@33:720x1280 -P 31@33:720x1280 setting mode 720x1280-60.22Hz on connectors 35, crtc 33
failed to set gamma: Function not implemented
testing 720x1280@XR24 on plane 31, crtc 33
#####################################################################################
STOP MODETEST
#####################################################################################
[ 190.526189] PANEL: return 1
[ 358.517178] PANEL: ili9881c_disable
[ 358.521022] ------------[ cut here ]------------
[ 358.529113] WARNING: CPU: 0 PID: 371 at drivers/gpio/gpiolib.c:3140 gpiod_set_value+0x5c/0xcc
[ 358.537631] Modules linked in: crct10dif_ce polyval_ce polyval_generic layerscape_edac_mod at24 btnxpuart fuse [last unloaded: goodix_ts]
[ 358.549975] CPU: 0 PID: 371 Comm: modetest Tainted: G W 6.1.36+gd997ba75bc0a #1
[ 358.558656] Hardware name: BOSCH MOP ENG i.MX93 Sirius board (DT)
[ 358.564732] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 358.571682] pc : gpiod_set_value+0x5c/0xcc
[ 358.575764] lr : ili9881c_unprepare+0x30/0x50
[ 358.580115] sp : ffff80000b14b930
[ 358.583417] x29: ffff80000b14b930 x28: ffff800009396ad0 x27: ffff0000042cc888
[ 358.590541] x26: ffff0000042cca80 x25: ffff000008262a00 x24: ffff800009761948
[ 358.597665] x23: 0000000000000038 x22: ffff00000506e800 x21: ffff0000042cc8e0
[ 358.604789] x20: 0000000000000001 x19: ffff0000042cc430 x18: 0000000000000006
[ 358.611913] x17: 0000000000000000 x16: 0000000000000000 x15: ffff80000b14b490
[ 358.619037] x14: 000000000000032c x13: 000000000000032c x12: 0000000000000001
[ 358.626161] x11: 0000000000000001 x10: 0000000000000a60 x9 : ffff80000b14b6b0
[ 358.633285] x8 : ffff0000082b0ac0 x7 : ffff000005193200 x6 : 0000000000000001
[ 358.640409] x5 : 0000000000000000 x4 : ffff0000082b0000 x3 : ffff800009cd1b18
[ 358.647533] x2 : 0000000000000000 x1 : ffff000004bdad00 x0 : 0000000000000001
[ 358.654657] Call trace:
[ 358.657093] gpiod_set_value+0x5c/0xcc
[ 358.660837] ili9881c_unprepare+0x30/0x50
[ 358.664832] drm_panel_unprepare+0x28/0x40
[ 358.668922] panel_bridge_post_disable+0x14/0x20
[ 358.673524] dw_mipi_dsi_bridge_post_atomic_disable+0x38/0xf0
[ 358.679261] drm_atomic_bridge_chain_post_disable+0x54/0xd0
[ 358.684825] disable_outputs+0x11c/0x2d0
[ 358.688734] drm_atomic_helper_commit_modeset_disables+0x1c/0x50
[ 358.694723] lcdifv3_drm_atomic_commit_tail+0x24/0x70
[ 358.699758] commit_tail+0xa4/0x190
[ 358.703234] drm_atomic_helper_commit+0x164/0x180
[ 358.707922] drm_atomic_commit+0xa8/0xe0
[ 358.711831] drm_mode_atomic_ioctl+0x8d8/0xb50
[ 358.716259] drm_ioctl_kernel+0xc8/0x174
[ 358.720177] drm_ioctl+0x20c/0x420
[ 358.723565] __arm64_sys_ioctl+0xac/0xf0
[ 358.727483] invoke_syscall+0x48/0x114
[ 358.731227] el0_svc_common.constprop.0+0xcc/0xec
[ 358.735916] do_el0_svc+0x2c/0xd0
[ 358.739217] el0_svc+0x2c/0x84
[ 358.742268] el0t_64_sync_handler+0xf4/0x120
[ 358.746523] el0t_64_sync+0x18c/0x190
[ 358.750173] ---[ end trace 0000000000000000 ]---
[ 358.755814] PANEL: ili9881c_unprepare
[ 358.755873] VDD_3V3: Underflow of regulator enable count
[ 358.764992] ------------[ cut here ]------------
[ 358.769604] WARNING: CPU: 1 PID: 371 at drivers/gpio/gpiolib.c:3140 gpiod_set_value+0x5c/0xcc
[ 358.778123] Modules linked in: crct10dif_ce polyval_ce polyval_generic layerscape_edac_mod at24 btnxpuart fuse [last unloaded: goodix_ts]
[ 358.790640] CPU: 1 PID: 371 Comm: modetest Tainted: G W 6.1.36+gd997ba75bc0a #1
[ 358.799321] Hardware name: BOSCH MOP ENG i.MX93 Sirius board (DT)
[ 358.805398] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 358.812347] pc : gpiod_set_value+0x5c/0xcc
[ 358.816429] lr : ili9881c_unprepare+0x30/0x50
[ 358.820780] sp : ffff80000b14b950
[ 358.824082] x29: ffff80000b14b950 x28: ffff800009396ad0 x27: ffff0000042cc888
[ 358.831205] x26: ffff0000042cca80 x25: ffff000008262a00 x24: ffff800009761948
[ 358.838329] x23: 0000000000000038 x22: ffff00000506e800 x21: ffff0000042cc8e0
[ 358.845453] x20: 0000000000000001 x19: ffff0000042cc430 x18: 0000000000000006
[ 358.852577] x17: 0000000000000000 x16: 0000000000000000 x15: ffff80000b14b430
[ 358.859701] x14: 0000000000000272 x13: 0000000000000000 x12: 0000000000000000
[ 358.866825] x11: 0000000000000001 x10: 0000000000000a60 x9 : ffff80000b14b6c0
[ 358.873950] x8 : ffff0000082b0ac0 x7 : ffff00002fdaeb40 x6 : 0000000000000000
[ 358.881073] x5 : ffff00002fda7a18 x4 : ffff0000082b0000 x3 : ffff800009cd1b18
[ 358.888197] x2 : 0000000000000000 x1 : ffff000004bdad00 x0 : 0000000000000001
[ 358.895322] Call trace:
[ 358.897757] gpiod_set_value+0x5c/0xcc
[ 358.901493] ili9881c_unprepare+0x30/0x50
[ 358.905487] drm_panel_unprepare+0x28/0x40
[ 358.909578] panel_bridge_post_disable+0x14/0x20
[ 358.914189] drm_atomic_bridge_chain_post_disable+0x88/0xd0
[ 358.919753] disable_outputs+0x11c/0x2d0
[ 358.923661] drm_atomic_helper_commit_modeset_disables+0x1c/0x50
[ 358.929650] lcdifv3_drm_atomic_commit_tail+0x24/0x70
[ 358.934685] commit_tail+0xa4/0x190
[ 358.938161] drm_atomic_helper_commit+0x164/0x180
[ 358.942849] drm_atomic_commit+0xa8/0xe0
[ 358.946758] drm_mode_atomic_ioctl+0x8d8/0xb50
[ 358.951187] drm_ioctl_kernel+0xc8/0x174
[ 358.955104] drm_ioctl+0x20c/0x420
[ 358.958493] __arm64_sys_ioctl+0xac/0xf0
[ 358.962410] invoke_syscall+0x48/0x114
[ 358.966154] el0_svc_common.constprop.0+0xcc/0xec
[ 358.970843] do_el0_svc+0x2c/0xd0
[ 358.974145] el0_svc+0x2c/0x84
[ 358.977196] el0t_64_sync_handler+0xf4/0x120
[ 358.981459] el0t_64_sync+0x18c/0x190
[ 358.985109] ---[ end trace 0000000000000000 ]---
[ 358.989859] PANEL: ili9881c_unprepare
[ 359.053293] PANEL: ili9881c_prepare
[ 359.056957] PANEL: regulator_enable -> Sleep 5ms
[ 359.073199] ------------[ cut here ]------------
[ 359.082420] WARNING: CPU: 1 PID: 371 at drivers/gpio/gpiolib.c:3140 gpiod_set_value+0x5c/0xcc
[ 359.090937] Modules linked in: crct10dif_ce polyval_ce polyval_generic layerscape_edac_mod at24 btnxpuart fuse [last unloaded: goodix_ts]
[ 359.103273] CPU: 1 PID: 371 Comm: modetest Tainted: G W 6.1.36+gd997ba75bc0a #1
[ 359.111953] Hardware name: BOSCH MOP ENG i.MX93 Sirius board (DT)
[ 359.118030] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 359.124979] pc : gpiod_set_value+0x5c/0xcc
[ 359.129061] lr : ili9881c_prepare+0x74/0x1e8
[ 359.133325] sp : ffff80000b14b8f0
[ 359.136627] x29: ffff80000b14b8f0 x28: ffff0000050366b0 x27: 0000000000000000
[ 359.143751] x26: ffff800009396ad0 x25: ffff8000097619f0 x24: 0000000000000028
[ 359.150876] x23: 00000000ffff98ff x22: 00000000ffffff81 x21: 0000000000000000
[ 359.157999] x20: 0000000000000001 x19: ffff0000042cc430 x18: 0000000000000000
[ 359.165123] x17: 0000000000000000 x16: 0000000000000008 x15: 0000000000000000
[ 359.172247] x14: 0000000000000074 x13: 0000000000000000 x12: 0000000000000000
[ 359.179371] x11: 0000000000000001 x10: 0000000000000a60 x9 : ffff80000b14b7f0
[ 359.186495] x8 : ffff00002fda8000 x7 : ffff000005192a00 x6 : 00000000000003e8
[ 359.193619] x5 : 00000000410fd050 x4 : 0000000000000000 x3 : 0000000000000000
[ 359.200743] x2 : 0000000000000000 x1 : ffff000004bdad00 x0 : 0000000000000001
[ 359.207868] Call trace:
[ 359.210304] gpiod_set_value+0x5c/0xcc
[ 359.214047] ili9881c_prepare+0x74/0x1e8
[ 359.217955] drm_panel_prepare+0x28/0x40
[ 359.221873] panel_bridge_pre_enable+0x14/0x20
[ 359.226301] drm_atomic_bridge_chain_pre_enable+0x94/0xd0
[ 359.231692] drm_atomic_helper_commit_modeset_enables+0x170/0x26c
[ 359.237776] lcdifv3_drm_atomic_commit_tail+0x30/0x70
[ 359.242821] commit_tail+0xa4/0x190
[ 359.246295] drm_atomic_helper_commit+0x164/0x180
[ 359.250984] drm_atomic_commit+0xa8/0xe0
[ 359.254893] drm_client_modeset_commit_atomic+0x210/0x270
[ 359.260284] drm_client_modeset_commit_locked+0x5c/0x18c
[ 359.265579] drm_client_modeset_commit+0x30/0x60
[ 359.270181] drm_fbdev_client_restore+0x6c/0xc0
[ 359.274705] drm_client_dev_restore+0x80/0xe0
[ 359.279047] drm_lastclose+0x74/0x8c
[ 359.282617] drm_release+0x10c/0x124
[ 359.286179] __fput+0x70/0x250
[ 359.289230] ____fput+0x10/0x20
[ 359.292359] task_work_run+0x80/0xe0
[ 359.295929] do_notify_resume+0x1e0/0x1280
[ 359.300020] el0_svc+0x74/0x84
[ 359.303071] el0t_64_sync_handler+0xf4/0x120
[ 359.307335] el0t_64_sync+0x18c/0x190
[ 359.310984] ---[ end trace 0000000000000000 ]---
[ 359.316570] PANEL: gpiod_set_value 1 (reset)-> Sleep 20ms
[ 359.341194] ------------[ cut here ]------------
[ 359.351199] WARNING: CPU: 0 PID: 371 at drivers/gpio/gpiolib.c:3140 gpiod_set_value+0x5c/0xcc
[ 359.359717] Modules linked in: crct10dif_ce polyval_ce polyval_generic layerscape_edac_mod at24 btnxpuart fuse [last unloaded: goodix_ts]
[ 359.372061] CPU: 0 PID: 371 Comm: modetest Tainted: G W 6.1.36+gd997ba75bc0a #1
[ 359.380741] Hardware name: BOSCH MOP ENG i.MX93 Sirius board (DT)
[ 359.386819] pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 359.393767] pc : gpiod_set_value+0x5c/0xcc
[ 359.397849] lr : ili9881c_prepare+0x94/0x1e8
[ 359.402113] sp : ffff80000b14b8f0
[ 359.405415] x29: ffff80000b14b8f0 x28: ffff0000050366b0 x27: 0000000000000000
[ 359.412539] x26: ffff800009396ad0 x25: ffff8000097619f0 x24: 0000000000000028
[ 359.419663] x23: 00000000ffff98ff x22: 00000000ffffff81 x21: 0000000000000000
[ 359.426787] x20: 0000000000000000 x19: ffff0000042cc430 x18: ffffffffffff7770
[ 359.433912] x17: 0000000000000000 x16: 0000000000000010 x15: 0000000000000038
[ 359.441035] x14: 00000000000003d6 x13: 0000000000000000 x12: 0000000000000000
[ 359.448159] x11: 0000000000000001 x10: 0000000000000a60 x9 : ffff80000b14b7f0
[ 359.455283] x8 : ffff00002fd94000 x7 : ffff000005193200 x6 : 0000000208023479
[ 359.462407] x5 : 00000000410fd050 x4 : 0000000000000000 x3 : 0000000000000000
[ 359.469531] x2 : 0000000000000000 x1 : ffff000004bdad00 x0 : 0000000000000001
[ 359.476656] Call trace:
[ 359.479092] gpiod_set_value+0x5c/0xcc
[ 359.482835] ili9881c_prepare+0x94/0x1e8
[ 359.486744] drm_panel_prepare+0x28/0x40
[ 359.490661] panel_bridge_pre_enable+0x14/0x20
[ 359.495098] drm_atomic_bridge_chain_pre_enable+0x94/0xd0
[ 359.500489] drm_atomic_helper_commit_modeset_enables+0x170/0x26c
[ 359.506573] lcdifv3_drm_atomic_commit_tail+0x30/0x70
[ 359.511617] commit_tail+0xa4/0x190
[ 359.515092] drm_atomic_helper_commit+0x164/0x180
[ 359.519781] drm_atomic_commit+0xa8/0xe0
[ 359.523690] drm_client_modeset_commit_atomic+0x210/0x270
[ 359.529072] drm_client_modeset_commit_locked+0x5c/0x18c
[ 359.534367] drm_client_modeset_commit+0x30/0x60
[ 359.538969] drm_fbdev_client_restore+0x6c/0xc0
[ 359.543484] drm_client_dev_restore+0x80/0xe0
[ 359.547826] drm_lastclose+0x74/0x8c
[ 359.551388] drm_release+0x10c/0x124
[ 359.554950] __fput+0x70/0x250
[ 359.558001] ____fput+0x10/0x20
[ 359.561130] task_work_run+0x80/0xe0
[ 359.564700] do_notify_resume+0x1e0/0x1280
[ 359.568791] el0_svc+0x74/0x84
[ 359.571842] el0t_64_sync_handler+0xf4/0x120
[ 359.576097] el0t_64_sync+0x18c/0x190
[ 359.579747] ---[ end trace 0000000000000000 ]--- Re: Ilitek ILI9881C MIPI LCD Panel issue on i.MX93 Hello, I see that in your test you tried with different clocks, does the issue persist for the different clock values? Also, is there any strange message in logs? Best regards/saludos, Aldo.