[PATCH] drm/panel: ilitek-ili9882t: use gpiod_set_value_cansleep()

John Keeping posted 1 patch 1 month, 1 week ago
drivers/gpu/drm/panel/panel-ilitek-ili9882t.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
[PATCH] drm/panel: ilitek-ili9882t: use gpiod_set_value_cansleep()
Posted by John Keeping 1 month, 1 week ago
All of these GPIO calls are in process context where they can sleep.
Use the appropriate function call to allow use of this driver with GPIO
controllers that might sleep.

Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
---
 drivers/gpu/drm/panel/panel-ilitek-ili9882t.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c b/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c
index 8b2bfb7d36385..5f4e0d82ee673 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c
@@ -592,7 +592,7 @@ static int ili9882t_unprepare(struct drm_panel *panel)
 {
 	struct ili9882t *ili = to_ili9882t(panel);
 
-	gpiod_set_value(ili->enable_gpio, 0);
+	gpiod_set_value_cansleep(ili->enable_gpio, 0);
 	usleep_range(1000, 2000);
 	regulator_disable(ili->avee);
 	regulator_disable(ili->avdd);
@@ -608,7 +608,7 @@ static int ili9882t_prepare(struct drm_panel *panel)
 	struct ili9882t *ili = to_ili9882t(panel);
 	int ret;
 
-	gpiod_set_value(ili->enable_gpio, 0);
+	gpiod_set_value_cansleep(ili->enable_gpio, 0);
 	usleep_range(1000, 1500);
 
 	ret = regulator_enable(ili->pp3300);
@@ -638,11 +638,11 @@ static int ili9882t_prepare(struct drm_panel *panel)
 	}
 	usleep_range(1000, 2000);
 
-	gpiod_set_value(ili->enable_gpio, 1);
+	gpiod_set_value_cansleep(ili->enable_gpio, 1);
 	usleep_range(1000, 2000);
-	gpiod_set_value(ili->enable_gpio, 0);
+	gpiod_set_value_cansleep(ili->enable_gpio, 0);
 	msleep(50);
-	gpiod_set_value(ili->enable_gpio, 1);
+	gpiod_set_value_cansleep(ili->enable_gpio, 1);
 	usleep_range(6000, 10000);
 
 	ret = ili->desc->init(ili);
@@ -652,7 +652,7 @@ static int ili9882t_prepare(struct drm_panel *panel)
 	return 0;
 
 poweroff:
-	gpiod_set_value(ili->enable_gpio, 0);
+	gpiod_set_value_cansleep(ili->enable_gpio, 0);
 	regulator_disable(ili->avee);
 poweroffavdd:
 	regulator_disable(ili->avdd);
@@ -793,7 +793,7 @@ static int ili9882t_add(struct ili9882t *ili)
 		return PTR_ERR(ili->enable_gpio);
 	}
 
-	gpiod_set_value(ili->enable_gpio, 0);
+	gpiod_set_value_cansleep(ili->enable_gpio, 0);
 
 	err = of_drm_get_panel_orientation(dev->of_node, &ili->orientation);
 	if (err < 0) {
-- 
2.53.0
Re: [PATCH] drm/panel: ilitek-ili9882t: use gpiod_set_value_cansleep()
Posted by Neil Armstrong 1 month ago
Hi,

On Tue, 03 Mar 2026 15:21:24 +0000, John Keeping wrote:
> All of these GPIO calls are in process context where they can sleep.
> Use the appropriate function call to allow use of this driver with GPIO
> controllers that might sleep.
> 
> 

Thanks, Applied to https://gitlab.freedesktop.org/drm/misc/kernel.git (drm-misc-next)

[1/1] drm/panel: ilitek-ili9882t: use gpiod_set_value_cansleep()
      https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/b26c17c924ff9ecae6312e1947cc6c1b561b40a7

-- 
Neil
Re: [PATCH] drm/panel: ilitek-ili9882t: use gpiod_set_value_cansleep()
Posted by Neil Armstrong 1 month ago
On 3/3/26 16:21, John Keeping wrote:
> All of these GPIO calls are in process context where they can sleep.
> Use the appropriate function call to allow use of this driver with GPIO
> controllers that might sleep.
> 
> Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
> ---
>   drivers/gpu/drm/panel/panel-ilitek-ili9882t.c | 14 +++++++-------
>   1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c b/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c
> index 8b2bfb7d36385..5f4e0d82ee673 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9882t.c
> @@ -592,7 +592,7 @@ static int ili9882t_unprepare(struct drm_panel *panel)
>   {
>   	struct ili9882t *ili = to_ili9882t(panel);
>   
> -	gpiod_set_value(ili->enable_gpio, 0);
> +	gpiod_set_value_cansleep(ili->enable_gpio, 0);
>   	usleep_range(1000, 2000);
>   	regulator_disable(ili->avee);
>   	regulator_disable(ili->avdd);
> @@ -608,7 +608,7 @@ static int ili9882t_prepare(struct drm_panel *panel)
>   	struct ili9882t *ili = to_ili9882t(panel);
>   	int ret;
>   
> -	gpiod_set_value(ili->enable_gpio, 0);
> +	gpiod_set_value_cansleep(ili->enable_gpio, 0);
>   	usleep_range(1000, 1500);
>   
>   	ret = regulator_enable(ili->pp3300);
> @@ -638,11 +638,11 @@ static int ili9882t_prepare(struct drm_panel *panel)
>   	}
>   	usleep_range(1000, 2000);
>   
> -	gpiod_set_value(ili->enable_gpio, 1);
> +	gpiod_set_value_cansleep(ili->enable_gpio, 1);
>   	usleep_range(1000, 2000);
> -	gpiod_set_value(ili->enable_gpio, 0);
> +	gpiod_set_value_cansleep(ili->enable_gpio, 0);
>   	msleep(50);
> -	gpiod_set_value(ili->enable_gpio, 1);
> +	gpiod_set_value_cansleep(ili->enable_gpio, 1);
>   	usleep_range(6000, 10000);
>   
>   	ret = ili->desc->init(ili);
> @@ -652,7 +652,7 @@ static int ili9882t_prepare(struct drm_panel *panel)
>   	return 0;
>   
>   poweroff:
> -	gpiod_set_value(ili->enable_gpio, 0);
> +	gpiod_set_value_cansleep(ili->enable_gpio, 0);
>   	regulator_disable(ili->avee);
>   poweroffavdd:
>   	regulator_disable(ili->avdd);
> @@ -793,7 +793,7 @@ static int ili9882t_add(struct ili9882t *ili)
>   		return PTR_ERR(ili->enable_gpio);
>   	}
>   
> -	gpiod_set_value(ili->enable_gpio, 0);
> +	gpiod_set_value_cansleep(ili->enable_gpio, 0);
>   
>   	err = of_drm_get_panel_orientation(dev->of_node, &ili->orientation);
>   	if (err < 0) {

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>

Thanks,
Neil