Browse Source

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>
Sean Paul 9 years ago
parent
commit
8c763c9b10
1 changed files with 5 additions and 1 deletions
  1. 5 1
      drivers/gpu/drm/rockchip/rockchip_drm_vop.c

+ 5 - 1
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

@@ -1547,11 +1547,15 @@ static int vop_bind(struct device *dev, struct device *master, void *data)
 
 	ret = vop_create_crtc(vop);
 	if (ret)
-		return ret;
+		goto err_enable_irq;
 
 	pm_runtime_enable(&pdev->dev);
 
 	return 0;
+
+err_enable_irq:
+	enable_irq(vop->irq); /* To balance out the disable_irq above */
+	return ret;
 }
 
 static void vop_unbind(struct device *dev, struct device *master, void *data)