Skip to content

Commit 380b0cd

Browse files
author
Maarten Lankhorst
committed
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>
1 parent a46ea12 commit 380b0cd

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

drivers/gpu/drm/xe/xe_device.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -840,6 +840,12 @@ int xe_device_probe(struct xe_device *xe)
840840
if (err)
841841
goto err;
842842

843+
for_each_tile(tile, xe, id) {
844+
err = xe_tile_init(tile);
845+
if (err)
846+
goto err;
847+
}
848+
843849
for_each_gt(gt, xe, id) {
844850
last_gt = id;
845851

drivers/gpu/drm/xe/xe_tile.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,17 +170,21 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
170170
if (err)
171171
return err;
172172

173-
tile->mem.kernel_bb_pool = xe_sa_bo_manager_init(tile, SZ_1M, 16);
174-
if (IS_ERR(tile->mem.kernel_bb_pool))
175-
return PTR_ERR(tile->mem.kernel_bb_pool);
176-
177173
xe_wa_apply_tile_workarounds(tile);
178174

179175
err = xe_tile_sysfs_init(tile);
180176

181177
return 0;
182178
}
183179

180+
int xe_tile_init(struct xe_tile *tile)
181+
{
182+
tile->mem.kernel_bb_pool = xe_sa_bo_manager_init(tile, SZ_1M, 16);
183+
if (IS_ERR(tile->mem.kernel_bb_pool))
184+
return PTR_ERR(tile->mem.kernel_bb_pool);
185+
186+
return 0;
187+
}
184188
void xe_tile_migrate_wait(struct xe_tile *tile)
185189
{
186190
xe_migrate_wait(tile->migrate);

drivers/gpu/drm/xe/xe_tile.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ struct xe_tile;
1212

1313
int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id);
1414
int xe_tile_init_noalloc(struct xe_tile *tile);
15+
int xe_tile_init(struct xe_tile *tile);
1516

1617
void xe_tile_migrate_wait(struct xe_tile *tile);
1718

0 commit comments

Comments
 (0)