diff options
Diffstat (limited to 'drivers/cpufreq')
| -rw-r--r-- | drivers/cpufreq/cppc_cpufreq.c | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c index 8d5279c21e6c..1abedcae50b2 100644 --- a/drivers/cpufreq/cppc_cpufreq.c +++ b/drivers/cpufreq/cppc_cpufreq.c @@ -339,6 +339,16 @@ static int cppc_verify_policy(struct cpufreq_policy_data *policy)  	return 0;  } +static unsigned int __cppc_cpufreq_get_transition_delay_us(unsigned int cpu) +{ +	unsigned int transition_latency_ns = cppc_get_transition_latency(cpu); + +	if (transition_latency_ns == CPUFREQ_ETERNAL) +		return CPUFREQ_DEFAULT_TRANSITION_LATENCY_NS / NSEC_PER_USEC; + +	return transition_latency_ns / NSEC_PER_USEC; +} +  /*   * The PCC subspace describes the rate at which platform can accept commands   * on the shared PCC channel (including READs which do not count towards freq @@ -361,12 +371,12 @@ static unsigned int cppc_cpufreq_get_transition_delay_us(unsigned int cpu)  			return 10000;  		}  	} -	return cppc_get_transition_latency(cpu) / NSEC_PER_USEC; +	return __cppc_cpufreq_get_transition_delay_us(cpu);  }  #else  static unsigned int cppc_cpufreq_get_transition_delay_us(unsigned int cpu)  { -	return cppc_get_transition_latency(cpu) / NSEC_PER_USEC; +	return __cppc_cpufreq_get_transition_delay_us(cpu);  }  #endif | 
