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:
parent
a37c10a168
commit
2d5ff8406a
1 changed files with 6 additions and 0 deletions
|
@ -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++)
|
||||
|
|
Loading…
Add table
Reference in a new issue