Skip to content

Commit 152c37b

Browse files
committed
drm/xe: Remove useless mem_access during probe
xe_pm_init is the very last thing during the xe_pci_probe(), hence these protections are useless from the point of view of ensuring that the device is awake. Let's remove it so we continue towards the goal of killing xe_device_mem_access. v2: Adding more cases v3: Provide a separate fix for xe_tile_init_noalloc return (Matt) Adding a new case where display HDCP init calls which are also called at display probe time. Cc: Matthew Auld <[email protected]> Reviewed-by: Matthew Auld <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Rodrigo Vivi <[email protected]>
1 parent 8ae84a2 commit 152c37b

File tree

5 files changed

+5
-34
lines changed

5 files changed

+5
-34
lines changed

drivers/gpu/drm/xe/display/xe_hdcp_gsc.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
7070
int ret = 0;
7171

7272
/* allocate object of two page for HDCP command memory and store it */
73-
xe_device_mem_access_get(xe);
7473
bo = xe_bo_create_pin_map(xe, xe_device_get_root_tile(xe), NULL, PAGE_SIZE * 2,
7574
ttm_bo_type_kernel,
7675
XE_BO_FLAG_SYSTEM |
@@ -90,7 +89,6 @@ static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
9089
hdcp_message->hdcp_cmd_in = cmd_in;
9190
hdcp_message->hdcp_cmd_out = cmd_out;
9291
out:
93-
xe_device_mem_access_put(xe);
9492
return ret;
9593
}
9694

drivers/gpu/drm/xe/xe_ggtt.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,14 +203,12 @@ static void xe_ggtt_initial_clear(struct xe_ggtt *ggtt)
203203
u64 start, end;
204204

205205
/* Display may have allocated inside ggtt, so be careful with clearing here */
206-
xe_device_mem_access_get(tile_to_xe(ggtt->tile));
207206
mutex_lock(&ggtt->lock);
208207
drm_mm_for_each_hole(hole, &ggtt->mm, start, end)
209208
xe_ggtt_clear(ggtt, start, end - start);
210209

211210
xe_ggtt_invalidate(ggtt);
212211
mutex_unlock(&ggtt->lock);
213-
xe_device_mem_access_put(tile_to_xe(ggtt->tile));
214212
}
215213

216214
int xe_ggtt_init(struct xe_ggtt *ggtt)

drivers/gpu/drm/xe/xe_gt.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
354354
{
355355
int err, i;
356356

357-
xe_device_mem_access_get(gt_to_xe(gt));
358357
err = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
359358
if (err)
360359
goto err_hw_fence_irq;
@@ -396,7 +395,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
396395

397396
err = xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
398397
XE_WARN_ON(err);
399-
xe_device_mem_access_put(gt_to_xe(gt));
400398

401399
return 0;
402400

@@ -406,7 +404,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
406404
err_hw_fence_irq:
407405
for (i = 0; i < XE_ENGINE_CLASS_MAX; ++i)
408406
xe_hw_fence_irq_finish(&gt->fence_irq[i]);
409-
xe_device_mem_access_put(gt_to_xe(gt));
410407

411408
return err;
412409
}
@@ -415,7 +412,6 @@ static int all_fw_domain_init(struct xe_gt *gt)
415412
{
416413
int err, i;
417414

418-
xe_device_mem_access_get(gt_to_xe(gt));
419415
err = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
420416
if (err)
421417
goto err_hw_fence_irq;
@@ -481,7 +477,6 @@ static int all_fw_domain_init(struct xe_gt *gt)
481477

482478
err = xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
483479
XE_WARN_ON(err);
484-
xe_device_mem_access_put(gt_to_xe(gt));
485480

486481
return 0;
487482

@@ -490,7 +485,6 @@ static int all_fw_domain_init(struct xe_gt *gt)
490485
err_hw_fence_irq:
491486
for (i = 0; i < XE_ENGINE_CLASS_MAX; ++i)
492487
xe_hw_fence_irq_finish(&gt->fence_irq[i]);
493-
xe_device_mem_access_put(gt_to_xe(gt));
494488

495489
return err;
496490
}
@@ -503,7 +497,6 @@ int xe_gt_init_hwconfig(struct xe_gt *gt)
503497
{
504498
int err;
505499

506-
xe_device_mem_access_get(gt_to_xe(gt));
507500
err = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
508501
if (err)
509502
goto out;
@@ -526,8 +519,6 @@ int xe_gt_init_hwconfig(struct xe_gt *gt)
526519
out_fw:
527520
xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
528521
out:
529-
xe_device_mem_access_put(gt_to_xe(gt));
530-
531522
return err;
532523
}
533524

drivers/gpu/drm/xe/xe_tile.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -160,24 +160,19 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
160160
{
161161
int err;
162162

163-
xe_device_mem_access_get(tile_to_xe(tile));
164-
165163
err = tile_ttm_mgr_init(tile);
166164
if (err)
167-
goto err_mem_access;
165+
return err;
168166

169167
tile->mem.kernel_bb_pool = xe_sa_bo_manager_init(tile, SZ_1M, 16);
170-
if (IS_ERR(tile->mem.kernel_bb_pool)) {
171-
err = PTR_ERR(tile->mem.kernel_bb_pool);
172-
goto err_mem_access;
173-
}
168+
if (IS_ERR(tile->mem.kernel_bb_pool))
169+
return PTR_ERR(tile->mem.kernel_bb_pool);
170+
174171
xe_wa_apply_tile_workarounds(tile);
175172

176173
xe_tile_sysfs_init(tile);
177174

178-
err_mem_access:
179-
xe_device_mem_access_put(tile_to_xe(tile));
180-
return err;
175+
return 0;
181176
}
182177

183178
void xe_tile_migrate_wait(struct xe_tile *tile)

drivers/gpu/drm/xe/xe_uc.c

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,8 @@ uc_to_xe(struct xe_uc *uc)
3232
/* Should be called once at driver load only */
3333
int xe_uc_init(struct xe_uc *uc)
3434
{
35-
struct xe_device *xe = uc_to_xe(uc);
3635
int ret;
3736

38-
xe_device_mem_access_get(xe);
39-
4037
/*
4138
* We call the GuC/HuC/GSC init functions even if GuC submission is off
4239
* to correctly move our tracking of the FW state to "disabled".
@@ -65,16 +62,8 @@ int xe_uc_init(struct xe_uc *uc)
6562
goto err;
6663

6764
ret = xe_guc_db_mgr_init(&uc->guc.dbm, ~0);
68-
if (ret)
69-
goto err;
70-
71-
xe_device_mem_access_put(xe);
72-
73-
return 0;
7465

7566
err:
76-
xe_device_mem_access_put(xe);
77-
7867
return ret;
7968
}
8069

0 commit comments

Comments
 (0)