[PATCH v2 0/9] PM: Create the AVS class of drivers

Jean Pihet jean.pihet at newoldbits.com
Wed Apr 18 04:04:22 EDT 2012


Hi Andrew, Greg,

Can you please look at this patch set?
The idea is to create a framework and drivers for the AVS class of
devices. This patch set implements the first step by moving the
existing code to drivers/power/avs. Next steps will be to implement
class support and notifications, add more classes of operations for
OMAP chips, etc.

Keerthy J is taking over the ownership of this code and will continue
the development further.

What do you think?

Regards,
Jean

On Mon, Mar 19, 2012 at 5:12 PM,  <jean.pihet at newoldbits.com> wrote:
> From: Jean Pihet <j-pihet at ti.com>
>
> AVS is a power management technique which controls the operating
> voltage of a device in order to optimize (i.e. reduce) its power
> consumption. The voltage is adapted depending on static factors
> (chip manufacturing process) and dynamic factors (temperature
> depending performance).
> AVS is also called SmartReflex on OMAP devices.
>
> To that end, create the AVS framework in drivers/power/avs and
> move the OMAP SmartReflex code to the new directory.
>
> In preparation to the move of the OMAP code the following changes have been
> made:
> - split the include files into generic and platform specific code,
> - fill in platform data from the device initialization code and pass
>  it to the driver,
> - create CONFIG_AVS* config options accordingly.
>
> The platform integration data for SmartReflex is passed from hwmod
> and the voltage layer to the driver using pdata.
>
>
> Tested on OMAP3 Beagleboard using omap2plus_defconfig with the
> CONFIG_POWER_AVS* options set.
> Based on master branch of the l-o git tree (3.3.0-rc6) [1], commit
> 85244e0edd240da2004bb2ab7cbcbc67a336f20d.
>
> [1] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
>
>
> History:
> v2: rework after the comments on MLs
>  . Keep the OMAP Kconfig options in the arch dir (Rafael),
>  . Move the shared header file from plat-omap to
>    include/linux/power/ (Tony)
>
> v1: initial revision
>
>
> Jean Pihet (9):
>  ARM: OMAP3+: voltage: export functions to plat/voltage.h
>  ARM: OMAP2+: SmartReflex: move the driver specific macros in
>    include/linux/power
>  ARM: OMAP3+: SmartReflex: class drivers should use struct omap_sr *
>  ARM: OMAP2+: smartreflex: Use the names from hwmod data instead of
>    voltage domains.
>  ARM: OMAP3: hwmod: rename the smartreflex entries
>  ARM: OMAP2+: SmartReflex: introduce a busy loop condition test macro
>  ARM: OMAP2+: SmartReflex: Use per-OPP data structure
>  ARM: OMAP2+: SmartReflex: add POWER_AVS Kconfig options
>  ARM: OMAP: SmartReflex: Move smartreflex driver to drivers/
>
>  arch/arm/mach-omap2/Makefile               |    4 +-
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |   12 +-
>  arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    3 +-
>  arch/arm/mach-omap2/pm.h                   |    2 +-
>  arch/arm/mach-omap2/smartreflex-class3.c   |   60 --
>  arch/arm/mach-omap2/smartreflex.c          | 1165 ----------------------------
>  arch/arm/mach-omap2/smartreflex.h          |  256 ------
>  arch/arm/mach-omap2/sr_device.c            |   38 +-
>  arch/arm/mach-omap2/voltage.h              |    1 -
>  arch/arm/mach-omap2/vp.h                   |    2 -
>  arch/arm/plat-omap/Kconfig                 |   30 +-
>  arch/arm/plat-omap/include/plat/voltage.h  |    3 +
>  drivers/power/Kconfig                      |    2 +
>  drivers/power/Makefile                     |    2 +
>  drivers/power/avs/Kconfig                  |   12 +
>  drivers/power/avs/Makefile                 |    2 +
>  drivers/power/avs/smartreflex-class3.c     |   61 ++
>  drivers/power/avs/smartreflex.c            | 1118 ++++++++++++++++++++++++++
>  drivers/power/avs/smartreflex.h            |  238 ++++++
>  include/linux/power/smartreflex.h          |   97 +++
>  20 files changed, 1590 insertions(+), 1518 deletions(-)
>  delete mode 100644 arch/arm/mach-omap2/smartreflex-class3.c
>  delete mode 100644 arch/arm/mach-omap2/smartreflex.c
>  delete mode 100644 arch/arm/mach-omap2/smartreflex.h
>  create mode 100644 drivers/power/avs/Kconfig
>  create mode 100644 drivers/power/avs/Makefile
>  create mode 100644 drivers/power/avs/smartreflex-class3.c
>  create mode 100644 drivers/power/avs/smartreflex.c
>  create mode 100644 drivers/power/avs/smartreflex.h
>  create mode 100644 include/linux/power/smartreflex.h
>
> --
> 1.7.5.4
>



More information about the linux-arm-kernel mailing list