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

xinlei.lee xinlei.lee at mediatek.com
Wed Mar 9 19:33:30 PST 2022


On Tue, 2022-03-08 at 11:00 +0100, Benjamin Gaignard wrote:
> Le 08/03/2022 à 10:12, Hsin-Yi Wang a écrit :
> > On Fri, Mar 4, 2022 at 7:25 PM Benjamin Gaignard
> > <benjamin.gaignard at collabora.com> wrote:
> > > 
> > > Le 04/03/2022 à 11:15, xinlei.lee at mediatek.com a écrit :
> > > > From: Xinlei Lee <xinlei.lee at mediatek.com>
> > > > 
> > > > 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 at 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 at 14014000/panel at 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 at 14014000/panel at 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 at 11e50000 failed
> [    3.173068] mediatek-drm mediatek-drm.1.auto: Adding component
> match for /soc/dsi at 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 at lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/linux-mediatek
> > > 
> > > _______________________________________________
> > > Linux-mediatek mailing list
> > > Linux-mediatek at lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/linux-mediatek

Hi Benjamin:

I confirmed with hsin-yi that if she doesn't add these patches, the
screen of tv101 should work normally. My local test can also be
displayed. 
panel-boe-tv101wum-nl6 14014000.dsi.0: failed to write command 1
=>From this log, it can be seen that the initial code issued by the
platform was unsuccessful, and it cannot be ruled out that the panel is
no problem.
It is recommended to grab the latest kukui kernel on google CPFE or try
another platform to test.

Best Regards!
xinlei


More information about the Linux-mediatek mailing list