summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-08-08 16:24:54 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-08-08 16:24:53 -0700
commitfbf1286c9c55537fb1adc94af3d02a6d678537da (patch)
treece3a6520204c8dbda0e9d13f140f1d8267d7113d
parent488414b6965d07843dc6183e1649519e9e7d3d53 (diff)
parent2d5ff8406ae5be3164ef12be791a6fd904f7ca01 (diff)
Merge "drm/msm: free the IRQ during GPU cleanup"
-rw-r--r--drivers/gpu/drm/msm/msm_gpu.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
index 8073898e4275..9320437e923d 100644
--- a/drivers/gpu/drm/msm/msm_gpu.c
+++ b/drivers/gpu/drm/msm/msm_gpu.c
@@ -897,6 +897,7 @@ int msm_gpu_init(struct drm_device *drm, struct platform_device *pdev,
ret = devm_request_irq(&pdev->dev, gpu->irq, irq_handler,
IRQF_TRIGGER_HIGH, gpu->name, gpu);
if (ret) {
+ gpu->irq = ret;
dev_err(drm->dev, "failed to request IRQ%u: %d\n", gpu->irq, ret);
goto fail;
}
@@ -1007,6 +1008,11 @@ void msm_gpu_cleanup(struct msm_gpu *gpu)
WARN_ON(!list_empty(&gpu->active_list));
+ if (gpu->irq >= 0) {
+ disable_irq(gpu->irq);
+ devm_free_irq(&pdev->dev, gpu->irq, gpu);
+ }
+
bs_fini(gpu);
for (i = 0; i < ARRAY_SIZE(gpu->rb); i++)