drm/panel: simple: move panel_simple_dsi_send_cmds from enable to prepare
authorxubilv <xbl@rock-chips.com>
Thu, 13 Jul 2017 11:21:38 +0000 (19:21 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 20 Jul 2017 11:08:41 +0000 (19:08 +0800)
Change-Id: I9fdd1192523bc5bd99ca2fdc37fdf2f4b06cbb8a
Signed-off-by: xubilv <xbl@rock-chips.com>
drivers/gpu/drm/panel/panel-simple.c

index 301e2bf41384b74a38aeadd7b0f597c226d69996..50406eb9f99c950cbf95e831507823d8e03753ae 100644 (file)
@@ -229,7 +229,7 @@ static int panel_simple_dsi_send_cmds(struct panel_simple *panel,
                        return -EINVAL;
                }
 
-               if (err)
+               if (err < 0)
                        dev_err(panel->dev, "failed to write dcs cmd: %d\n",
                                err);
 
@@ -428,6 +428,12 @@ static int panel_simple_prepare(struct drm_panel *panel)
        if (p->reset_gpio)
                gpiod_direction_output(p->reset_gpio, 0);
 
+       if (p->on_cmds) {
+               err = panel_simple_dsi_send_cmds(p, p->on_cmds);
+               if (err)
+                       dev_err(p->dev, "failed to send on cmds\n");
+       }
+
        p->prepared = true;
 
        return 0;
@@ -436,17 +442,10 @@ static int panel_simple_prepare(struct drm_panel *panel)
 static int panel_simple_enable(struct drm_panel *panel)
 {
        struct panel_simple *p = to_panel_simple(panel);
-       int err;
 
        if (p->enabled)
                return 0;
 
-       if (p->on_cmds) {
-               err = panel_simple_dsi_send_cmds(p, p->on_cmds);
-               if (err)
-                       dev_err(p->dev, "failed to send on cmds\n");
-       }
-
        if (p->desc && p->desc->delay.enable)
                msleep(p->desc->delay.enable);