]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/pf: Reset thresholds when releasing a VF config
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Fri, 30 Aug 2024 13:21:00 +0000 (15:21 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Mon, 2 Sep 2024 18:51:03 +0000 (20:51 +0200)
As part of the VF config release, we should reset all parameters,
including thresholds, to always start with the clean VF config.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240830132100.1704-3-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c

index 151eb69ab4aed54381afed1d47eb31623f6be4ce..a95e546b77446c8acd109e9a04d40de1cce4a88b 100644 (file)
@@ -1842,6 +1842,18 @@ u32 xe_gt_sriov_pf_config_get_threshold(struct xe_gt *gt, unsigned int vfid,
        return value;
 }
 
+static void pf_reset_config_thresholds(struct xe_gt *gt, struct xe_gt_sriov_config *config)
+{
+       lockdep_assert_held(xe_gt_sriov_pf_master_mutex(gt));
+
+#define reset_threshold_config(TAG, ...) ({                            \
+       config->thresholds[MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG)] = 0;   \
+});
+
+       MAKE_XE_GUC_KLV_THRESHOLDS_SET(reset_threshold_config);
+#undef reset_threshold_config
+}
+
 static void pf_release_vf_config(struct xe_gt *gt, unsigned int vfid)
 {
        struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
@@ -1857,6 +1869,7 @@ static void pf_release_vf_config(struct xe_gt *gt, unsigned int vfid)
        pf_release_config_ctxs(gt, config);
        pf_release_config_dbs(gt, config);
        pf_reset_config_sched(gt, config);
+       pf_reset_config_thresholds(gt, config);
 }
 
 /**