All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFT PATCH v2 00/48] drm/panel: Remove most store/double-check of prepared/enabled state
@ 2024-05-03 21:32 ` Douglas Anderson
  0 siblings, 0 replies; 85+ messages in thread
From: Douglas Anderson @ 2024-05-03 21:32 UTC (permalink / raw)
  To: dri-devel, Maxime Ripard
  Cc: Linus Walleij, Chris Morgan, Yuran Pereira, Neil Armstrong,
	Douglas Anderson, AngeloGioacchino Del Regno, Daniel Vetter,
	David Airlie, Guido Günther, Jerry Han, Jessica Zhang,
	Jonathan Corbet, Maarten Lankhorst, Matthias Brugger,
	Ondrej Jirman, Purism Kernel Team, Robert Chiras, Sam Ravnborg,
	Stefan Mavrodiev, Sumit Semwal, Thomas Zimmermann,
	linux-arm-kernel, linux-doc, linux-kernel, linux-mediatek


As talked about in commit d2aacaf07395 ("drm/panel: Check for already
prepared/enabled in drm_panel"), we want to remove needless code from
panel drivers that was storing and double-checking the
prepared/enabled state. Even if someone was relying on the
double-check before, that double-check is now in the core and not
needed in individual drivers.

This series attempts to do just that. While the original grep, AKA:
  git grep 'if.*>prepared' -- drivers/gpu/drm/panel
  git grep 'if.*>enabled' -- drivers/gpu/drm/panel
...still produces a few hits after my series, they are _mostly_ all
gone. The ones that are left are less trivial to fix.

One of the main reasons that many panels probably needed to store and
double-check their prepared/enabled appears to have been to handle
shutdown and/or remove. Panels drivers often wanted to force the power
off for panels in these cases and this was a good reason for the
double-check.

In response to my V1 series [1] we had much discussion of what to
do. The conclusion was that as long as DRM modeset drivers properly
called drm_atomic_helper_shutdown() that we should be able to remove
the explicit shutdown/remove handling in the panel drivers. Most of
the patches to improve DRM modeset drivers [2] [3] [4] have now
landed.

In contrast to my V1 series, I broke the V2 series up a lot
more. Since a few of the panel drivers in V1 already landed, we had
fewer total drivers and so we could devote a patch to each panel.
Also, since we were now relying on DRM modeset drivers I felt like we
should split the patches for each panel into two: one that's
definitely safe and one that could be reverted if we found a
problematic DRM modeset driver that we couldn't fix.

Sorry for the large number of patches. I've set things to mostly just
CC people on the cover letter and the patches that are relevant to
them. I've tried to CC people on the whole series that have shown
interest in this TODO item.

As patches in this series are reviewed and/or tested they could be
landed. There's really no ordering requirement for the series unless
patches touch the same driver.

NOTE: this touches _a lot_ of drivers, is repetitive, and is not
really possible to generate automatically. That means it's entirely
possible that my eyes glazed over and I did something wrong. Please
double-check me and don't assume that I got everything perfect, though
I did my best. I have at least confirmed that "allmodconfig" for arm64
doesn't fall on its face with this series. I haven't done a ton of
other testing.

[1] https://lore.kernel.org/r/20230804140605.RFC.4.I930069a32baab6faf46d6b234f89613b5cec0f14@changeid
[2] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org
[3] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org
[4] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org

Changes in v2:
- ("drm/panel: raydium-rm692e5: Stop tracking prepared") new for v2.
- Only handle 1 panel per patch.
- Split removal of prepared/enabled from handling of remove/shutdown.
- panel-edp and panel-simple just get a comment now.

Douglas Anderson (48):
  drm/panel: raydium-rm692e5: Stop tracking prepared
  drm/panel: boe-himax8279d: Stop tracking prepared/enabled
  drm/panel: boe-himax8279d: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: boe-tv101wum-nl6: Stop tracking prepared
  drm/panel: boe-tv101wum-nl6: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: edp: Stop tracking prepared/enabled
  drm/panel: edp: Add a comment about unprepare+disable at
    shutdown/remove
  drm/panel: innolux-p079zca: Stop tracking prepared/enabled
  drm/panel: innolux-p079zca: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: khadas-ts050: Stop tracking prepared/enabled
  drm/panel: khadas-ts050: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: kingdisplay-kd097d04: Stop tracking prepared/enabled
  drm/panel: kingdisplay-kd097d04: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: ltk050h3146w: Stop tracking prepared
  drm/panel: ltk050h3146w: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: ltk500hd1829: Stop tracking prepared
  drm/panel: ltk500hd1829: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: novatek-nt36672a: Stop tracking prepared
  drm/panel: novatek-nt36672a: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: olimex-lcd-olinuxino: Stop tracking prepared/enabled
  drm/panel: olimex-lcd-olinuxino: Don't call unprepare+disable at
    remove
  drm/panel: osd-osd101t2587-53ts: Stop tracking prepared/enabled
  drm/panel: osd-osd101t2587-53ts: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: samsung-atna33xc20: Stop tracking prepared/enabled
  drm/panel: samsung-atna33xc20: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: simple: Stop tracking prepared/enabled
  drm/panel: simple: Add a comment about unprepare+disable at
    shutdown/remove
  drm/panel: tdo-tl070wsh30: Stop tracking prepared
  drm/panel: tdo-tl070wsh30: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: xinpeng-xpp055c272: Stop tracking prepared
  drm/panel: xinpeng-xpp055c272: Don't call unprepare+disable at
    shutdown/remove
  drm/panel: jdi-lt070me05000: Stop tracking prepared/enabled
  drm/panel: jdi-lt070me05000: Don't call disable at shutdown/remove
  drm/panel: panasonic-vvx10f034n00: Stop tracking prepared/enabled
  drm/panel: panasonic-vvx10f034n00: Don't call disable at
    shutdown/remove
  drm/panel: seiko-43wvf1g: Stop tracking prepared/enabled
  drm/panel: seiko-43wvf1g: Don't call disable at shutdown/remove
  drm/panel: sharp-lq101r1sx01: Stop tracking prepared/enabled
  drm/panel: sharp-lq101r1sx01: Don't call disable at shutdown/remove
  drm/panel: sharp-ls043t1le01: Stop tracking prepared
  drm/panel: sharp-ls043t1le01: Don't call disable at shutdown/remove
  drm/panel: sitronix-st7703: Stop tracking prepared
  drm/panel: sitronix-st7703: Don't call disable at shutdown/remove
  drm/panel: raydium-rm67191: Stop tracking enabled
  drm/panel: raydium-rm67191: Don't call unprepare+disable at shutdown
  drm/panel: sony-acx565akm: Don't double-check enabled state in disable
  drm/panel: sony-acx565akm: Don't call disable at remove
  drm/panel: Update TODO list item for cleaning up prepared/enabled
    tracking

 Documentation/gpu/todo.rst                    | 47 +++++++-------
 drivers/gpu/drm/panel/panel-boe-himax8279d.c  | 40 ------------
 .../gpu/drm/panel/panel-boe-tv101wum-nl6.c    | 23 -------
 drivers/gpu/drm/panel/panel-edp.c             | 60 +++++++-----------
 drivers/gpu/drm/panel/panel-innolux-p079zca.c | 55 ----------------
 .../gpu/drm/panel/panel-jdi-lt070me05000.c    | 35 -----------
 drivers/gpu/drm/panel/panel-khadas-ts050.c    | 39 ------------
 .../drm/panel/panel-kingdisplay-kd097d04.c    | 48 --------------
 .../drm/panel/panel-leadtek-ltk050h3146w.c    | 28 ---------
 .../drm/panel/panel-leadtek-ltk500hd1829.c    | 28 ---------
 .../gpu/drm/panel/panel-novatek-nt36672a.c    | 29 ---------
 .../drm/panel/panel-olimex-lcd-olinuxino.c    | 44 -------------
 .../drm/panel/panel-osd-osd101t2587-53ts.c    | 41 +-----------
 .../drm/panel/panel-panasonic-vvx10f034n00.c  | 47 +-------------
 drivers/gpu/drm/panel/panel-raydium-rm67191.c | 26 --------
 drivers/gpu/drm/panel/panel-raydium-rm692e5.c | 10 ---
 .../gpu/drm/panel/panel-samsung-atna33xc20.c  | 36 -----------
 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c   | 49 ---------------
 .../gpu/drm/panel/panel-sharp-lq101r1sx01.c   | 63 +------------------
 .../gpu/drm/panel/panel-sharp-ls043t1le01.c   | 24 -------
 drivers/gpu/drm/panel/panel-simple.c          | 60 +++++++-----------
 drivers/gpu/drm/panel/panel-sitronix-st7703.c | 35 +++--------
 drivers/gpu/drm/panel/panel-sony-acx565akm.c  |  6 --
 drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c  | 23 -------
 .../gpu/drm/panel/panel-xinpeng-xpp055c272.c  | 28 ---------
 25 files changed, 83 insertions(+), 841 deletions(-)

-- 
2.45.0.rc1.225.g2a3ae87e7f-goog


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

end of thread, other threads:[~2024-05-28 20:15 UTC | newest]

Thread overview: 85+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-03 21:32 [RFT PATCH v2 00/48] drm/panel: Remove most store/double-check of prepared/enabled state Douglas Anderson
2024-05-03 21:32 ` Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 01/48] drm/panel: raydium-rm692e5: Stop tracking prepared Douglas Anderson
2024-05-10  6:39   ` Luca Weiss
2024-05-03 21:32 ` [RFT PATCH v2 02/48] drm/panel: boe-himax8279d: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:32   ` Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 03/48] drm/panel: boe-himax8279d: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:32   ` Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 04/48] drm/panel: boe-tv101wum-nl6: Stop tracking prepared Douglas Anderson
2024-05-03 21:32   ` Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 05/48] drm/panel: boe-tv101wum-nl6: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:32   ` Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 06/48] drm/panel: edp: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 07/48] drm/panel: edp: Add a comment about unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 08/48] drm/panel: innolux-p079zca: Stop tracking prepared/enabled Douglas Anderson
2024-05-06 16:28   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 09/48] drm/panel: innolux-p079zca: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-06 16:29   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 10/48] drm/panel: khadas-ts050: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 11/48] drm/panel: khadas-ts050: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:32 ` [RFT PATCH v2 12/48] drm/panel: kingdisplay-kd097d04: Stop tracking prepared/enabled Douglas Anderson
2024-05-06 16:29   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 13/48] drm/panel: kingdisplay-kd097d04: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-06 16:29   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 14/48] drm/panel: ltk050h3146w: Stop tracking prepared Douglas Anderson
2024-05-06 11:17   ` Quentin Schulz
2024-05-06 16:26   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 15/48] drm/panel: ltk050h3146w: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-06 14:04   ` Quentin Schulz
2024-05-06 15:17     ` Doug Anderson
2024-05-06 16:21   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 16/48] drm/panel: ltk500hd1829: Stop tracking prepared Douglas Anderson
2024-05-06 16:30   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 17/48] drm/panel: ltk500hd1829: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-06 16:30   ` Heiko Stübner
2024-05-03 21:32 ` [RFT PATCH v2 18/48] drm/panel: novatek-nt36672a: Stop tracking prepared Douglas Anderson
2024-05-04 23:58   ` Joel Selvaraj
2024-05-03 21:33 ` [RFT PATCH v2 19/48] drm/panel: novatek-nt36672a: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-04 23:58   ` Joel Selvaraj
2024-05-05  0:10     ` Joel Selvaraj
2024-05-03 21:33 ` [RFT PATCH v2 20/48] drm/panel: olimex-lcd-olinuxino: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 21/48] drm/panel: olimex-lcd-olinuxino: Don't call unprepare+disable at remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 22/48] drm/panel: osd-osd101t2587-53ts: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 23/48] drm/panel: osd-osd101t2587-53ts: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 24/48] drm/panel: samsung-atna33xc20: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 25/48] drm/panel: samsung-atna33xc20: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 26/48] drm/panel: simple: Stop tracking prepared/enabled Douglas Anderson
2024-05-18 13:20   ` [RFT,v2,26/48] " Sui Jingfeng
2024-05-03 21:33 ` [RFT PATCH v2 27/48] drm/panel: simple: Add a comment about unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 28/48] drm/panel: tdo-tl070wsh30: Stop tracking prepared Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 29/48] drm/panel: tdo-tl070wsh30: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 30/48] drm/panel: xinpeng-xpp055c272: Stop tracking prepared Douglas Anderson
2024-05-06 16:30   ` Heiko Stübner
2024-05-03 21:33 ` [RFT PATCH v2 31/48] drm/panel: xinpeng-xpp055c272: Don't call unprepare+disable at shutdown/remove Douglas Anderson
2024-05-06 16:31   ` Heiko Stübner
2024-05-03 21:33 ` [RFT PATCH v2 32/48] drm/panel: jdi-lt070me05000: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 33/48] drm/panel: jdi-lt070me05000: Don't call disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 34/48] drm/panel: panasonic-vvx10f034n00: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 35/48] drm/panel: panasonic-vvx10f034n00: Don't call disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 36/48] drm/panel: seiko-43wvf1g: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 37/48] drm/panel: seiko-43wvf1g: Don't call disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 38/48] drm/panel: sharp-lq101r1sx01: Stop tracking prepared/enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 39/48] drm/panel: sharp-lq101r1sx01: Don't call disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 40/48] drm/panel: sharp-ls043t1le01: Stop tracking prepared Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 41/48] drm/panel: sharp-ls043t1le01: Don't call disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 42/48] drm/panel: sitronix-st7703: Stop tracking prepared Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 43/48] drm/panel: sitronix-st7703: Don't call disable at shutdown/remove Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 44/48] drm/panel: raydium-rm67191: Stop tracking enabled Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 45/48] drm/panel: raydium-rm67191: Don't call unprepare+disable at shutdown Douglas Anderson
2024-05-03 21:33 ` [RFT PATCH v2 46/48] drm/panel: sony-acx565akm: Don't double-check enabled state in disable Douglas Anderson
2024-05-06  6:49   ` Linus Walleij
2024-05-03 21:33 ` [RFT PATCH v2 47/48] drm/panel: sony-acx565akm: Don't call disable at remove Douglas Anderson
2024-05-06  6:49   ` Linus Walleij
2024-05-06  6:49   ` Linus Walleij
2024-05-03 21:33 ` [RFT PATCH v2 48/48] drm/panel: Update TODO list item for cleaning up prepared/enabled tracking Douglas Anderson
2024-05-06  6:52 ` [RFT PATCH v2 00/48] drm/panel: Remove most store/double-check of prepared/enabled state Linus Walleij
2024-05-06  6:52   ` Linus Walleij
2024-05-06  7:17   ` Ondřej Jirman
2024-05-06  7:17     ` Ondřej Jirman
2024-05-08 21:14   ` Doug Anderson
2024-05-08 21:14     ` Doug Anderson
2024-05-28 20:14     ` Doug Anderson
2024-05-28 20:14       ` Doug Anderson
2024-05-06  7:27 ` Maxime Ripard
2024-05-06  7:27   ` Maxime Ripard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.