1. 15 11月, 2012 1 次提交
    • N
      PM / OPP: predictable fail results for opp_find* functions, v2 · 0779726c
      Nishanth Menon 提交于
      Currently the opp_find* functions return -ENODEV when:
      a) it cant find a device (e.g. request for an OPP search on device
         which was not registered)
      b) When it cant find a match for the search strategy used
      
      This makes life a little in-efficient for users such as devfreq
      to make reasonable judgement before switching search strategies.
      
      So, standardize the return results as following:
       -EINVAL for bad pointer parameters
       -ENODEV when device cannot be found
       -ERANGE when search fails
      
      This has the following benefit for devfreq implementation:
      The search fails when an unregistered device pointer is provided.
      This is a trigger to change the search direction and search for
      a better fit, however, if we cannot differentiate between a valid
      search range failure Vs an unregistered device, second search goes
      through the same fail return condition. This can be avoided by
      appropriate handling of error return code.
      
      With this change, we also fix devfreq for the improved search
      strategy with updated error code.
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      Acked-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0779726c
  2. 22 8月, 2012 1 次提交
  3. 18 3月, 2012 1 次提交
  4. 20 1月, 2012 1 次提交
  5. 24 11月, 2011 1 次提交
  6. 15 11月, 2011 1 次提交
  7. 10 11月, 2011 1 次提交
  8. 02 10月, 2011 2 次提交
    • M
      PM / devfreq: Add common sysfs interfaces · 9005b650
      MyungJoo Ham 提交于
      Device specific sysfs interface /sys/devices/.../power/devfreq_*
      - governor	R: name of governor
      - cur_freq	R: current frequency
      - polling_interval	R: polling interval in ms given with devfreq profile
      			W: update polling interval.
      - central_polling	R: 1 if polling is managed by devfreq framework
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: NMike Turquette <mturquette@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      --
       Documentation/ABI/testing/sysfs-class-devfreq |   44 ++++++++++++++++
       drivers/devfreq/devfreq.c                     |   69 ++++++++++++++++++++++++++
       2 files changed, 113 insertions(+)
       create mode 100644 Documentation/ABI/testing/sysfs-class-devfreq
      9005b650
    • M
      PM: Introduce devfreq: generic DVFS framework with device-specific OPPs · a3c98b8b
      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: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: NMike Turquette <mturquette@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      a3c98b8b