diff options
author | Vinay Belgaumkar <vinay.belgaumkar@intel.com> | 2024-07-01 16:15:29 -0700 |
---|---|---|
committer | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2024-07-02 12:14:00 -0400 |
commit | aaa08078e7251131f045ba248a68671db7f7bdf7 (patch) | |
tree | e944920e43981256db41d9ce544425a41969622d /drivers/gpu/drm/xe/xe_guc_pc.c | |
parent | b0b2b50cdbd132cb78ed25c27081849a405b75e3 (diff) |
drm/xe/bmg: Apply Wa_22019338487
Extend this WA to BMG GT as well. In this case media GT is
not affected. The cap frequencies and max allowed ggtt writes
are different as well. On BMG, we need to do a flush after 1100
GGTT writes, and we need to limit the GT frequency request
to 2133 Mhz during driver load and leave it at that value after
driver unloads.
v3: Fix checkpatch issue
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240701231529.2582452-2-vinay.belgaumkar@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu/drm/xe/xe_guc_pc.c')
-rw-r--r-- | drivers/gpu/drm/xe/xe_guc_pc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c index f7b468930697..32e93a8127d4 100644 --- a/drivers/gpu/drm/xe/xe_guc_pc.c +++ b/drivers/gpu/drm/xe/xe_guc_pc.c @@ -46,6 +46,7 @@ #define GT_FREQUENCY_SCALER 3 #define LNL_MERT_FREQ_CAP 800 +#define BMG_MERT_FREQ_CAP 2133 /** * DOC: GuC Power Conservation (PC) @@ -704,10 +705,14 @@ static u32 pc_max_freq_cap(struct xe_guc_pc *pc) { struct xe_gt *gt = pc_to_gt(pc); - if (XE_WA(gt, 22019338487)) - return min(LNL_MERT_FREQ_CAP, pc->rp0_freq); - else + if (XE_WA(gt, 22019338487)) { + if (xe_gt_is_media_type(gt)) + return min(LNL_MERT_FREQ_CAP, pc->rp0_freq); + else + return min(BMG_MERT_FREQ_CAP, pc->rp0_freq); + } else { return pc->rp0_freq; + } } /** |