1. 20 11月, 2012 4 次提交
    • N
      PM / devfreq: map devfreq drivers to governor using name · 1b5c1be2
      Nishanth Menon 提交于
      Allow devfreq drivers to register a preferred governor name
      and when the devfreq governor loads itself at a later point
      required drivers are managed appropriately, at the time of
      unload of a devfreq governor, stop managing those drivers
      as well.
      
      Since the governor structures do not need to be exposed
      anymore, remove the definitions and make them static
      
      NOTE: devfreq_list_lock is now used to protect governor
      start and stop - as this allows us to protect governors and
      devfreq with the proper dependencies as needed.
      
      As part of this change, change the registration of exynos
      bus driver to request for ondemand using the governor name.
      
      Cc: Rajagopal Venkat <rajagopal.venkat@linaro.org>
      Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NNishanth Menon <nm@ti.com>
      [Merge conflict resolved by MyungJoo Ham]
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      1b5c1be2
    • N
      PM / devfreq: provide hooks for governors to be registered · 3aa173b8
      Nishanth Menon 提交于
      Add devfreq_add_governor and devfreq_remove_governor which
      can be invoked by governors to register with devfreq.
      
      This sets up the stage to dynamically switch governors and
      allow governors to be dynamically loaded as well.
      
      Cc: Rajagopal Venkat <rajagopal.venkat@linaro.org>
      Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      3aa173b8
    • J
      PM / devfreq: Add sysfs node for representing frequency transition information. · e552bbaf
      Jonghwa Lee 提交于
      This patch adds sysfs node which can be used to get information of frequency
      transition. It represents transition table which contains total number of transition of
      each freqeuncy state and time spent. It is inspired CPUFREQ's status driver.
      Signed-off-by: NJonghwa Lee <jonghwa3.lee@samsung.com>
      [Added Documentation/ABI entry, updated kernel-doc, and resolved merge conflict]
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      e552bbaf
    • N
      PM / devfreq: documentation cleanups for devfreq header · e09651fc
      Nishanth Menon 提交于
      struct parameters need to have ':' in documentation for
      scripts/kernel-doc to parse appropriately.
      
      Fix the errors reported by:
      ./scripts/kernel-doc include/linux/devfreq.h >/dev/null
      
      Cc: Rajagopal Venkat <rajagopal.venkat@linaro.org>
      Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NRandy Dunlap <rdunlap@xenotime.net>
      Acked-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      e09651fc
  2. 15 11月, 2012 3 次提交
  3. 18 3月, 2012 1 次提交
  4. 20 1月, 2012 2 次提交
  5. 08 11月, 2011 1 次提交
  6. 02 10月, 2011 2 次提交
    • M
      PM / devfreq: Add basic governors · ce26c5bb
      MyungJoo Ham 提交于
      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: 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>
      ce26c5bb
    • 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