]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/xe: Restore GT freq on GSC load error
authorVinay Belgaumkar <vinay.belgaumkar@intel.com>
Wed, 25 Sep 2024 20:49:18 +0000 (13:49 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 8 Oct 2024 23:06:20 +0000 (18:06 -0500)
As part of a Wa_22019338487, ensure that GT freq is restored
even when GSC reload is not successful.

Fixes: 3b1592fb7835 ("drm/xe/lnl: Apply Wa_22019338487")
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240925204918.1989574-1-vinay.belgaumkar@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
(cherry picked from commit 491418a258322bbd7f045e36884d2849b673f23d)
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_gt.c

index f0dc2bf24c7b172057e83e86c8b8aae718cb5014..ea65cf59372c09b3bc84eb9992156ca7509d832a 100644 (file)
@@ -874,7 +874,9 @@ int xe_gt_sanitize_freq(struct xe_gt *gt)
        int ret = 0;
 
        if ((!xe_uc_fw_is_available(&gt->uc.gsc.fw) ||
-            xe_uc_fw_is_loaded(&gt->uc.gsc.fw)) && XE_WA(gt, 22019338487))
+            xe_uc_fw_is_loaded(&gt->uc.gsc.fw) ||
+            xe_uc_fw_is_in_error_state(&gt->uc.gsc.fw)) &&
+           XE_WA(gt, 22019338487))
                ret = xe_guc_pc_restore_stashed_freq(&gt->uc.guc.pc);
 
        return ret;