summaryrefslogtreecommitdiff
path: root/include/acpi
diff options
context:
space:
mode:
authorPierre Gondois <Pierre.Gondois@arm.com>2022-05-18 11:09:00 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2022-05-19 19:45:34 +0200
commit3cc30dd00a580ca0c9c0b01639841cfd72d10129 (patch)
treeee1594495bd71716abe6d4dc3cc9091b137c2375 /include/acpi
parent6380b7b2b29da9d9c5ab2d4a265901cd93ba3696 (diff)
downloadlinux-rpi-3cc30dd00a580ca0c9c0b01639841cfd72d10129.tar.gz
linux-rpi-3cc30dd00a580ca0c9c0b01639841cfd72d10129.tar.bz2
linux-rpi-3cc30dd00a580ca0c9c0b01639841cfd72d10129.zip
cpufreq: CPPC: Enable fast_switch
The communication mean of the _CPC desired performance can be PCC, System Memory, System IO, or Functional Fixed Hardware. commit b7898fda5bc7 ("cpufreq: Support for fast frequency switching") fast_switching is 'for switching CPU frequencies from interrupt context'. Writes to SystemMemory and SystemIo are fast and suitable this. This is not the case for PCC and might not be the case for FFH. Enable fast_switching for the cppc_cpufreq driver in above cases. Add cppc_allow_fast_switch() to check the desired performance register address space and set fast_switching accordingly. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r--include/acpi/cppc_acpi.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/acpi/cppc_acpi.h b/include/acpi/cppc_acpi.h
index 92b7ea8d8f5e..c6108581d97d 100644
--- a/include/acpi/cppc_acpi.h
+++ b/include/acpi/cppc_acpi.h
@@ -141,6 +141,7 @@ extern int cppc_set_perf(int cpu, struct cppc_perf_ctrls *perf_ctrls);
extern int cppc_set_enable(int cpu, bool enable);
extern int cppc_get_perf_caps(int cpu, struct cppc_perf_caps *caps);
extern bool acpi_cpc_valid(void);
+extern bool cppc_allow_fast_switch(void);
extern int acpi_get_psd_map(unsigned int cpu, struct cppc_cpudata *cpu_data);
extern unsigned int cppc_get_transition_latency(int cpu);
extern bool cpc_ffh_supported(void);
@@ -175,6 +176,10 @@ static inline bool acpi_cpc_valid(void)
{
return false;
}
+static inline bool cppc_allow_fast_switch(void)
+{
+ return false;
+}
static inline unsigned int cppc_get_transition_latency(int cpu)
{
return CPUFREQ_ETERNAL;