[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 18:49:23 PST 2022


On Wed, 2022-03-09 at 13:55 +0800, Hsin-Yi Wang wrote:
> On Tue, Mar 8, 2022 at 6:00 PM Benjamin Gaignard
> <benjamin.gaignard at collabora.com> 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:
> > 
> 
> Hi Xinlei,
> 
> Can you resend this patch to base on the latest rc? This patch no
> longer applies to rc6, I have to resolve conflict locally.
> 
> Thanks
> 
> 
> > [    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/0x2
> > b4
> > [   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

Hey Hsin-yi:

I will send the next version based on rc6 in the near future, thanks
for your suggestion.

Best Regards!
xinlei


More information about the linux-arm-kernel mailing list