1. 20 11月, 2012 7 次提交
    • 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: register governors with devfreq framework · 83116e66
      Nishanth Menon 提交于
      With the new registration functions, governors can be now
      registered with devfreq framework.
      
      NOTE: generates 'discards qualifiers from pointer target type'
      build warnings, which the next patche in this series fixes
      
      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>
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      83116e66
    • 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
    • N
      PM / devfreq: export update_devfreq · 2df5021f
      Nishanth Menon 提交于
      Allow update_devfreq to be used by devfreq governor built
      as modules
      
      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>
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      2df5021f
    • 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: Add sysfs node to expose available frequencies · d287de85
      Nishanth Menon 提交于
      devfreq governors such as ondemand are controlled by a min and
      max frequency, while governors like userspace governor allow us
      to set a specific frequency.
      However, for the same specific device, depending on the SoC, the
      available frequencies can vary.
      
      So expose the available frequencies as a snapshot over sysfs to
      allow informed decisions.
      
      This was inspired by cpufreq framework's equivalent for similar
      usage sysfs node: scaling_available_frequencies.
      
      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>
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      d287de85
    • S
      PM / devfreq: Use devm_* functions in exynos4_bus.c · d7895052
      Sachin Kamat 提交于
      devm_* functions are device managed functions and make cleanup code
      simpler and smaller.
      devm_kzalloc and devm_regulator_get functions are used.
      Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org>
      [renamed the patch title by MyungJoo Ham]
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      d7895052
  2. 15 11月, 2012 6 次提交
  3. 22 8月, 2012 1 次提交
  4. 02 5月, 2012 1 次提交
  5. 16 4月, 2012 1 次提交
  6. 18 3月, 2012 1 次提交
  7. 11 3月, 2012 2 次提交
  8. 20 1月, 2012 3 次提交
  9. 20 12月, 2011 1 次提交
    • M
      PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412. · 7b405038
      MyungJoo Ham 提交于
      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: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      
      ---
      Changes from v1
      - Support 4212 and 4412 as well as 4210.
      7b405038
  10. 24 11月, 2011 1 次提交
  11. 15 11月, 2011 2 次提交
  12. 10 11月, 2011 1 次提交
  13. 02 10月, 2011 3 次提交
    • 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 / 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