summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm
diff options
context:
space:
mode:
authorAravind Venkateswaran <aravindh@codeaurora.org>2016-12-15 17:41:04 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-21 16:25:46 -0800
commit5f41a670d14345da8ba300ab6b8029bdd06344f2 (patch)
tree48c921e6214d9a0f6c541df135a2fe591d21deb4 /drivers/video/fbdev/msm
parentc23be78397bd1a6efa8ee1bdc5abd435e365c019 (diff)
msm: mdss: dp: fix handling of link training mutex
Remove the additional unbalanced unlock being called for the link training mutex. This fixes random crashes seen while running Display Port connection/disconnection tests. Change-Id: I2fce80cec72e3bd8b1561fd46fa1a1520cddd294 Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev/msm')
-rw-r--r--drivers/video/fbdev/msm/mdss_dp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dp.c b/drivers/video/fbdev/msm/mdss_dp.c
index 394d31941c8a..7076b36bb6b6 100644
--- a/drivers/video/fbdev/msm/mdss_dp.c
+++ b/drivers/video/fbdev/msm/mdss_dp.c
@@ -1211,16 +1211,20 @@ static int mdss_dp_on_irq(struct mdss_dp_drv_pdata *dp_drv)
ret = mdss_dp_get_lane_mapping(dp_drv, dp_drv->orientation,
&ln_map);
- if (ret)
+ if (ret) {
+ mutex_unlock(&dp_drv->train_mutex);
goto exit;
+ }
mdss_dp_phy_share_lane_config(&dp_drv->phy_io,
dp_drv->orientation,
dp_drv->dpcd.max_lane_count);
ret = mdss_dp_enable_mainlink_clocks(dp_drv);
- if (ret)
+ if (ret) {
+ mutex_unlock(&dp_drv->train_mutex);
goto exit;
+ }
mdss_dp_mainlink_reset(&dp_drv->ctrl_io);
@@ -1238,7 +1242,6 @@ static int mdss_dp_on_irq(struct mdss_dp_drv_pdata *dp_drv)
pr_debug("end\n");
exit:
- mutex_unlock(&dp_drv->train_mutex);
return ret;
}