]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
tools/power/x86/intel-speed-select: Set TRL MSR in 100 MHz units
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Sat, 6 Jul 2024 05:17:55 +0000 (01:17 -0400)
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Sun, 7 Jul 2024 07:36:47 +0000 (00:36 -0700)
When SST-TF is disabled in auto mode, the performance is getting
limited.

This is caused by wrong programming of Turbo Ratio Limit (TRL) MSR.

This MSR always accepts the frequency ratio in 100 MHz unit. When the
TPMI is sending TRL in 1 MHz unit, change to 100 MHz, before updating
TRL MSR.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
tools/power/x86/intel-speed-select/isst-core.c

index 05efffbca3b7a89bbb62da29f6024d7a7fba8423..e05561d00458f2961a476ffa99341acf8465ffc2 100644 (file)
@@ -283,6 +283,8 @@ int isst_set_trl(struct isst_id *id, unsigned long long trl)
        return 0;
 }
 
+#define MSR_TRL_FREQ_MULTIPLIER                100
+
 int isst_set_trl_from_current_tdp(struct isst_id *id, unsigned long long trl)
 {
        unsigned long long msr_trl;
@@ -310,6 +312,10 @@ int isst_set_trl_from_current_tdp(struct isst_id *id, unsigned long long trl)
                for (i = 0; i < 8; ++i) {
                        unsigned long long _trl = trl[i];
 
+                       /* MSR is always in 100 MHz unit */
+                       if (isst_get_disp_freq_multiplier() == 1)
+                               _trl /= MSR_TRL_FREQ_MULTIPLIER;
+
                        msr_trl |= (_trl << (i * 8));
                }
        }