29 Sep, 2014

2 commits

  • Export symbols from the PPMU driver needed to build the exynos bus
    driver as a module.

    Cc: MyungJoo Ham
    Cc: Kyungmin Park
    Cc: Kukjin Kim
    Cc: Bartlomiej Zolnierkiewicz
    Signed-off-by: Punit Agrawal
    Signed-off-by: MyungJoo Ham

    Punit Agrawal
     
  • The Kconfig symbol ARCH_HAS_OPP became redundant in v3.16: commit
    049d595a4db3 ("PM / OPP: Make OPP invisible to users in Kconfig")
    removed the only dependency that used it. Setting it had no effect
    anymore.

    So commit 78c5e0bb145d ("PM / OPP: Remove ARCH_HAS_OPP") removed it. For
    some reason that commit did not remove all select statements for that
    symbol. These statements are now useless. Remove one from devfreq too.

    Signed-off-by: Paul Bolle
    Signed-off-by: MyungJoo Ham

    Paul Bolle
     

23 Jul, 2014

1 commit

  • Since the OPP layer is a kernel library which has been converted to be
    directly selectable by its callers rather than user selectable and
    requiring architectures to enable it explicitly the ARCH_HAS_OPP symbol
    has become redundant and can be removed. Do so.

    Signed-off-by: Mark Brown
    Reviewed-by: Viresh Kumar
    Acked-by: Nishanth Menon
    Acked-by: Rob Herring
    Acked-by: Shawn Guo
    Acked-by: Simon Horman
    Signed-off-by: Rafael J. Wysocki

    Mark Brown
     

24 May, 2014

3 commits


28 Jan, 2014

1 commit

  • Exynos4 devfreq driver uses mach/map.h which is not available on
    multiplatform. Hence disable build on multiplatform for now.
    Without this patch we get the following build errors:
    drivers/devfreq/exynos/exynos4_bus.h:15:22: fatal error: mach/map.h: No such file or directory

    Signed-off-by: Sachin Kamat
    Signed-off-by: Rafael J. Wysocki

    Sachin Kamat
     

03 Jun, 2013

2 commits

  • Dependencies on CPU_EXYNOS4212 and CPU_EXYNOS4412 for the "ARM
    Exynos4210/4212/4412 Memory Bus DEVFREQ Driver" were added in commit
    7b4050381127ae11fcfc74a106d715a5fbbf888a ("PM/Devfreq: Add Exynos4-bus
    device DVFS driver for Exynos4210/4212/4412."). The tree (at that time,
    v3.3, and currently) makes clear that this should have been dependencies
    on SOC_EXYNOS4212 and SOC_EXYNOS4412.

    Signed-off-by: Paul Bolle

    Paul Bolle
     
  • Exynos5-bus device devfreq driver monitors PPMU counters and
    adjusts operating frequencies and voltages with OPP. ASV should
    be used to provide appropriate voltages as per the speed group
    of the SoC rather than using a constant 1.025V.

    Signed-off-by: Abhilash Kesavan
    [myungjoo.ham@samsung.com: minor style update]
    Signed-off-by: MyungJoo Ham
    Cc: Jonghwan Choi
    Cc: Kukjin Kim

    Abhilash Kesavan
     

20 Nov, 2012

1 commit

  • Add GPL module license and remove the static build
    restrictions for building governors. This allows governors now
    to be loaded on a need basis and reloaded independently of kernel
    build

    Cc: Rajagopal Venkat
    Cc: MyungJoo Ham
    Cc: Kyungmin Park
    Cc: "Rafael J. Wysocki"
    Cc: Kevin Hilman
    Cc: linux-pm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org

    Signed-off-by: Nishanth Menon
    Acked-by: MyungJoo Ham
    Signed-off-by: MyungJoo Ham

    Nishanth Menon
     

16 Apr, 2012

1 commit


20 Dec, 2011

