OPP: Remove OPPs when not in use
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest8 patches 0 repliesNew
Patches in v1 No applies recorded yet
Reviews trailers per patch
None of the 15 patches has a Reviewed-by or Acked-by.
| Patch | Stefan Wahren |
|---|---|
| 1/8 | |
| 2/8 | |
| 3/8 | |
| 4/8 | |
| 4/8 | |
| 4/8 | |
| 4/8 | |
| 4/8 | |
| 5/8 | |
| 5/8 | |
| 5/8 | |
| 5/8 | |
| 6/8 | T-b |
| 7/8 | |
| 8/8 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH 0/8] OPP: Remove OPPs when not in use
Hi Rafael,
This is what I came up with in reply to:
http://www.spinics.net/lists/arm-kernel/msg380065.html
The issue was first reported by Stefan Wahren, where he got warnings for duplicate OPP entries while he tried to insert/remove cpufreq-dt.ko multiple times.
This set fixes it by first marking each OPP entry as static (created from DT) or dynamic. And then freeing only static ones from the ->exit() path of cpufreq drivers. An API is also provided to remove the dynamics ones, but no one is using it currently.
This also modifies bunch of cpufreq drivers which were using OPPs created from DT.
At last, thanks to Paul and You to clarify my doubts on RCU. Hope I understood them correctly :)
Pushed here: git://git.linaro.org/people/viresh.kumar/linux.git cpufreq/opp-remove-v1 Rebased over: pm/linux-next
Tested-on: Exynos 5250, dual cortex A15 with cpufreq-dt.c.
Viresh Kumar (8):
opp: rename 'head' as 'rcu_head' or 'srcu_head' based on its type
opp: don't match for existing OPPs when list is empty
opp: mark OPPs as 'static' or 'dynamic'
opp: Introduce APIs to remove OPPs
arm_big_little: free OPP table created during ->init()
cpufreq-dt: free OPP table created during ->init()
exynos5440: free OPP table created during ->init()
imx6q: free OPP table created during ->init()
drivers/base/power/opp.c | 196 +++++++++++++++++++++++++++-------- drivers/cpufreq/arm_big_little.c | 7 +- drivers/cpufreq/arm_big_little.h | 5 +- drivers/cpufreq/arm_big_little_dt.c | 1 + drivers/cpufreq/cpufreq-dt.c | 6 +- drivers/cpufreq/exynos5440-cpufreq.c | 5 +- drivers/cpufreq/imx6q-cpufreq.c | 11 +- include/linux/pm_opp.h | 12 ++- 8 files changed, 195 insertions(+), 48 deletions(-)
Signature · 1 line
2.0.3.693.g996b0fd