On 10/1/26 02:49, Hsieh Hung-En wrote:
If rb070d30_panel_disable() returns an error, drm_panel_disable() skips
clearing panel->enabled. unprepare() still powers the panel off, but the
next drm_panel_enable() sees the panel as already enabled and does
nothing, so the panel stays dark.
Always return 0 from disable(). A failed ENTER_SLEEP_MODE is still logged
by mipi_dsi_dcs_enter_sleep_mode_multi().
Suggested-by: Douglas Anderson <[email protected]>
Signed-off-by: Hsieh Hung-En <[email protected]>
---
Notes:
Changes in v2:
- Add a comment explaining why the error is ignored (Doug)
This applies on top of:
https://lore.kernel.org/all/[email protected]/
v1:
https://lore.kernel.org/all/[email protected]/
Compile-tested on arm64 with W=1; not tested on hardware.
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
index ebe6352db..9adf97aba 100644
--- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
+++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
@@ -87,7 +87,13 @@ static int rb070d30_panel_disable(struct drm_panel *panel)
struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi };
mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx);
- return dsi_ctx.accum_err;
+
+ /*
+ * Returning an error would leave panel->enabled set, causing the
+ * next enable to be skipped even after unprepare powers off the panel.
+ * The helper above already logs any command failure.
+ */
+ return 0;
}
/* Default timings */
Reviewed-by: Neil Armstrong <[email protected]>
Thanks,
Neil