1 commit

  • Exynos4-bus device devfreq driver add DVFS capability for
    Exynos4210/4212/4412-Bus (memory). The driver monitors PPMU counters of memory
    controllers and adjusts operating frequencies and voltages with OPP.
    For Exynos4210, vdd_int is controlled. For exynos4412/4212, vdd_mif and
    vdd_int are controlled.

    Dependency (CONFIG_EXYNOS_ASV):
    Exynos4 ASV driver has been posted in the mailing list; however, it
    si not yet upstreamed. Although the current revision of Exynos4 ASV
    patch does not contain "CONFIG_EXYNOS_ASV", we have added the symbol
    to hide the dependent from compilers for now. As soon as Exynos4 ASV
    drivers are merged, the #ifdef statement will be removed or the
    name will be changed.

    However, enabling ASV is essential in most Exynos4 chips to reduce
    the power consumption of Exynos4210 because without ASV, this Devfreq
    driver assumes the worst case scenario, which consumes more power.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park

    ---
    Changes from v1
    - Support 4212 and 4412 as well as 4210.

    MyungJoo Ham
     

15 Nov, 2011

1 commit


02 Oct, 2011

2 commits

  • Four cpufreq-like governors are provided as examples.

    powersave: use the lowest frequency possible. The user (device) should
    set the polling_ms as 0 because polling is useless for this governor.

    performance: use the highest freqeuncy possible. The user (device)
    should set the polling_ms as 0 because polling is useless for this
    governor.

    userspace: use the user specified frequency stored at
    devfreq.user_set_freq. With sysfs support in the following patch, a user
    may set the value with the sysfs interface.

    simple_ondemand: simplified version of cpufreq's ondemand governor.

    When a user updates OPP entries (enable/disable/add), OPP framework
    automatically notifies devfreq to update operating frequency
    accordingly. Thus, devfreq users (device drivers) do not need to update
    devfreq manually with OPP entry updates or set polling_ms for powersave
    , performance, userspace, or any other "static" governors.

    Note that these are given only as basic examples for governors and any
    devices with devfreq may implement their own governors with the drivers
    and use them.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Reviewed-by: Mike Turquette
    Acked-by: Kevin Hilman
    Signed-off-by: Rafael J. Wysocki

    MyungJoo Ham
     
  • With OPPs, a device may have multiple operable frequency and voltage
    sets. However, there can be multiple possible operable sets and a system
    will need to choose one from them. In order to reduce the power
    consumption (by reducing frequency and voltage) without affecting the
    performance too much, a Dynamic Voltage and Frequency Scaling (DVFS)
    scheme may be used.

    This patch introduces the DVFS capability to non-CPU devices with OPPs.
    DVFS is a techique whereby the frequency and supplied voltage of a
    device is adjusted on-the-fly. DVFS usually sets the frequency as low
    as possible with given conditions (such as QoS assurance) and adjusts
    voltage according to the chosen frequency in order to reduce power
    consumption and heat dissipation.

    The generic DVFS for devices, devfreq, may appear quite similar with
    /drivers/cpufreq. However, cpufreq does not allow to have multiple
    devices registered and is not suitable to have multiple heterogenous
    devices with different (but simple) governors.

    Normally, DVFS mechanism controls frequency based on the demand for
    the device, and then, chooses voltage based on the chosen frequency.
    devfreq also controls the frequency based on the governor's frequency
    recommendation and let OPP pick up the pair of frequency and voltage
    based on the recommended frequency. Then, the chosen OPP is passed to
    device driver's "target" callback.

    When PM QoS is going to be used with the devfreq device, the device
    driver should enable OPPs that are appropriate with the current PM QoS
    requests. In order to do so, the device driver may call opp_enable and
    opp_disable at the notifier callback of PM QoS so that PM QoS's
    update_target() call enables the appropriate OPPs. Note that at least
    one of OPPs should be enabled at any time; be careful when there is a
    transition.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Reviewed-by: Mike Turquette
    Acked-by: Kevin Hilman
    Signed-off-by: Rafael J. Wysocki

    MyungJoo Ham