瀏覽代碼

drm/panel: simple: Allow GPIO accesses to sleep

The enable GPIO for panels may be provided by GPIO expanders on slow
busses (such as I2C), and therefore toggling the GPIO may sleep. Since
these accesses don't happen in interrupt context, use the *_cansleep()
variants of the GPIO API.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Thierry Reding 11 年之前
父節點
當前提交
15c1a919ae
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/gpu/drm/panel/panel-simple.c

+ 2 - 2
drivers/gpu/drm/panel/panel-simple.c

@@ -106,7 +106,7 @@ static int panel_simple_disable(struct drm_panel *panel)
 	}
 
 	if (p->enable_gpio)
-		gpiod_set_value(p->enable_gpio, 0);
+		gpiod_set_value_cansleep(p->enable_gpio, 0);
 
 	regulator_disable(p->supply);
 	p->enabled = false;
@@ -129,7 +129,7 @@ static int panel_simple_enable(struct drm_panel *panel)
 	}
 
 	if (p->enable_gpio)
-		gpiod_set_value(p->enable_gpio, 1);
+		gpiod_set_value_cansleep(p->enable_gpio, 1);
 
 	if (p->backlight) {
 		p->backlight->props.power = FB_BLANK_UNBLANK;