drm/panel: Don't init gpio value at probe
authorMark Yao <mark.yao@rock-chips.com>
Tue, 2 Aug 2016 07:19:27 +0000 (15:19 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 10 Aug 2016 06:05:05 +0000 (14:05 +0800)
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

index c7c5d15240a4fdd6049d878cc6e72220414b9427..51fd0abd13cebea1ac52a30f619ff2a11495642e 100644 (file)
@@ -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);