Unverified Commit 80bab5c5 authored by Ilia Levi's avatar Ilia Levi Committed by Rodrigo Vivi
Browse files

drm/xe/irq: remove xe_irq_shutdown



The cleanup is done by devres in irq_uninstall.

Commit bbc9651f ("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: default avatarIlia Levi <illevi@habana.ai>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240606124705.822451-1-illevi@habana.ai


Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 8511d9da
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -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)
+0 −5
Original line number Diff line number Diff line
@@ -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;
+0 −1
Original line number Diff line number Diff line
@@ -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);