dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] drm: panel: Fix atomic helper-induced regressions
@ 2025-10-26 17:39 Linus Walleij
  2025-10-26 17:40 ` [PATCH v2 1/4] drm: panel: nt355510: Move DSI commands to enable/disable Linus Walleij
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Linus Walleij @ 2025-10-26 17:39 UTC (permalink / raw)
  To: Aradhya Bhatia, Stefan Hansson, Neil Armstrong, Jessica Zhang,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Simona Vetter, Dmitry Baryshkov, Tomi Valkeinen, dri-devel
  Cc: Linus Walleij

commit c9b1150a68d9362a0827609fc0dc1664c0d8bfe1
"drm/atomic-helper: Re-order bridge chain pre-enable and post-disable"
caused a series of regressions in all panels that send
DSI commands in their .prepare() and .unprepare()
callbacks.

As the CRTC is no longer online at bridge_pre_enable()
and gone at brige_post_disable() which maps to the panel
bridge .prepare()/.unprepare() callbacks, any CRTC that
enable/disable the DSI transmitter in it's enable/disable
callbacks will be unable to send any DSI commands in the
.prepare() and .unprepare() callbacks.

This is also evident from device trees with the DSI
inside the CRTC such as this:

mcde@a0350000 {
   status = "okay";
   pinctrl-names = "default";
   pinctrl-0 = <&dsi_default_mode>;

   dsi@a0351000 {
     panel {
       compatible = "hydis,hva40wv1", "novatek,nt35510";
       reg = <0>;
       vdd-supply = <&ab8500_ldo_aux4_reg>;
       vddi-supply = <&ab8500_ldo_aux6_reg>;
    };
  };
};

The panel is inside the DSI which is inside the CRTC
(MCDE).

This is in a way natural, so let's just fix it in all
affected panel drivers that I know of and can test.
Mostly Ux500 phones, and only those with the display
directly on DSI (not e.g. using DPI and SPI).

Other panel drivers may be affected.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Fix half-baked NT35510 patch that was still sending init commands
  in the prepare() callback.
- Link to v1: https://lore.kernel.org/r/20251023-fix-mcde-drm-regression-v1-0-ed9a925db8c7@linaro.org

---
Linus Walleij (4):
      drm: panel: nt355510: Move DSI commands to enable/disable
      drm: panel: s6d16d0: Move DSI commands to enable/disable
      drm: panel: nt35560: Move DSI commands to enable/disable
      drm: panel: s6e63m0: Move DSI commands to enable/disable

 drivers/gpu/drm/panel/panel-novatek-nt35510.c | 31 +++++++++++++++++++-----
 drivers/gpu/drm/panel/panel-novatek-nt35560.c | 24 ++++++++++++------
 drivers/gpu/drm/panel/panel-samsung-s6d16d0.c | 35 ++++++++++++---------------
 drivers/gpu/drm/panel/panel-samsung-s6e63m0.c | 31 +++++++++---------------
 4 files changed, 70 insertions(+), 51 deletions(-)
---
base-commit: 6548d364a3e850326831799d7e3ea2d7bb97ba08
change-id: 20251022-fix-mcde-drm-regression-c9ac0cc20bae

Best regards,
-- 
Linus Walleij <linus.walleij@linaro.org>


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-11-04 14:36 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-26 17:39 [PATCH v2 0/4] drm: panel: Fix atomic helper-induced regressions Linus Walleij
2025-10-26 17:40 ` [PATCH v2 1/4] drm: panel: nt355510: Move DSI commands to enable/disable Linus Walleij
2025-10-26 17:40 ` [PATCH v2 2/4] drm: panel: s6d16d0: " Linus Walleij
2025-10-26 17:40 ` [PATCH v2 3/4] drm: panel: nt35560: " Linus Walleij
2025-10-26 17:40 ` [PATCH v2 4/4] drm: panel: s6e63m0: " Linus Walleij
2025-10-28 10:32 ` [PATCH v2 0/4] drm: panel: Fix atomic helper-induced regressions Tomi Valkeinen
2025-10-28 14:27   ` Linus Walleij
2025-10-28 15:13     ` Tomi Valkeinen
2025-11-04 14:36       ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).