diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-08-08 16:24:54 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-08-08 16:24:53 -0700 |
commit | fbf1286c9c55537fb1adc94af3d02a6d678537da (patch) | |
tree | ce3a6520204c8dbda0e9d13f140f1d8267d7113d | |
parent | 488414b6965d07843dc6183e1649519e9e7d3d53 (diff) | |
parent | 2d5ff8406ae5be3164ef12be791a6fd904f7ca01 (diff) |
Merge "drm/msm: free the IRQ during GPU cleanup"
-rw-r--r-- | drivers/gpu/drm/msm/msm_gpu.c | 6 |
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++) |