[Intel-xe] [PATCH] drm/xe/mtl: Use 16.67 Mhz freq scale factor to get rpX

Badal Nilawar badal.nilawar at intel.com
Wed Nov 1 15:17:56 UTC 2023


For mtl and above 16.67 Mhz is the scale factor to calculate
rpX frequencies.

Signed-off-by: Badal Nilawar <badal.nilawar at intel.com>
---
 drivers/gpu/drm/xe/xe_guc_pc.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
index 74247e0d3674..90e3e1b56c27 100644
--- a/drivers/gpu/drm/xe/xe_guc_pc.c
+++ b/drivers/gpu/drm/xe/xe_guc_pc.c
@@ -306,14 +306,15 @@ static int pc_set_max_freq(struct xe_guc_pc *pc, u32 freq)
 static void mtl_update_rpe_value(struct xe_guc_pc *pc)
 {
 	struct xe_gt *gt = pc_to_gt(pc);
-	u32 reg;
+	u32 freq;
 
 	if (xe_gt_is_media_type(gt))
-		reg = xe_mmio_read32(gt, MTL_MPE_FREQUENCY);
+		freq = xe_mmio_read32(gt, MTL_MPE_FREQUENCY);
 	else
-		reg = xe_mmio_read32(gt, MTL_GT_RPE_FREQUENCY);
+		freq = xe_mmio_read32(gt, MTL_GT_RPE_FREQUENCY);
 
-	pc->rpe_freq = REG_FIELD_GET(MTL_RPE_MASK, reg) * GT_FREQUENCY_MULTIPLIER;
+	freq = REG_FIELD_GET(MTL_RPE_MASK, freq);
+	pc->rpe_freq = decode_freq(freq);
 }
 
 static void tgl_update_rpe_value(struct xe_guc_pc *pc)
@@ -645,18 +646,20 @@ static const struct attribute *pc_attrs[] = {
 static void mtl_init_fused_rp_values(struct xe_guc_pc *pc)
 {
 	struct xe_gt *gt = pc_to_gt(pc);
-	u32 reg;
+	u32 freq;
 
 	xe_device_assert_mem_access(pc_to_xe(pc));
 
 	if (xe_gt_is_media_type(gt))
-		reg = xe_mmio_read32(gt, MTL_MEDIAP_STATE_CAP);
+		freq = xe_mmio_read32(gt, MTL_MEDIAP_STATE_CAP);
 	else
-		reg = xe_mmio_read32(gt, MTL_RP_STATE_CAP);
-	pc->rp0_freq = REG_FIELD_GET(MTL_RP0_CAP_MASK, reg) *
-		GT_FREQUENCY_MULTIPLIER;
-	pc->rpn_freq = REG_FIELD_GET(MTL_RPN_CAP_MASK, reg) *
-		GT_FREQUENCY_MULTIPLIER;
+		freq = xe_mmio_read32(gt, MTL_RP_STATE_CAP);
+
+	freq = REG_FIELD_GET(MTL_RP0_CAP_MASK, freq);
+	pc->rp0_freq = decode_freq(freq);
+
+	freq = REG_FIELD_GET(MTL_RPN_CAP_MASK, freq);
+	pc->rpn_freq = decode_freq(freq);
 }
 
 static void tgl_init_fused_rp_values(struct xe_guc_pc *pc)
-- 
2.25.1



More information about the Intel-xe mailing list