From 24dfd909472253916266b8658dcce6043360bad9 Mon Sep 17 00:00:00 2001 From: Mark Yao <mark.yao@rock-chips.com> Date: Tue, 2 Aug 2016 15:19:27 +0800 Subject: [PATCH] drm/panel: Don't init gpio value at probe When enable display on loader, init gpio would change gpio status, that would make screen flash, Change-Id: I4b69a8d3d83c5bef09014c2134abaee6522a7046 Signed-off-by: Mark Yao <mark.yao@rock-chips.com> --- drivers/gpu/drm/panel/panel-simple.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index c7c5d15240a4..51fd0abd13ce 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -200,7 +200,7 @@ static int panel_simple_unprepare(struct drm_panel *panel) return 0; if (p->enable_gpio) - gpiod_set_value_cansleep(p->enable_gpio, 0); + gpiod_direction_output(p->enable_gpio, 0); regulator_disable(p->supply); @@ -227,7 +227,7 @@ static int panel_simple_prepare(struct drm_panel *panel) } if (p->enable_gpio) - gpiod_set_value_cansleep(p->enable_gpio, 1); + gpiod_direction_output(p->enable_gpio, 1); if (p->desc && p->desc->delay.prepare) msleep(p->desc->delay.prepare); @@ -329,8 +329,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) if (IS_ERR(panel->supply)) return PTR_ERR(panel->supply); - panel->enable_gpio = devm_gpiod_get_optional(dev, "enable", - GPIOD_OUT_LOW); + panel->enable_gpio = devm_gpiod_get_optional(dev, "enable", 0); if (IS_ERR(panel->enable_gpio)) { err = PTR_ERR(panel->enable_gpio); dev_err(dev, "failed to request GPIO: %d\n", err); -- 2.34.1