drm/msm: free the IRQ during GPU cleanup

Free the IRQ in msm_gpu_cleanup. This is required
to avoid failures from devm_request_irq on subsequent
retries to load the GPU in case the previous attempt
failed somewhere after successful call to
devm_request_irq.

Change-Id: I90d98199a1d7867e3f7b51f8e2293fa28e4612fa
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
This commit is contained in:
Deepak Kumar 2017-07-27 13:14:53 +05:30
parent a37c10a168
commit 2d5ff8406a

View file

@ -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++)