aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Roper <[email protected]>2024-06-27 13:37:42 -0700
committerMatt Roper <[email protected]>2024-06-28 14:00:08 -0700
commit25b1f6cbd8c55216e02bd1c116a5f62f10f4d535 (patch)
tree16eef1221665f6ee5136dc3e33b36c31d4f6781f
parent0f54a19262154cb3965ba910c8b081417d97c6c8 (diff)
drm/xe/mocs: Update MOCS assertions and remove redundant checks
Rely more heavily on assertions to describe the MOCS programming invariants. CI checks these assertions and will ensure no violations sneak in due to programmer error, so we can remove some of the redundant WARN and silent return checks from non-debug builds. Also tweak/augment some of the existing assertions: there's no reason we'd ever want a platform not to have a MOCS 'ops' structure hooked up so ensure info->ops is non-NULL. Likewise, we should never have a case where the bspec-defined MOCS setting table is larger than the number of MOCS registers exposed by the hardware, so add an extra assert on those sizes as well. Cc: Michal Wajdeczko <[email protected]> Signed-off-by: Matt Roper <[email protected]> Reviewed-by: Lucas De Marchi <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r--drivers/gpu/drm/xe/xe_mocs.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/gpu/drm/xe/xe_mocs.c b/drivers/gpu/drm/xe/xe_mocs.c
index de3f2d3f1b04..110ef89cd640 100644
--- a/drivers/gpu/drm/xe/xe_mocs.c
+++ b/drivers/gpu/drm/xe/xe_mocs.c
@@ -642,12 +642,8 @@ static unsigned int get_mocs_settings(struct xe_device *xe,
*/
xe_assert(xe, info->unused_entries_index != 0);
- xe_assert(xe, !info->ops || info->ops->dump);
-
- if (XE_WARN_ON(info->size > info->n_entries)) {
- info->table = NULL;
- return 0;
- }
+ xe_assert(xe, info->ops && info->ops->dump);
+ xe_assert(xe, info->size <= info->n_entries);
if (!IS_DGFX(xe) || GRAPHICS_VER(xe) >= 20)
flags |= HAS_GLOBAL_MOCS;
@@ -675,9 +671,6 @@ static void __init_mocs_table(struct xe_gt *gt,
unsigned int i;
u32 mocs;
- xe_gt_WARN_ONCE(gt, !info->unused_entries_index,
- "Unused entries index should have been defined\n");
-
mocs_dbg(gt, "mocs entries: %d\n", info->n_entries);
for (i = 0; i < info->n_entries; i++) {
@@ -779,9 +772,6 @@ void xe_mocs_dump(struct xe_gt *gt, struct drm_printer *p)
flags = get_mocs_settings(xe, &table);
- if (!table.ops->dump)
- return;
-
xe_pm_runtime_get_noresume(xe);
ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);