drm/xe/mocs: Move warn/assertion up
authorLucas De Marchi <lucas.demarchi@intel.com>
Wed, 28 Feb 2024 06:10:46 +0000 (22:10 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 1 Mar 2024 04:29:41 +0000 (20:29 -0800)
The warn-once in __init_mocs_table() to make sure there's an index set
for unused entries is more a sanity check that should be done as the
first thing in that function. The kunit test replicates the same check,
so also move it up and turn it into a failure condition for the test.

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240228061048.3661978-4-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/tests/xe_mocs.c
drivers/gpu/drm/xe/xe_mocs.c

index 7c91e01..9787546 100644 (file)
@@ -79,11 +79,12 @@ static void read_mocs_table(struct xe_gt *gt,
 
        struct kunit *test = xe_cur_kunit();
 
+       KUNIT_EXPECT_TRUE_MSG(test, info->unused_entries_index,
+                             "Unused entries index should have been defined\n");
+
        ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
        KUNIT_ASSERT_EQ_MSG(test, ret, 0, "Forcewake Failed.\n");
        mocs_dbg(&gt_to_xe(gt)->drm, "Global MOCS entries:%d\n", info->n_entries);
-       drm_WARN_ONCE(&xe->drm, !info->unused_entries_index,
-                     "Unused entries index should have been defined\n");
 
        for (i = 0; i < info->n_entries; i++) {
                mocs = get_entry_control(info, i);
index bdb755b..60ab34f 100644 (file)
@@ -470,9 +470,11 @@ static void __init_mocs_table(struct xe_gt *gt,
        unsigned int i;
        u32 mocs;
 
-       mocs_dbg(&gt_to_xe(gt)->drm, "mocs entries: %d\n", info->n_entries);
        drm_WARN_ONCE(&xe->drm, !info->unused_entries_index,
                      "Unused entries index should have been defined\n");
+
+       mocs_dbg(&gt_to_xe(gt)->drm, "mocs entries: %d\n", info->n_entries);
+
        for (i = 0; i < info->n_entries; i++) {
                mocs = get_entry_control(info, i);