Re: [PATCH v2, 0/4] Cooperate with DSI RX devices to modify dsi funcs and delay mipi high to cooperate with panel sequence

From: Benjamin Gaignard
Date: Tue Mar 08 2022 - 05:00:15 EST



Le 08/03/2022 à 10:12, Hsin-Yi Wang a écrit :
On Fri, Mar 4, 2022 at 7:25 PM Benjamin Gaignard
<benjamin.gaignard@xxxxxxxxxxxxx> wrote:

Le 04/03/2022 à 11:15, xinlei.lee@xxxxxxxxxxxx a écrit :
From: Xinlei Lee <xinlei.lee@xxxxxxxxxxxx>

In upstream-v5.8, dsi_enable will operate panel_enable, but this
modification has been moved in v5.9. In order to ensure the timing of
dsi_power_on/off and the timing of pulling up/down the MIPI signal,
the modification of v5.9 is synchronized in this series of patches.
Hello,

I'm trying to debug an issue on mt8183 kukui krane sku176 device.
The problem is that boe-tv101wum-nl6 panel isn't working.
At boot time I can see these logs:
panel-boe-tv101wum-nl6 14014000.dsi.0: failed to write command 1
panel-boe-tv101wum-nl6 14014000.dsi.0: failed to init panel: -62
and a DSI interrupt time out.

Since I believe the problem is link to DSI/panel enabling sequence
I have try this series but that doesn't solve the issue.
I notice that when going out of deep sleep mode panel is functional.

May you have any idea to debug/solve this problem ?

Hi Benjamin,

