drm/xe: Move suballocator init to after display init

[ Upstream commit 380b0cdaa76bc8f5c16db16eaf48751e792ff041 ]

No allocations should be done before we have had a chance to preserve
the display fb.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241210083111.230484-4-dev@lankhorst.se
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Maarten Lankhorst
2024-12-10 09:31:03 +01:00
committed by Greg Kroah-Hartman
parent 115360031b
commit 274ae1044b
3 changed files with 15 additions and 4 deletions

View File

@@ -708,6 +708,12 @@ int xe_device_probe(struct xe_device *xe)
if (err)
goto err;
for_each_tile(tile, xe, id) {
err = xe_tile_init(tile);
if (err)
goto err;
}
for_each_gt(gt, xe, id) {
last_gt = id;

View File

@@ -167,15 +167,19 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
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);
xe_wa_apply_tile_workarounds(tile);
return xe_tile_sysfs_init(tile);
}
int xe_tile_init(struct xe_tile *tile)
{
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);
return 0;
}
void xe_tile_migrate_wait(struct xe_tile *tile)
{
xe_migrate_wait(tile->migrate);

View File

@@ -12,6 +12,7 @@ struct xe_tile;
int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id);
int xe_tile_init_noalloc(struct xe_tile *tile);
int xe_tile_init(struct xe_tile *tile);
void xe_tile_migrate_wait(struct xe_tile *tile);