From a7d49070ee698d42f0fffee54d184c6ebb6ce487 Mon Sep 17 00:00:00 2001 From: Jong Kim Date: Thu, 20 Dec 2012 17:16:57 -0800 Subject: arm: tegra: dc: corrct order to enable/disable dc irq When porting change from mainline to balance dc irq, the change of enable/disable order was not ported, thus dc irq is disabled if dc is enabled during probe. This is part of http://git-master/r/146107. Original change is big for many bugs, only port one here. bug 1173177 bug 1173038 bug 1008313 Change-Id: Idd703daca9f980e905b185eeeae19dc6309d76e5 Signed-off-by: Dongfang Shi Reviewed-on: http://git-master/r/162868 (cherry picked from commit 6ddd8b02f7a17d2269290d06159c20860ffb92e9) Signed-off-by: Jong Kim Reviewed-on: http://git-master/r/173249 Reviewed-by: Winnie Hsu Reviewed-by: Jon Mayo --- drivers/video/tegra/dc/dc.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'drivers/video/tegra') diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c index d01df2f520b8..ed54e9e495c2 100644 --- a/drivers/video/tegra/dc/dc.c +++ b/drivers/video/tegra/dc/dc.c @@ -1875,13 +1875,6 @@ static int tegra_dc_probe(struct nvhost_device *ndev, dc->ext = NULL; } - mutex_lock(&dc->lock); - if (dc->pdata->flags & TEGRA_DC_FLAG_ENABLED) { - _tegra_dc_set_default_videomode(dc); - dc->enabled = _tegra_dc_enable(dc); - } - mutex_unlock(&dc->lock); - /* interrupt handler must be registered before tegra_fb_register() */ if (request_irq(irq, tegra_dc_irq, 0, dev_name(&ndev->dev), dc)) { @@ -1889,6 +1882,14 @@ static int tegra_dc_probe(struct nvhost_device *ndev, ret = -EBUSY; goto err_put_emc_clk; } + disable_dc_irq(irq); + + mutex_lock(&dc->lock); + if (dc->pdata->flags & TEGRA_DC_FLAG_ENABLED) { + _tegra_dc_set_default_videomode(dc); + dc->enabled = _tegra_dc_enable(dc); + } + mutex_unlock(&dc->lock); tegra_dc_create_debugfs(dc); -- cgit v1.2.3