I think this might not be related to this series. Which kernel are you using?
I tried the krane sku176 with linux-next 5.17-rc6
(519dd6c19986696f59847ff8bf930436ccffd9a1 (tag: next-20220307,
linux-next/master) with or without this series, both can get the display on.

dsi related message:
[ 0.206330] mediatek-drm mediatek-drm.1.auto: Adding component
match for /soc/dsi@14014000
[ 4.567577] panel-boe-tv101wum-nl6 14014000.dsi.0: supply pp3300
not found, using dummy regulator
[ 4.567732] panel-boe-tv101wum-nl6 14014000.dsi.0: GPIO lookup for
consumer enable
[ 4.567738] panel-boe-tv101wum-nl6 14014000.dsi.0: using device
tree for GPIO lookup
[ 4.567757] of_get_named_gpiod_flags: parsed 'enable-gpios'
property of node '/soc/dsi@14014000/panel@0[0]' - status (0)
[ 4.585884] panel-boe-tv101wum-nl6 14014000.dsi.0: supply pp3300
not found, using dummy regulator
[ 4.586037] panel-boe-tv101wum-nl6 14014000.dsi.0: GPIO lookup for
consumer enable
[ 4.586042] panel-boe-tv101wum-nl6 14014000.dsi.0: using device
tree for GPIO lookup
[ 4.586059] of_get_named_gpiod_flags: parsed 'enable-gpios'
property of node '/soc/dsi@14014000/panel@0[0]' - status (0)
[ 4.587430] mediatek-drm mediatek-drm.1.auto: bound 14014000.dsi
(ops 0xffffffd369a752b8)


Maybe some config is not enabled?

I using 5.17.0-rc1-next-20220127 kernel tag.
The configs look similar.

I have the follow log at boot time:

[ 1.533384] phy phy-11e50000.dsi-phy.2: Looking up phy-supply from device tree
[ 1.533402] phy phy-11e50000.dsi-phy.2: Looking up phy-supply property in node /soc/dsi-phy@11e50000 failed
[ 3.173068] mediatek-drm mediatek-drm.1.auto: Adding component match for /soc/dsi@14014000
[ 4.671806] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up avdd-supply from device tree
[ 4.680348] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up avee-supply from device tree
[ 4.688784] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up pp3300-supply from device tree
[ 4.697816] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up pp1800-supply from device tree
[ 4.842346] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up avdd-supply from device tree
[ 4.854573] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up avee-supply from device tree
[ 4.862976] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up pp3300-supply from device tree
[ 4.871568] panel-boe-tv101wum-nl6 14014000.dsi.0: Looking up pp1800-supply from device tree
[ 4.964021] mediatek-drm mediatek-drm.1.auto: bound 14014000.dsi (ops mtk_dsi_component_ops)
...
[ 38.273437] [drm] Wait DSI IRQ(0x00000002) Timeout
[ 38.281584] panel-boe-tv101wum-nl6 14014000.dsi.0: failed to write command 1
[ 38.288651] panel-boe-tv101wum-nl6 14014000.dsi.0: failed to init panel: -62
...
[ 70.113674] mediatek-drm mediatek-drm.1.auto: [drm] *ERROR* flip_done timed out
[ 70.121054] mediatek-drm mediatek-drm.1.auto: [drm] *ERROR* [CRTC:45:crtc-0] commit wait timed out
[ 70.130037] [drm:mtk_drm_crtc_atomic_begin] *ERROR* new event while there is still a pending event
[ 70.241222] ------------[ cut here ]------------
[ 70.245898] [CRTC:45:crtc-0] vblank wait timed out
[ 70.250729] WARNING: CPU: 7 PID: 397 at drivers/gpu/drm/drm_atomic_helper.c:1529 drm_atomic_helper_wait_for_vblanks.part.0+0x290/0x24
[ 70.262815] Modules linked in: hci_uart btqca btbcm bluetooth cdc_ether usbnet r8152 mtk_mdp3 hid_multitouch mtk_jpeg panfrost cros_6
[ 70.309348] CPU: 7 PID: 397 Comm: gnome-shell Tainted: G W 5.17.0-rc1-next-20220127+ #57
[ 70.318731] Hardware name: MediaTek krane sku176 board (DT)
[ 70.324293] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 70.331244] pc : drm_atomic_helper_wait_for_vblanks.part.0+0x290/0x2b4
[ 70.337762] lr : drm_atomic_helper_wait_for_vblanks.part.0+0x290/0x2b4
[ 70.344279] sp : ffff8000092339e0
[ 70.347583] x29: ffff8000092339e0 x28: 0000000000000001 x27: 0000000000000000
[ 70.354713] x26: 0000000000000000 x25: ffffc7e8feee4660 x24: 0000000000000038
[ 70.361842] x23: ffff6fe702b0d000 x22: 0000000000000001 x21: ffff6fe7030d5080
[ 70.368970] x20: ffff6fe709d7d700 x19: 0000000000000000 x18: 0000000000000030
[ 70.376099] x17: 000000040044ffff x16: 00400032b5503510 x15: ffffffffffffffff
[ 70.383227] x14: ffffc7e8ffa99220 x13: 000000000000094b x12: 0000000000000319
[ 70.390354] x11: 6e616c6276205d30 x10: ffffc7e8ffb49220 x9 : 00000000ffffe000
[ 70.397483] x8 : ffffc7e8ffa99220 x7 : 0000000000000001 x6 : 0000000000000000
[ 70.404611] x5 : 0000000000000000 x4 : ffff6fe73b5e4cf8 x3 : ffff6fe73b5f0840
[ 70.411738] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff6fe702f20000
[ 70.418866] Call trace:
[ 70.421301] drm_atomic_helper_wait_for_vblanks.part.0+0x290/0x2b4
[ 70.427472] drm_atomic_helper_commit_tail_rpm+0x88/0xac
[ 70.432775] commit_tail+0xa0/0x17c
[ 70.436254] drm_atomic_helper_commit+0x190/0x3a0
[ 70.440949] drm_atomic_commit+0x5c/0x6c
[ 70.444864] drm_mode_gamma_set_ioctl+0x45c/0x640
[ 70.449560] drm_ioctl_kernel+0xc4/0x174
[ 70.453475] drm_ioctl+0x238/0x45c
[ 70.456868] __arm64_sys_ioctl+0xac/0xf0
[ 70.460786] invoke_syscall+0x48/0x114
[ 70.464529] el0_svc_common.constprop.0+0x60/0x11c
[ 70.469312] do_el0_svc+0x28/0x90
[ 70.472619] el0_svc+0x4c/0x100
[ 70.475754] el0t_64_sync_handler+0xec/0xf0
[ 70.479928] el0t_64_sync+0x1a0/0x1a4
[ 70.483582] irq event stamp: 0
[ 70.486625] hardirqs last enabled at (0): [<0000000000000000>] 0x0
[ 70.492883] hardirqs last disabled at (0): [<ffffc7e8fd49383c>] copy_process+0x658/0x197c
[ 70.501053] softirqs last enabled at (0): [<ffffc7e8fd49383c>] copy_process+0x658/0x197c
[ 70.509219] softirqs last disabled at (0): [<0000000000000000>] 0x0
[ 70.515475] ---[ end trace 0000000000000000 ]---

Regards,
Benjamin




Regards,
Benjamin

Changes since v1:
1. Dsi sequence marked with patch adjustment
2. Fixes: mtk_dsi: Use the drm_panel_bridge

Jitao Shi (3):
drm/mediatek: Adjust the timing of mipi signal from LP00 to LP11
drm/mediatek: Separate poweron/poweroff from enable/disable and define
new funcs
drm/mediatek: keep dsi as LP00 before dcs cmds transfer

Xinlei Lee (1):
drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff
function

drivers/gpu/drm/mediatek/mtk_dsi.c | 73 ++++++++++++++++++++----------
1 file changed, 49 insertions(+), 24 deletions(-)

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-mediatek

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-mediatek