summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnimesh Kishore <ankishore@nvidia.com>2012-02-15 11:05:27 +0530
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-02-16 07:07:30 -0800
commit55be8e2cc2517370f47a9d09efdeb463090018cf (patch)
tree73f7c0684d86f02d9a27050b03d4a91e3d96b7ef
parent0a9aa838415cfbf700fb6c49b7cc8ff2d868a145 (diff)
video: tegra: dsi: Soft reset if dsi host busy
If dsi host is unexpectedly busy, soft resetting will restore controller state. Bug 930453 Change-Id: I1bbce55d0b27a2be80a66218978e73c616e9d894 Signed-off-by: Animesh Kishore <ankishore@nvidia.com> Reviewed-on: http://git-master/r/83986 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
-rw-r--r--drivers/video/tegra/dc/dsi.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/video/tegra/dc/dsi.c b/drivers/video/tegra/dc/dsi.c
index 544703dc8a48..d8145f2d5363 100644
--- a/drivers/video/tegra/dc/dsi.c
+++ b/drivers/video/tegra/dc/dsi.c
@@ -1322,7 +1322,7 @@ static bool tegra_dsi_host_busy(struct tegra_dc_dsi_data *dsi)
goto fail;
}
fail:
- return err;
+ return (err < 0 ? true : false);
}
static void tegra_dsi_reset_underflow_overflow
@@ -1438,9 +1438,12 @@ static struct dsi_status *tegra_dsi_prepare_host_transmission(
}
if (tegra_dsi_host_busy(dsi)) {
- err = -EBUSY;
- dev_err(&dc->ndev->dev, "DSI host busy\n");
- goto fail;
+ tegra_dsi_soft_reset(dsi);
+ if (tegra_dsi_host_busy(dsi)) {
+ err = -EBUSY;
+ dev_err(&dc->ndev->dev, "DSI host busy\n");
+ goto fail;
+ }
}
tegra_dsi_reset_underflow_overflow(dsi);