I am integrating the dsi display st7701 with imx8mm.
my dts node panel@0
{ compatible = "techstar,ts8550b", "sitronix,st7701";
reg = <0>;
pinctrl-0 = <&pinctrl_mipi_dsi_en>;
reset-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
dsi-lanes = <2>;
video-mode = <2>; /* 0: burst mode
* 1: non-burst mode with sync event
* 2: non-burst mode with sync pulse
* 3: command mode */
panel-width-mm = <68>;
panel-height-mm = <121>;
status = "okay";
};
my driver code panel-sitronix-st7701.c and kernel version is 5.15
when i am using default setting, getting the error like
[ 14.046955] imx_sec_dsim_drv 32e10000.mipi_dsi: wait rx done time out
[ 14.430905] imx_sec_dsim_drv 32e10000.mipi_dsi: wait payload tx done time out after this
i followed this below link
https://community.nxp.com/t5/i-MX-Processors/iMX8MP-MIPI-DSI-Commands-Timing-Out/m-p/1703214
after i move init_sequence function to enable function i am not getting any error but tpg is working but stream is not working
Note : why kernel is not supporting st7701 with imx8mm?
I have seen many links on nxp but most of them got same error but i cannot able to find the solution?
should we need to change the init_sequence? if we did how can i change the register setting and all?
I have followed these links but did not find any solution
https://community.nxp.com/t5/i-MX-Processors/sitronix-st7701-panel-issue-with-kernel-5-15-71-kirksto...
https://community.nxp.com/t5/i-MX-Processors/integration-of-sitronix-st7701-MIPI-DSI-in-u-boot-i-MX8...
the output i am getting this related to this post
https://community.nxp.com/t5/i-MX-Processors/i-MX6-MIPI-DSI-Display-ST7701-controller/m-p/839536
https://community.nxp.com/t5/i-MX-Processors/how-to-add-a-new-panel-with-imx8mm-evk-I-got-some-probl...
Hi @Priyanshi
I am not getting any error on systemctl or weston
Whenever i tried on default or this driver code https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/panel/panel-sitronix-st7701.c
it stucks here
------------[ cut here ]------------
[ 41.403898] WARNING: CPU: 0 PID: 87 at drivers/reset/core.c:765 __reset_control_get_internal+0x68/0x160
[ 41.403916] Modules linked in:
[ 41.403925] CPU: 0 PID: 87 Comm: kworker/u8:1 Not tainted 5.15.48+gb6597629c15c #1
[ 41.403931] Hardware name: FSL i.MX8MM EVK board (DT)
[ 41.403936] Workqueue: events_unbound deferred_probe_work_func
[ 41.403948] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 41.403954] pc : __reset_control_get_internal+0x68/0x160
[ 41.403959] lr : __of_reset_control_get+0x16c/0x1d0
[ 41.403964] sp : ffff80000a273990
[ 41.403966] x29: ffff80000a273990 x28: ffff000055c096b8 x27: ffff000004d99838
[ 41.403976] x26: 0000000000000001 x25: 0000000000000000 x24: 0000000000000001
[ 41.403983] x23: 0000000000000000 x22: ffff0000049f0580 x21: 0000000000000005
[ 41.403992] x20: ffff0000049f05a0 x19: ffff0000043cb200 x18: ffffffffffffffff
[ 41.404005] x17: 73203220746e656d x16: 67657320746b6d20 x15: ffff000004d9950a
[ 41.404015] x14: ffffffffffffffff x13: 0000000000000018 x12: 0101010101010101
[ 41.404022] x11: 0000000000000010 x10: 0101010101010101 x9 : 0000000000000000
[ 41.404032] x8 : 7f7f7f7f7f7f7f7f x7 : 2c6c766f21ff726b x6 : 0000802370771f48
[ 41.404043] x5 : fffffbfffdc0a178 x4 : 0000000000000000 x3 : 0000000000000001
[ 41.404052] x2 : 0000000000000005 x1 : 0000000000000005 x0 : 0000000000000000
[ 41.404062] Call trace:
[ 41.404065] __reset_control_get_internal+0x68/0x160
[ 41.404071] __of_reset_control_get+0x16c/0x1d0
[ 41.404075] of_reset_control_array_get+0xb0/0x240
[ 41.404082] imx_sec_dsim_probe+0x21c/0x310
[ 41.404088] platform_probe+0x6c/0xe0
[ 41.404093] really_probe.part.0+0x9c/0x310
[ 41.404101] __driver_probe_device+0x98/0x144
[ 41.404109] driver_probe_device+0xc8/0x15c
[ 41.404117] __device_attach_driver+0xb8/0x120
[ 41.404125] bus_for_each_drv+0x78/0xd0
[ 41.404132] __device_attach+0xa8/0x1c0
[ 41.404140] device_initial_probe+0x18/0x24
[ 41.404148] bus_probe_device+0xa0/0xac
[ 41.404155] deferred_probe_work_func+0x80/0xc0
[ 41.404163] process_one_work+0x1d0/0x354
[ 41.404172] worker_thread+0x2c0/0x470
[ 41.404180] kthread+0x154/0x160
[ 41.404187] ret_from_fork+0x10/0x20
[ 41.404194] ---[ end trace 54f4231683195b75 ]---
[ 41.404226] ------------[ cut here ]------------
[ 41.404228] WARNING: CPU: 0 PID: 87 at drivers/reset/core.c:765 __reset_control_get_internal+0x68/0x160
[ 41.404235] Modules linked in:
[ 41.404238] CPU: 0 PID: 87 Comm: kworker/u8:1 Tainted: G W 5.15.48+gb6597629c15c #1
[ 41.404243] Hardware name: FSL i.MX8MM EVK board (DT)
[ 41.404246] Workqueue: events_unbound deferred_probe_work_func
[ 41.404255] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 41.404260] pc : __reset_control_get_internal+0x68/0x160
[ 41.404267] lr : __of_reset_control_get+0x16c/0x1d0
[ 41.404271] sp : ffff80000a273990
[ 41.404273] x29: ffff80000a273990 x28: ffff000055c098e0 x27: ffff000004d99838
[ 41.404283] x26: 0000000000000001 x25: 0000000000000000 x24: 0000000000000001
[ 41.404292] x23: 0000000000000000 x22: ffff0000049f0c80 x21: 0000000000000009
[ 41.404302] x20: ffff0000049f0ca0 x19: ffff0000043cb400 x18: ffffffffffffffff
[ 41.404312] x17: 73203220746e656d x16: 67657320746b6d20 x15: ffff000004d9950a
[ 41.404323] x14: ffffffffffffffff x13: 0000000000000018 x12: 0101010101010101
[ 41.404331] x11: 0000000000000010 x10: 0101010101010101 x9 : 0000000000000000
[ 41.404341] x8 : 7f7f7f7f7f7f7f7f x7 : 2c6c766f21ff726b x6 : 0000802370771f48
[ 41.404350] x5 : fffffbfffdc0a1c0 x4 : 0000000000000000 x3 : 0000000000000001
[ 41.404361] x2 : 0000000000000009 x1 : 0000000000000009 x0 : 0000000000000000
[ 41.404368] Call trace:
[ 41.404372] __reset_control_get_internal+0x68/0x160
[ 41.404379] __of_reset_control_get+0x16c/0x1d0
[ 41.404386] of_reset_control_array_get+0xb0/0x240
[ 41.404390] imx_sec_dsim_probe+0x21c/0x310
[ 41.404394] platform_probe+0x6c/0xe0
[ 41.404401] really_probe.part.0+0x9c/0x310
[ 41.404409] __driver_probe_device+0x98/0x144
[ 41.404416] driver_probe_device+0xc8/0x15c
[ 41.404424] __device_attach_driver+0xb8/0x120
[ 41.404433] bus_for_each_drv+0x78/0xd0
[ 41.404440] __device_attach+0xa8/0x1c0
[ 41.404447] device_initial_probe+0x18/0x24
[ 41.404455] bus_probe_device+0xa0/0xac
[ 41.404462] deferred_probe_work_func+0x80/0xc0
[ 41.404470] process_one_work+0x1d0/0x354
[ 41.404476] worker_thread+0x2c0/0x470
[ 41.404484] kthread+0x154/0x160
[ 41.404489] ret_from_fork+0x10/0x20
[ 41.404494] ---[ end trace 54f4231683195b76 ]---
[ 41.404522] ------------[ cut here ]------------
[ 41.404524] WARNING: CPU: 0 PID: 87 at drivers/reset/core.c:765 __reset_control_get_internal+0x68/0x160
[ 41.404532] Modules linked in:
[ 41.404535] CPU: 0 PID: 87 Comm: kworker/u8:1 Tainted: G W 5.15.48+gb6597629c15c #1
[ 41.404541] Hardware name: FSL i.MX8MM EVK board (DT)
[ 41.404544] Workqueue: events_unbound deferred_probe_work_func
[ 41.404551] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 41.404558] pc : __reset_control_get_internal+0x68/0x160
[ 41.404565] lr : __of_reset_control_get+0x16c/0x1d0
[ 41.404569] sp : ffff80000a273990
[ 41.404571] x29: ffff80000a273990 x28: ffff000055c09b08 x27: ffff000004d99838
[ 41.404581] x26: 0000000000000001 x25: 0000000000000000 x24: 0000000000000001
[ 41.404590] x23: 0000000000000000 x22: ffff0000049f1380 x21: 0000000000000001
[ 41.404600] x20: ffff0000049f13a0 x19: ffff0000043cb180 x18: ffffffffffffffff
[ 41.404610] x17: 73203220746e656d x16: 67657320746b6d20 x15: ffff000004d9950a
[ 41.404621] x14: ffffffffffffffff x13: 0000000000000018 x12: 0101010101010101
[ 41.404631] x11: 0000000000000010 x10: 0101010101010101 x9 : 0000000000000000
[ 41.404640] x8 : 7f7f7f7f7f7f7f7f x7 : 2c6c766f21ff726b x6 : 0000802370771f48
[ 41.404650] x5 : fffffbfffdc0a210 x4 : 0000000000000000 x3 : 0000000000000001
[ 41.404661] x2 : 0000000000000001 x1 : 0000000000000001 x0 : 0000000000000000
[ 41.404670] Call trace:
[ 41.404672] __reset_control_get_internal+0x68/0x160
[ 41.404679] __of_reset_control_get+0x16c/0x1d0
[ 41.404683] of_reset_control_array_get+0xb0/0x240
[ 41.404688] imx_sec_dsim_probe+0x21c/0x310
[ 41.404692] platform_probe+0x6c/0xe0
[ 41.404698] really_probe.part.0+0x9c/0x310
[ 41.404707] __driver_probe_device+0x98/0x144
[ 41.404714] driver_probe_device+0xc8/0x15c
[ 41.404722] __device_attach_driver+0xb8/0x120
[ 41.404730] bus_for_each_drv+0x78/0xd0
[ 41.404737] __device_attach+0xa8/0x1c0
[ 41.404744] device_initial_probe+0x18/0x24
[ 41.404752] bus_probe_device+0xa0/0xac
[ 41.404759] deferred_probe_work_func+0x80/0xc0
[ 41.404767] process_one_work+0x1d0/0x354
[ 41.404775] worker_thread+0x2c0/0x470
[ 41.404783] kthread+0x154/0x160
[ 41.404788] ret_from_fork+0x10/0x20
[ 41.404794] ---[ end trace 54f4231683195b77 ]---
[ 41.404800] imx_sec_dsim_drv 32e10000.mipi_dsi: no invalid reset control exists
[ 41.404889] imx_sec_dsim_drv: probe of 32e10000.mipi_dsi failed with error -22
Where i am missing?
st7701 isn't nxp official support display, we don't have this panel to test or reproduce customer issue on nxp board, so it's hard to offer a simple patch, need customer porting by themselves based on rm67191 panel, you can refer to the rm67191 code, but for the init or reset, timing parts, you need to change according to your panel spec, I attached the application note, you need measure if your timing is meets the spec or not, check the esc clock, pixel clock, byte clock, this issue should be related to the timing issue