aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Paul <seanpaul@chromium.org>2016-09-16 14:22:03 -0400
committerSean Paul <seanpaul@chromium.org>2016-09-21 09:55:53 -0400
commit8c763c9b1072c91aac90e5bc0a2ac2220a6980d7 (patch)
tree7156b9d8311364bca44999517bac8074cc7602b8
parentd47a7246bb5f2a36f7c26672966e9febeb78bc82 (diff)
drm/rockchip: Balance irq refcount on failure
If create_crtc fails in vop bind, ensure the irq refcount is zeroed back out before exiting. Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Sean Paul <seanpaul@chromium.org>
-rw-r--r--drivers/gpu/drm/rockchip/rockchip_drm_vop.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 37e6ba92b8fa..c7eba305c488 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -1547,11 +1547,15 @@ static int vop_bind(struct device *dev, struct device *master, void *data)
1547 1547
1548 ret = vop_create_crtc(vop); 1548 ret = vop_create_crtc(vop);
1549 if (ret) 1549 if (ret)
1550 return ret; 1550 goto err_enable_irq;
1551 1551
1552 pm_runtime_enable(&pdev->dev); 1552 pm_runtime_enable(&pdev->dev);
1553 1553
1554 return 0; 1554 return 0;
1555
1556err_enable_irq:
1557 enable_irq(vop->irq); /* To balance out the disable_irq above */
1558 return ret;
1555} 1559}
1556 1560
1557static void vop_unbind(struct device *dev, struct device *master, void *data) 1561static void vop_unbind(struct device *dev, struct device *master, void *data)