]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/panel: himax-hx8394: Handle errors from mipi_dsi_dcs_set_display_on() better
authorDouglas Anderson <dianders@chromium.org>
Fri, 17 May 2024 21:36:36 +0000 (14:36 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 3 Aug 2024 06:59:50 +0000 (08:59 +0200)
[ Upstream commit cc2db2ef8d9eebc0df03808ac0dadbdb96733499 ]

If mipi_dsi_dcs_set_display_on() returned an error then we'd store
that in the "ret" variable and jump to error handling. We'd then
attempt an orderly poweroff. Unfortunately we then blew away the value
stored in "ret". That means that if the orderly poweroff actually
worked then we're return 0 (no error) from hx8394_enable() even though
the panel wasn't enabled.

Fix this by not blowing away "ret".

Found by code inspection.

Fixes: 65dc9360f741 ("drm: panel: Add Himax HX8394 panel controller driver")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20240517143643.1.I0a6836fffd8d7620f353becb3df2370d2898f803@changeid
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240517143643.1.I0a6836fffd8d7620f353becb3df2370d2898f803@changeid
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/panel/panel-himax-hx8394.c

index ff0dc08b98297a30739ace085e3d4617e6a0b3e7..cb9f46e853de47fbb1474df7bae0939b2789531d 100644 (file)
@@ -370,8 +370,7 @@ static int hx8394_enable(struct drm_panel *panel)
 
 sleep_in:
        /* This will probably fail, but let's try orderly power off anyway. */
-       ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
-       if (!ret)
+       if (!mipi_dsi_dcs_enter_sleep_mode(dsi))
                msleep(50);
 
        return ret;