drm/xe: Move suballocator init to after display init

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>
This commit is contained in:
Maarten Lankhorst
2024-12-10 09:31:03 +01:00
parent a46ea12eca
commit 380b0cdaa7
3 changed files with 15 additions and 4 deletions

View File

@@ -840,6 +840,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

@@ -170,10 +170,6 @@ 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);
err = xe_tile_sysfs_init(tile);
@@ -181,6 +177,14 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
return 0;
}
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);