[PATCH v2 00/18] OMAP3+: PM: introduce SR class 1.5
Nishanth Menon
nm at ti.com
Wed Mar 2 05:55:13 EST 2011
Hi,
This series intends to introduce SmartReflex AVS Class 1.5 support which
is now the recommended AVS class for usage in OMAP3630, OMAP4 and potentially
in later generation of silicon as well. Smartreflex class 1.5 is a software
controlled hardware calibration mechanism designed to improve dvfs latencies
and system performance as well as helping bring in additional benefits to the
system from h/w perspective. The corresponding patch has details on this class
and the implementation as well.
The series eventually results in OMAP343x based platforms using class3 and
OMAP3630, OMAP4 platforms using class1.5 automatically without modifications
or additions to board files.
This series is Based on:
a) k.org 2.6.38-rc7 (b2.6.38-rc7)
b) The following branches Kevin Hilman's tree: (pm-base-v2)
'pm/for_2.6.38/pm-fixes', 'pm/for_2.6.39/pm-misc' and 'pm/pm-wip/cpufreq'
http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git;a=summary
Rationale: there are some sr-cleanups done here which makes at least 1 patch
create a minor conflict (kasprintf for sr name), but should reasonably
apply to k.org as well, and since this series is targeted for 39-rc1, builds
on previously accepted patches.
Some good fixes needed are here (optional):
c) sr-fixes: (sr-baseline-v2)
http://marc.info/?l=linux-omap&m=129783708019505&w=2
http://marc.info/?l=linux-omap&m=129679846322563&w=2
Other interesting series:
i) http://marc.info/?t=129825445100003&r=1&w=2 cleanups of voltage.c
- rebase should be minor effort
ii) http://marc.info/?l=linux-omap&m=129783700319445&w=2 fixes for omap4
- might conflict on macro cleanup with (i)
- should not conflict with the current series.
This series is also available at:
git://gitorious.org/linux-omap-nm-sr/linux-omap-sr.git
Branch: sr-1.5-v2
Note: There is also a branch dvfs-test-v2 in my tree which contains the test
version of code for OMAP3 based on Vishwa's DVFS series which is currently
being revamped. if run on OMAP4, it just throws up a bit of warnings, but
wont crash.
The series contains a bunch of bugfixes and improvements needed to introduce
Smartreflex class 1.5.
Changes in v2 since v1:
* I dropped patch 2/19 for 3630 ES revision, based on the discussion in:
http://marc.info/?t=129811710300003&r=1&w=2
NOTE: 3630 ES revision fixes need to be cleanly done at a later point,
and there is not much use doing a temporary hackup job just for SR. Since
it ain't broke atm for higher ES revs for SR, I will leave it alone.
* Fixed the bug exposed by bootloaders which setup an OPP which is not enabled
in kernel http://marc.info/?t=129811710500010&r=1&w=2
- parameter checks were necessary, impacted patches 5 and 17
* Documentation update following the explanation required for
http://marc.info/?t=129811710300007&r=1&w=2 for patch 5
- example provided in the discussion is useful for reviewer perspective in
commit message
Comments not incorporated from v1:
* http://marc.info/?t=129811710500007&r=1&w=2 - there is no reason to allow
sr notifiers after class has been deinitialized, so not allowing it.
* http://marc.info/?t=129811710300004&r=1&w=2 - the omap2_init_voltage fix
is not the intent of this series. infact handling of mpurate and
omap2_init_voltage needs to be merged in at some future point of time.
v1: http://marc.info/?l=linux-omap&m=129811693118173&w=2
Nishanth Menon (18):
omap3: hwmod: add smartreflex irqs
omap3+: voltage: remove initial voltage
omap3+: voltage: remove spurious pr_notice for debugfs
omap3+: voltage: use IS_ERR_OR_NULL
omap3+: voltage: use volt_data pointer instead values
omap3+: voltage: add transdone apis
omap3+: sr: make notify independent of class
omap3+: sr: introduce class init,deinit and priv data
omap3+: sr: fix cosmetic indentation
omap3+: sr: call handler with interrupt disabled
omap3+: sr: disable interrupt by default
omap3+: sr: enable/disable SR only on need
omap3+: sr: introduce notifiers flags
omap3+: sr: introduce notifier_control
omap3+: sr: disable spamming interrupts
omap3+: sr: make enable path use volt_data pointer
omap3630+: sr: add support for class 1.5
omap3430: sr: class3: restrict cpu to run on
arch/arm/mach-omap2/Makefile | 1 +
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 17 +
arch/arm/mach-omap2/pm.c | 3 +-
arch/arm/mach-omap2/smartreflex-class1p5.c | 582 +++++++++++++++++++++++++
arch/arm/mach-omap2/smartreflex-class3.c | 21 +-
arch/arm/mach-omap2/smartreflex.c | 249 +++++++++--
arch/arm/mach-omap2/voltage.c | 251 ++++++++---
arch/arm/plat-omap/Kconfig | 17 +
arch/arm/plat-omap/include/plat/smartreflex.h | 42 ++-
arch/arm/plat-omap/include/plat/voltage.h | 36 ++-
10 files changed, 1097 insertions(+), 122 deletions(-)
create mode 100644 arch/arm/mach-omap2/smartreflex-class1p5.c
Testing performed:
Testing with dvfs-test-v2 - http://pastebin.mozilla.org/1117872
- transitions from all opps to all other opps,sr enabled, disable
- platforms: SDP3430(OMAP3430), SDP3630(OMAP3630)
(note: dvfs series does'nt support OMAP4 yet)
Testing with sr-1.5-v2 - http://pastebin.mozilla.org/1117880
- enable disable in domain combinations, test the new debugfs entries
etc..
- platforms: SDP3430(OMAP3430), SDP3630(OMAP3630), PandaBoard(OMAP4430)
Regards,
Nishanth Menon
More information about the linux-arm-kernel
mailing list