]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Revert "drm/xe/tests/mocs: Update xe_force_wake_get() return handling"
authorTomita Moeko <tomitamoeko@gmail.com>
Tue, 29 Jul 2025 11:05:23 +0000 (19:05 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Aug 2025 08:48:47 +0000 (09:48 +0100)
This reverts commit 95a75ed2b005447f96fbd4ac61758ccda44069d1.

The reverted commit updated the handling of xe_force_wake_get to match
the new "return refcounted domain mask" semantics introduced in commit
a7ddcea1f5ac ("drm/xe: Error handling in xe_force_wake_get()"). However,
that API change only exists in 6.13 and later.

In 6.12 stable kernel, xe_force_wake_get still returns a status code.
The update incorrectly treats the return value as a mask, causing the
return value of 0 to be misinterpreted as an error.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Cc: Badal Nilawar <badal.nilawar@intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/xe/tests/xe_mocs.c

index 61a7d20ce42bfef4e50af7fb06ff80f58c0f6803..bf3f97d0c9c709183f8a3664767753aebc548037 100644 (file)
@@ -43,14 +43,12 @@ static void read_l3cc_table(struct xe_gt *gt,
 {
        struct kunit *test = kunit_get_current_test();
        u32 l3cc, l3cc_expected;
-       unsigned int fw_ref, i;
+       unsigned int i;
        u32 reg_val;
+       u32 ret;
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
-       if (!xe_force_wake_ref_has_domain(fw_ref, XE_FORCEWAKE_ALL)) {
-               xe_force_wake_put(gt_to_fw(gt), fw_ref);
-               KUNIT_ASSERT_TRUE_MSG(test, true, "Forcewake Failed.\n");
-       }
+       ret = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL);
+       KUNIT_ASSERT_EQ_MSG(test, ret, 0, "Forcewake Failed.\n");
 
        for (i = 0; i < info->num_mocs_regs; i++) {
                if (!(i & 1)) {
@@ -74,7 +72,7 @@ static void read_l3cc_table(struct xe_gt *gt,
                KUNIT_EXPECT_EQ_MSG(test, l3cc_expected, l3cc,
                                    "l3cc idx=%u has incorrect val.\n", i);
        }
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
+       xe_force_wake_put(gt_to_fw(gt), XE_FORCEWAKE_ALL);
 }
 
 static void read_mocs_table(struct xe_gt *gt,
@@ -82,14 +80,15 @@ static void read_mocs_table(struct xe_gt *gt,
 {
        struct kunit *test = kunit_get_current_test();
        u32 mocs, mocs_expected;
-       unsigned int fw_ref, i;
+       unsigned int i;
        u32 reg_val;
+       u32 ret;
 
        KUNIT_EXPECT_TRUE_MSG(test, info->unused_entries_index,
                              "Unused entries index should have been defined\n");
 
-       fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
-       KUNIT_ASSERT_NE_MSG(test, fw_ref, 0, "Forcewake Failed.\n");
+       ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
+       KUNIT_ASSERT_EQ_MSG(test, ret, 0, "Forcewake Failed.\n");
 
        for (i = 0; i < info->num_mocs_regs; i++) {
                if (regs_are_mcr(gt))
@@ -107,7 +106,7 @@ static void read_mocs_table(struct xe_gt *gt,
                                    "mocs reg 0x%x has incorrect val.\n", i);
        }
 
-       xe_force_wake_put(gt_to_fw(gt), fw_ref);
+       xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
 }
 
 static int mocs_kernel_test_run_device(struct xe_device *xe)