drm/panel: jdi-lt070me05000: Use gpiod_set_value_cansleep
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Thu, 15 Apr 2021 16:30:35 +0000 (17:30 +0100)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:33:10 +0000 (11:33 +0000)
There is no reason why the control GPIOs for the panel can not
be connected to I2C or similar GPIO interfaces that may need to
sleep, therefore switch from gpiod_set_value to
gpiod_set_value_cansleep calls to configure them.
Without that you get complaints from gpiolib every time the state
is changed.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c

index 2130084..f0041bc 100644 (file)
@@ -205,11 +205,11 @@ static int jdi_panel_unprepare(struct drm_panel *panel)
        if (ret < 0)
                dev_err(dev, "regulator disable failed, %d\n", ret);
 
-       gpiod_set_value(jdi->enable_gpio, 0);
+       gpiod_set_value_cansleep(jdi->enable_gpio, 0);
 
-       gpiod_set_value(jdi->reset_gpio, 1);
+       gpiod_set_value_cansleep(jdi->reset_gpio, 1);
 
-       gpiod_set_value(jdi->dcdc_en_gpio, 0);
+       gpiod_set_value_cansleep(jdi->dcdc_en_gpio, 0);
 
        jdi->prepared = false;
 
@@ -233,13 +233,13 @@ static int jdi_panel_prepare(struct drm_panel *panel)
 
        msleep(20);
 
-       gpiod_set_value(jdi->dcdc_en_gpio, 1);
+       gpiod_set_value_cansleep(jdi->dcdc_en_gpio, 1);
        usleep_range(10, 20);
 
-       gpiod_set_value(jdi->reset_gpio, 0);
+       gpiod_set_value_cansleep(jdi->reset_gpio, 0);
        usleep_range(10, 20);
 
-       gpiod_set_value(jdi->enable_gpio, 1);
+       gpiod_set_value_cansleep(jdi->enable_gpio, 1);
        usleep_range(10, 20);
 
        ret = jdi_panel_init(jdi);
@@ -263,11 +263,11 @@ poweroff:
        if (ret < 0)
                dev_err(dev, "regulator disable failed, %d\n", ret);
 
-       gpiod_set_value(jdi->enable_gpio, 0);
+       gpiod_set_value_cansleep(jdi->enable_gpio, 0);
 
-       gpiod_set_value(jdi->reset_gpio, 1);
+       gpiod_set_value_cansleep(jdi->reset_gpio, 1);
 
-       gpiod_set_value(jdi->dcdc_en_gpio, 0);
+       gpiod_set_value_cansleep(jdi->dcdc_en_gpio, 0);
 
        return ret;
 }