summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorJin Li <jinl@codeaurora.org>2016-11-03 16:03:02 -0400
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-17 03:13:50 -0700
commitba2e394129ecfefb9e7ab54469dc597a2a92c6af (patch)
tree266d46a4ffc11555edc732a271abbf49a00de30f /drivers/gpu
parentca787fd395d04ae4650f028d892d6cf49186194d (diff)
drm/sde: don't return error when fail to set panel pin ctrl
Panel pin control is not mandatory for all of the DSI panels. If the panel is using bridge chips, such as ADV7533, it doesn't have to configure the panel pin controls. Change-Id: I48d862a9c67d52c0ed8c3c0309b0ff56d13e97f4 Signed-off-by: Jin Li <jinl@codeaurora.org> Signed-off-by: Yunyun Cao <yunyunc@codeaurora.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/msm/dsi-staging/dsi_panel.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c b/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c
index ec19dd3510e5..5556e851c0b4 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_panel.c
@@ -172,10 +172,12 @@ static int dsi_panel_set_pinctrl_state(struct dsi_panel *panel, bool enable)
else
state = panel->pinctrl.suspend;
- rc = pinctrl_select_state(panel->pinctrl.pinctrl, state);
- if (rc)
- pr_err("[%s] failed to set pin state, rc=%d\n", panel->name,
- rc);
+ if (panel->pinctrl.pinctrl && state) {
+ rc = pinctrl_select_state(panel->pinctrl.pinctrl, state);
+ if (rc)
+ pr_err("[%s] failed to set pin state, rc=%d\n",
+ panel->name, rc);
+ }
return rc;
}
@@ -1656,10 +1658,8 @@ int dsi_panel_drv_init(struct dsi_panel *panel,
}
rc = dsi_panel_pinctrl_init(panel);
- if (rc) {
+ if (rc)
pr_err("[%s] failed to init pinctrl, rc=%d\n", panel->name, rc);
- goto error_vreg_put;
- }
rc = dsi_panel_gpio_request(panel);
if (rc) {
@@ -1682,7 +1682,6 @@ error_gpio_release:
(void)dsi_panel_gpio_release(panel);
error_pinctrl_deinit:
(void)dsi_panel_pinctrl_deinit(panel);
-error_vreg_put:
(void)dsi_panel_vreg_put(panel);
exit:
mutex_unlock(&panel->panel_lock);