diff options
Diffstat (limited to 'drivers/video/tegra/dc/dsi.c')
-rw-r--r-- | drivers/video/tegra/dc/dsi.c | 11 |
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); |