]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Sun, 17 Mar 2024 15:48:39 +0000 (17:48 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Jul 2024 07:08:27 +0000 (09:08 +0200)
[ Upstream commit ee7860cd8b5763017f8dc785c2851fecb7a0c565 ]

The ilitek-ili9881c controls the reset GPIO using the non-sleeping
gpiod_set_value() function. This complains loudly when the GPIO
controller needs to sleep. As the caller can sleep, use
gpiod_set_value_cansleep() to fix the issue.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240317154839.21260-1-laurent.pinchart@ideasonboard.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240317154839.21260-1-laurent.pinchart@ideasonboard.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c

index e8789e460a169e3e206245a5c35e5a34fd406bb0..58daabb480737e96cf956f0b20fe97f543c111bb 100644 (file)
@@ -307,10 +307,10 @@ static int ili9881c_prepare(struct drm_panel *panel)
        msleep(5);
 
        /* And reset it */
-       gpiod_set_value(ctx->reset, 1);
+       gpiod_set_value_cansleep(ctx->reset, 1);
        msleep(20);
 
-       gpiod_set_value(ctx->reset, 0);
+       gpiod_set_value_cansleep(ctx->reset, 0);
        msleep(20);
 
        for (i = 0; i < ARRAY_SIZE(ili9881c_init); i++) {
@@ -367,7 +367,7 @@ static int ili9881c_unprepare(struct drm_panel *panel)
 
        mipi_dsi_dcs_enter_sleep_mode(ctx->dsi);
        regulator_disable(ctx->power);
-       gpiod_set_value(ctx->reset, 1);
+       gpiod_set_value_cansleep(ctx->reset, 1);
 
        return 0;
 }