Subject: [PATCH V3 00/16] OPP: Add code to support operating-points-v2 bindings

From: [email-masked] (Viresh Kumar)
Date: Wed, 29 Jul 2015 16:22:55 +0530

Hi Guys,

Resending this again because:
- opp-hz is now 64 bit long and so that required a binding update.
- There is another 4 patch series that as updating turbo OPP support,
  along with updates to cpufreq core and cpufreq-dt driver.
- A minor bug-fix in V2 4/11, which caused false positive for duplicate
  OPPs in some cases.

Tested this on dual-core exynos board with the driver inbuilt as well as
a module. Tried multiple insertion/removals of the module. Have tested
cpufreq-dt driver with both old and new bindings.

Also tried by sending some dummy OPPs that contained opp-hz greater than
what can be captured by u32, to test the u64 updates.

----------x-----------------x-------------

This adds code to support operating-points-v2 bindings. Not everything
is supported yet, but most of the basic stuff is.

Pushed here as well for reference:
ssh://git at git.linaro.org/people/viresh.kumar/linux.git opp/v2

V2->V3:
- Update to opp-hz binding to make it pass u64 value instead of 32 bit
  value. This is done to support clock rates greater than 4 GHz.
- Merged two inter-related series, opp-v2 and turbo mode updates.
- Fixed 4/11 from opp-v2 series, which cased false positive for
  duplicate OPPs in some cases.
- Add a separate comment in _opp_add_dynamic() (5/16), to clearly
  specify that we pass &dev_opp->opp_list to list_for_each_entry_rcu()
  and not pass 'head' which contains the same value. Because head will
  get modified by the code and that may result in an infinite loop.
- Accumulate more RBY tags.

V1->V2:
- 1/11 is a new patch which moves the bindings file into opp specific
  folder.
- 'opp-suspend' binding got updated and is part of individual OPPs now,
  instead of a phandle present in the opp table.
- Some more minor reformatting as suggested by Bartlomiej and Stephen,
  they were already posted as reply to earlier patches in V1.

Bartlomiej Zolnierkiewicz (2):
  PM / OPP: add dev_pm_opp_is_turbo() helper
  cpufreq: Update boost flag while initializing freq table from OPPs

Viresh Kumar (14):
  PM / OPP: Update bindings to make opp-hz a 64 bit value
  PM / OPP: Create a directory for opp bindings
  PM / OPP: Relocate few routines
  PM / OPP: Create _remove_device_opp() for freeing dev_opp
  PM / OPP: Allocate dev_opp from _add_device_opp()
  PM / OPP: Break _opp_add_dynamic() into smaller functions
  PM / OPP: Add support to parse "operating-points-v2" bindings
  PM / OPP: Add clock-latency-ns support
  PM / OPP: Add OPP sharing information to OPP library
  PM / OPP: Add support for opp-suspend
  PM / OPP: Add helpers for initializing CPU OPPs
  cpufreq: Allow drivers to enable boost support after registering
    driver
  cpufreq: dt: Add support for operating-points-v2 bindings
  cpufreq: dt: Add support for turbo/boost mode

 .../devicetree/bindings/power/{ => opp}/opp.txt    |   40 +-
 drivers/base/power/opp.c                           | 1084 ++++++++++++++++----
 drivers/cpufreq/cpufreq-dt.c                       |   64 +-
 drivers/cpufreq/cpufreq.c                          |   68 +-
 drivers/cpufreq/cpufreq_opp.c                      |    4 +
 drivers/cpufreq/freq_table.c                       |   15 +
 include/linux/cpufreq.h                            |   12 +
 include/linux/pm_opp.h                             |   36 +
 8 files changed, 1049 insertions(+), 274 deletions(-)
 rename Documentation/devicetree/bindings/power/{ => opp}/opp.txt (93%)

-- 
2.4.0