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)
committerNeil Armstrong <neil.armstrong@linaro.org>
Mon, 18 Mar 2024 15:06:27 +0000 (16:06 +0100)
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
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c

index 80b386f913200d07707623fc5833c5186e8b8e5a..084c37fa73485be384d41b91eb6ae3a7aa3f37b2 100644 (file)
@@ -1276,10 +1276,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 < ctx->desc->init_length; i++) {
@@ -1334,7 +1334,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;
 }