Commit e6018b19 authored by Maarten Lankhorst's avatar Maarten Lankhorst
Browse files

drm/xe: Defer memirq init until needed



memirqs require allocations into GGTT, which we cannot use until
after display is enabled.

Now that the initialisation of interrupts is postponed, move memirq
init too.

Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarIlia Levi <ilia.levi@intel.com>
Link: https://lore.kernel.org/r/20250619104858.418440-14-dev@lankhorst.se


Signed-off-by: default avatarMaarten Lankhorst <dev@lankhorst.se>
parent b5870168
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@
#include "xe_hw_engine_group.h"
#include "xe_hwmon.h"
#include "xe_irq.h"
#include "xe_memirq.h"
#include "xe_mmio.h"
#include "xe_module.h"
#include "xe_nvm.h"
@@ -816,9 +815,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) {
+7 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
#include "xe_device.h"
#include "xe_ggtt.h"
#include "xe_gt.h"
#include "xe_memirq.h"
#include "xe_migrate.h"
#include "xe_pcode.h"
#include "xe_sa.h"
@@ -174,6 +175,12 @@ int xe_tile_init_noalloc(struct xe_tile *tile)

int xe_tile_init(struct xe_tile *tile)
{
	int err;

	err = xe_memirq_init(&tile->memirq);
	if (err)
		return err;

	tile->mem.kernel_bb_pool = xe_sa_bo_manager_init(tile, SZ_1M, 16);
	if (IS_ERR(tile->mem.kernel_bb_pool))
		return PTR_ERR(tile->mem.kernel_bb_pool);