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:
committed by
Greg Kroah-Hartman
parent
115360031b
commit
274ae1044b
@@ -708,6 +708,12 @@ int xe_device_probe(struct xe_device *xe)
|
|||||||
if (err)
|
if (err)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
for_each_tile(tile, xe, id) {
|
||||||
|
err = xe_tile_init(tile);
|
||||||
|
if (err)
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
for_each_gt(gt, xe, id) {
|
for_each_gt(gt, xe, id) {
|
||||||
last_gt = id;
|
last_gt = id;
|
||||||
|
|
||||||
|
|||||||
@@ -167,15 +167,19 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
|
|||||||
if (err)
|
if (err)
|
||||||
return 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);
|
xe_wa_apply_tile_workarounds(tile);
|
||||||
|
|
||||||
return xe_tile_sysfs_init(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)
|
void xe_tile_migrate_wait(struct xe_tile *tile)
|
||||||
{
|
{
|
||||||
xe_migrate_wait(tile->migrate);
|
xe_migrate_wait(tile->migrate);
|
||||||
|
|||||||
@@ -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_early(struct xe_tile *tile, struct xe_device *xe, u8 id);
|
||||||
int xe_tile_init_noalloc(struct xe_tile *tile);
|
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);
|
void xe_tile_migrate_wait(struct xe_tile *tile);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user