@@ -363,16 +363,17 @@ static void tgl_update_rpa_value(struct xe_guc_pc *pc)
363
363
u32 reg ;
364
364
365
365
/*
366
- * For PVC we still need to use fused RP1 as the approximation for RPe
367
- * For other platforms than PVC we get the resolved RPe directly from
366
+ * For PVC we still need to use fused RP0 as the approximation for RPa
367
+ * For other platforms than PVC we get the resolved RPa directly from
368
368
* PCODE at a different register
369
369
*/
370
- if (xe -> info .platform == XE_PVC )
370
+ if (xe -> info .platform == XE_PVC ) {
371
371
reg = xe_mmio_read32 (& gt -> mmio , PVC_RP_STATE_CAP );
372
- else
372
+ pc -> rpa_freq = REG_FIELD_GET (RP0_MASK , reg ) * GT_FREQUENCY_MULTIPLIER ;
373
+ } else {
373
374
reg = xe_mmio_read32 (& gt -> mmio , FREQ_INFO_REC );
374
-
375
- pc -> rpa_freq = REG_FIELD_GET ( RPA_MASK , reg ) * GT_FREQUENCY_MULTIPLIER ;
375
+ pc -> rpa_freq = REG_FIELD_GET ( RPA_MASK , reg ) * GT_FREQUENCY_MULTIPLIER ;
376
+ }
376
377
}
377
378
378
379
static void tgl_update_rpe_value (struct xe_guc_pc * pc )
@@ -386,12 +387,13 @@ static void tgl_update_rpe_value(struct xe_guc_pc *pc)
386
387
* For other platforms than PVC we get the resolved RPe directly from
387
388
* PCODE at a different register
388
389
*/
389
- if (xe -> info .platform == XE_PVC )
390
+ if (xe -> info .platform == XE_PVC ) {
390
391
reg = xe_mmio_read32 (& gt -> mmio , PVC_RP_STATE_CAP );
391
- else
392
+ pc -> rpe_freq = REG_FIELD_GET (RP1_MASK , reg ) * GT_FREQUENCY_MULTIPLIER ;
393
+ } else {
392
394
reg = xe_mmio_read32 (& gt -> mmio , FREQ_INFO_REC );
393
-
394
- pc -> rpe_freq = REG_FIELD_GET ( RPE_MASK , reg ) * GT_FREQUENCY_MULTIPLIER ;
395
+ pc -> rpe_freq = REG_FIELD_GET ( RPE_MASK , reg ) * GT_FREQUENCY_MULTIPLIER ;
396
+ }
395
397
}
396
398
397
399
static void pc_update_rp_values (struct xe_guc_pc * pc )
0 commit comments