[PATCH v2 14/15] drm/xe: Move interrupt initialisation until after xe_display_init_noaccel
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Mon Sep 30 19:57:48 UTC 2024
memirqs require a GGTT allocation, so we have to postpone this until
after xe_display_init_noaccel.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index d7c2b7a013bfc..31d668ab60f04 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -679,9 +679,6 @@ int xe_device_probe(struct xe_device *xe)
err = xe_ggtt_init_early(tile->mem.ggtt);
if (err)
return err;
- err = xe_memirq_init(&tile->memirq);
- if (err)
- return err;
}
for_each_gt(gt, xe, id) {
@@ -701,10 +698,6 @@ int xe_device_probe(struct xe_device *xe)
if (err)
return err;
- err = xe_irq_install(xe);
- if (err)
- goto err;
-
err = probe_has_flat_ccs(xe);
if (err)
goto err;
@@ -732,6 +725,17 @@ int xe_device_probe(struct xe_device *xe)
if (err)
goto err;
+ /* And now initialize interrupts and memirq */
+ for_each_tile(tile, xe, id) {
+ err = xe_memirq_init(&tile->memirq);
+ if (err)
+ return err;
+ }
+
+ err = xe_irq_install(xe);
+ if (err)
+ goto err;
+
for_each_tile(tile, xe, id) {
err = xe_tile_init(tile);
if (err)
--
2.45.2
More information about the Intel-xe
mailing list