cpufreq: qcom-hw: Add CPU clock provider support
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Thu, 17 Nov 2022 05:31:44 +0000 (11:01 +0530)
committerViresh Kumar <viresh.kumar@linaro.org>
Thu, 24 Nov 2022 04:45:48 +0000 (10:15 +0530)
commit4370232c727bf45940345dd1b88dbd8c2e42ec56
tree19cc89a918e1bbfe35f0863f08178a0053fc86bc
parentf9281ab6b8366a6697df27c11946f84a626f93b5
cpufreq: qcom-hw: Add CPU clock provider support

Qcom CPUFreq hardware (EPSS/OSM) controls clock and voltage to the CPU
cores. But this relationship is not represented with the clk framework
so far.

So, let's make the qcom-cpufreq-hw driver a clock provider. This makes the
clock producer/consumer relationship cleaner and is also useful for CPU
related frameworks like OPP to know the frequency at which the CPUs are
running.

The clock frequency provided by the driver is for each frequency domain.
We cannot get the frequency of each CPU core because, not all platforms
support per-core DCVS feature.

Also the frequency supplied by the driver is the actual frequency that
comes out of the EPSS/OSM block after the DCVS operation. This frequency is
not same as what the CPUFreq framework has set but it is the one that gets
supplied to the CPUs after throttling by LMh.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
[ Xiu: Fixed memleak. ]
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/qcom-cpufreq-hw.c