soc/intel/common/cpu: Don't set any TCC settings if offset is 0
Many previous versions of this function would return early if tcc_offset is 0. This adds that logic back in. Change-Id: Ibc529520a4e74608cb5d20e5a6e8fc2c727c903c Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/42879 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com> Reviewed-by: Christian Walter <christian.walter@9elements.com> Reviewed-by: Sumeet R Pawnikar <sumeet.r.pawnikar@intel.com>
This commit is contained in:
parent
b389f3aa0b
commit
abd3cae588
|
@ -260,15 +260,20 @@ void configure_tcc_thermal_target(void)
|
||||||
const config_t *conf = config_of_soc();
|
const config_t *conf = config_of_soc();
|
||||||
msr_t msr;
|
msr_t msr;
|
||||||
|
|
||||||
|
if (!conf->tcc_offset)
|
||||||
|
return;
|
||||||
|
|
||||||
/* Set TCC activation offset */
|
/* Set TCC activation offset */
|
||||||
msr = rdmsr(MSR_PLATFORM_INFO);
|
msr = rdmsr(MSR_PLATFORM_INFO);
|
||||||
if ((msr.lo & BIT(30)) && conf->tcc_offset) {
|
if ((msr.lo & BIT(30))) {
|
||||||
msr = rdmsr(MSR_TEMPERATURE_TARGET);
|
msr = rdmsr(MSR_TEMPERATURE_TARGET);
|
||||||
msr.lo &= ~(0xf << 24);
|
msr.lo &= ~(0xf << 24);
|
||||||
msr.lo |= (conf->tcc_offset & 0xf) << 24;
|
msr.lo |= (conf->tcc_offset & 0xf) << 24;
|
||||||
wrmsr(MSR_TEMPERATURE_TARGET, msr);
|
wrmsr(MSR_TEMPERATURE_TARGET, msr);
|
||||||
}
|
}
|
||||||
|
|
||||||
msr = rdmsr(MSR_TEMPERATURE_TARGET);
|
msr = rdmsr(MSR_TEMPERATURE_TARGET);
|
||||||
|
|
||||||
/* Time Window Tau Bits [6:0] */
|
/* Time Window Tau Bits [6:0] */
|
||||||
msr.lo &= ~0x7f;
|
msr.lo &= ~0x7f;
|
||||||
msr.lo |= 0xe6; /* setting 100ms thermal time window */
|
msr.lo |= 0xe6; /* setting 100ms thermal time window */
|
||||||
|
|
Loading…
Reference in New Issue