mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
drm/xe/irq: remove xe_irq_shutdown
The cleanup is done by devres in irq_uninstall.
Commit bbc9651fe9 ("drm/xe/irq: move irq_uninstall over to devm")
resolved the ordering issue where irq_uninstall (registered with drmm)
was called after pci_free_irq_vectors (registered with devm upon calling
pci_alloc_irq_vectors). This happened because drmm action list is
registered with devm very early in the init flow - before
pci_alloc_irq_vectors.
Now that irq_uninstall is registered with devm, it will be called before
pci_free_irq_vectors and we can remove xe_irq_shutdown.
Signed-off-by: Ilia Levi <illevi@habana.ai>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240606124705.822451-1-illevi@habana.ai
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
8511d9da20
commit
80bab5c503
|
|
@ -634,16 +634,16 @@ int xe_device_probe(struct xe_device *xe)
|
|||
|
||||
err = xe_device_set_has_flat_ccs(xe);
|
||||
if (err)
|
||||
goto err_irq_shutdown;
|
||||
goto err;
|
||||
|
||||
err = xe_vram_probe(xe);
|
||||
if (err)
|
||||
goto err_irq_shutdown;
|
||||
goto err;
|
||||
|
||||
for_each_tile(tile, xe, id) {
|
||||
err = xe_tile_init_noalloc(tile);
|
||||
if (err)
|
||||
goto err_irq_shutdown;
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Allocate and map stolen after potential VRAM resize */
|
||||
|
|
@ -657,7 +657,7 @@ int xe_device_probe(struct xe_device *xe)
|
|||
*/
|
||||
err = xe_display_init_noaccel(xe);
|
||||
if (err)
|
||||
goto err_irq_shutdown;
|
||||
goto err;
|
||||
|
||||
for_each_gt(gt, xe, id) {
|
||||
last_gt = id;
|
||||
|
|
@ -708,8 +708,6 @@ int xe_device_probe(struct xe_device *xe)
|
|||
break;
|
||||
}
|
||||
|
||||
err_irq_shutdown:
|
||||
xe_irq_shutdown(xe);
|
||||
err:
|
||||
xe_display_fini(xe);
|
||||
return err;
|
||||
|
|
@ -740,8 +738,6 @@ void xe_device_remove(struct xe_device *xe)
|
|||
|
||||
for_each_gt(gt, xe, id)
|
||||
xe_gt_remove(gt);
|
||||
|
||||
xe_irq_shutdown(xe);
|
||||
}
|
||||
|
||||
void xe_device_shutdown(struct xe_device *xe)
|
||||
|
|
|
|||
|
|
@ -738,11 +738,6 @@ int xe_irq_install(struct xe_device *xe)
|
|||
return err;
|
||||
}
|
||||
|
||||
void xe_irq_shutdown(struct xe_device *xe)
|
||||
{
|
||||
irq_uninstall(xe);
|
||||
}
|
||||
|
||||
void xe_irq_suspend(struct xe_device *xe)
|
||||
{
|
||||
int irq = to_pci_dev(xe->drm.dev)->irq;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ struct xe_tile;
|
|||
struct xe_gt;
|
||||
|
||||
int xe_irq_install(struct xe_device *xe);
|
||||
void xe_irq_shutdown(struct xe_device *xe);
|
||||
void xe_irq_suspend(struct xe_device *xe);
|
||||
void xe_irq_resume(struct xe_device *xe);
|
||||
void xe_irq_enable_hwe(struct xe_gt *gt);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user