Hi Douglas Anderson, Poco F1 is one of the main user for this panel. I tested the patch in my Poco F1 running postmarketOS. It works fine. Thank you. The panel itself requires other extra fixes to work properly which I intend to upstream in the upcoming weeks. But your patch doesn't break anything and works as expected. So.
Tested-by: Joel Selvaraj <j...@jsfamily.in> Regards Joel Selvaraj ________________________________________ From: Douglas Anderson <diand...@chromium.org> Sent: 04 May 2024 03:02 To: dri-devel@lists.freedesktop.org; Maxime Ripard Cc: Linus Walleij; Chris Morgan; Yuran Pereira; Neil Armstrong; Douglas Anderson; Sumit Semwal; Benni Steini; Joel Selvaraj; Marijn Suijten; Daniel Vetter; David Airlie; Jessica Zhang; Maarten Lankhorst; Sam Ravnborg; Thomas Zimmermann; linux-ker...@vger.kernel.org Subject: [RFT PATCH v2 18/48] drm/panel: novatek-nt36672a: Stop tracking prepared 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. Cc: Sumit Semwal <sumit.sem...@linaro.org> Cc: Benni Steini <bennistei...@gmail.com> Cc: Joel Selvaraj <j...@jsfamily.in> Cc: Marijn Suijten <marijn.suij...@somainline.org> Signed-off-by: Douglas Anderson <diand...@chromium.org> --- Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c index 3886372415c2..35aace79613a 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c @@ -72,8 +72,6 @@ struct nt36672a_panel { struct regulator_bulk_data supplies[ARRAY_SIZE(nt36672a_regulator_names)]; struct gpio_desc *reset_gpio; - - bool prepared; }; static inline struct nt36672a_panel *to_nt36672a_panel(struct drm_panel *panel) @@ -119,9 +117,6 @@ static int nt36672a_panel_unprepare(struct drm_panel *panel) struct nt36672a_panel *pinfo = to_nt36672a_panel(panel); int ret; - if (!pinfo->prepared) - return 0; - /* send off cmds */ ret = nt36672a_send_cmds(panel, pinfo->desc->off_cmds, pinfo->desc->num_off_cmds); @@ -147,8 +142,6 @@ static int nt36672a_panel_unprepare(struct drm_panel *panel) if (ret < 0) dev_err(panel->dev, "power_off failed ret = %d\n", ret); - pinfo->prepared = false; - return ret; } @@ -179,9 +172,6 @@ static int nt36672a_panel_prepare(struct drm_panel *panel) struct nt36672a_panel *pinfo = to_nt36672a_panel(panel); int err; - if (pinfo->prepared) - return 0; - err = nt36672a_panel_power_on(pinfo); if (err < 0) goto poweroff; @@ -221,8 +211,6 @@ static int nt36672a_panel_prepare(struct drm_panel *panel) msleep(120); - pinfo->prepared = true; - return 0; poweroff: -- 2.45.0.rc1.225.g2a3ae87e7f-goog