summaryrefslogtreecommitdiff
path: root/drivers/devfreq/Makefile (follow)
Commit message (Collapse)AuthorAge
* PM / devfreq: Change the 'MSM' in devfreq device names to 'QCOM'Rohit Gupta2016-05-20
| | | | | | | | Substitute 'MSM' in the devfreq device/config names to 'QCOM' to comply with the current standards. Change-Id: I156ba6e2b5f8e06a28540ca5def5b178c3604512 Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* msm: kgsl: Port GPU bus dcvs to kernel 4.4Oleg Perelet2016-05-18
| | | | | | | | Port GPU dcvs from kernel 3.18 to kernel 4.4. CRs-Fixed: 1013343 Change-Id: Ide662b12aa59effa541febcd758426e72b4a1b12 Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
* PM / devfreq : Introduce a memory-latency governorRohit Gupta2016-03-23
| | | | | | | | | | | Use performance counters to detect the memory latency sensitivity of CPU workloads and vote for higher DDR frequency if required. Change-Id: Ie77a3523bc5713fc0315bd0abc3913f485a96e0e Signed-off-by: Rohit Gupta <rohgup@codeaurora.org> Suggested-by: Saravana Kannan <skannan@codeaurora.org> [junjiew@codeaurora.org: dropped changes in arch/arm64/Kconfig] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* PM / devfreq: Introduce M4M cache hwmon deviceJunjie Wu2016-03-23
| | | | | | | | | | Introduce M4M cache hwmon device to scale M4M based on hardware counter values. Change-Id: I6a1582e1e66ff3051fcf7f917efb959fe7af96ae Signed-off-by: Junjie Wu <junjiew@codeaurora.org> [junjiew@codeaurora.org: Dropped changes in arch/arm64/Kconfig] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* PM / devfreq: Introduce MSM CCI HWmon deviceJunjie Wu2016-03-23
| | | | | | | | | | | | | CCI400 on MSM has additional PMU counters that can be used to monitor cache requests. MSM CCI hardware monitor device configures these registers to monitor cache and inform governor. It can also set an IRQ when count exceeds a programmable limit. Change-Id: I1d80f57749b91c3972e60e54c75226c4d49d2ec6 Signed-off-by: Junjie Wu <junjiew@codeaurora.org> [junjiew@codeaurora.org: Dropped change in arch/arm64/Kconfig. Configuration should be selected directly in defconfig.] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* PM / devfreq: Remove Krait L2PM driverRohit Gupta2016-03-23
| | | | | | | Removing Krait L2PM driver since it would not be used for future targets on this branch (msm-3.18). Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
* PM / devfreq: Add ARM PMU support for bw_hwmon governorJacob Stevens2016-03-23
| | | | | | | | | | The ARM PMU supports monitoring bus access from each CPU. It also has the ability to raise an IRQ when the counters overflow. This allows for it to be used with the bw_hwmon governor to scale the CPU BW requests by monitoring on the actual bus access traffic. Change-Id: I0594a6acb846acdc11a18744033636951f22e387 Signed-off-by: Jacob Stevens <jstevens@codeaurora.org>
* devfreq: devfreq spdm: Add debugfs supportDan Sneddon2016-03-23
| | | | | | | | | | | | | Add debugfs support for the devfreq spdm driver. The parameters used for determing the SPDM port threshold value can be updated via debugfs and sent to the hypervisor to support fine tuning SPDM performance. Change-Id: I6f85deacd7d463d90f512f5de18b7e2140c9f492 Signed-off-by: Dan Sneddon <dsneddon@codeaurora.org> [junjiew@codeaurora.org: resolved trivial conflicts] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* devfreq: devfreq_spdm: Introduce devfreq_spdm driver.Dan Sneddon2016-03-23
| | | | | | | | | | | | | | | The devfreq_spdm driver implements support for bandwidth voting based on input from the SPDM device on MSM SoC's. The SPDM governor registers for the SPDM interrupt and then calls the hypervisor to determine the correct bandwidth to vote for. The devfreq framework poll timer is used to perdiocially ask the hypervisor for the new bandwidth to request from the MSM bus scaling code. Change-Id: I851457e40d49b5929f01c510249d3e6bb4ff2f1d Signed-off-by: Dan Sneddon <dsneddon@codeaurora.org> [junjiew@codeaurora.org: resolved trivial conflicts] Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
* PM / devfreq: Add MSM BIMC bwmon support for bw_hwmon governorKumar Gala2016-03-23
| | | | | | | | | | This is a snapshot of the MSM BIMC bwmon driver as of msm-3.10 commit: acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable ONESHOT_SYNC for msm8994") Signed-off-by: Kumar Gala <galak@codeaurora.org>
* PM / devfreq: Bandwidth driverKumar Gala2016-03-23
| | | | | | | | | | | | | This is a snapshot of the Bandwidth driver as of msm-3.10 commit: acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable ONESHOT_SYNC for msm8994") Signed-off-by: Kumar Gala <galak@codeaurora.org> [junjiew@codeaurora.org: resolved conflicts] Signed-off-by: Junjie Wu <junjiew@codeaurora.org> Change-Id: I30d48abdfe19a421b4d05003c56c47423c6d0456
* PM / devfreq: Generic bandwidth hw monitorKumar Gala2016-03-23
| | | | | | | | | | This is a snapshot of the Generic bandwidth hw monitor driver as of msm-3.10 commit: acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable ONESHOT_SYNC for msm8994") Signed-off-by: Kumar Gala <galak@codeaurora.org>
* PM / devfreq: Generic cpufreq governorKumar Gala2016-03-23
| | | | | | | | | | This is a snapshot of the Generic cpufreq governor driver as of msm-3.10 commit: acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable ONESHOT_SYNC for msm8994") Signed-off-by: Kumar Gala <galak@codeaurora.org>
* PM / devfreq: Add Krait L2 cache HW monitorKumar Gala2016-03-23
| | | | | | | | | | This is a snapshot of the Krait L2 cache HW monitor driver as of msm-3.10 commit: acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable ONESHOT_SYNC for msm8994") Signed-off-by: Kumar Gala <galak@codeaurora.org>
* PM / devfreq: Add cache HW monitor governorKumar Gala2016-03-23
| | | | | | | | | | This is a snapshot of the HW monitor governor driver as of msm-3.10 commit: acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable ONESHOT_SYNC for msm8994") Signed-off-by: Kumar Gala <galak@codeaurora.org>
* PM / devfreq: Add devfreq driver for simple deviceKumar Gala2016-03-23
| | | | | | | | | | | | | | This is a snapshot of the simple devfreq device driver as of msm-3.10 commit: acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable ONESHOT_SYNC for msm8994") Signed-off-by: Kumar Gala <galak@codeaurora.org> [junjiew@codeaurora.org: resolved conflicts] Signed-off-by: Junjie Wu <junjiew@codeaurora.org> Change-Id: I37f1781d9192dd0ad2797ea52f9bd3a5ea5847b0
* devfreq: Add Qualcomm GPU devfreq governorsJordan Crouse2016-03-22
| | | | | | | | Snapshot of the Qualcomm GPU devfreq governors and support as of msm-3.18 commit e70ad0cd5efd ("Promotion of kernel.lnx.3.18-151201."). Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
* devfreq: Fix build break of devfreq-event classChanwoo Choi2015-01-30
| | | | | | | | | | | | | | | | | | | | | | This patch fixes the build break of the exynos-ppmu driver because Makefile in drivers/devfreq don't include the entry of devfreq-event.c driver. The original patch[1] includes the entry to build devfreq-event.c without the build break. This build break is generated in the process of merging the patch. [1] https://lkml.org/lkml/2015/1/25/579 - [PATCH v10 1/7] devfreq: event: Add new devfreq_event class to provide basic data for devfreq governor CC init/version.o LD init/built-in.o drivers/built-in.o: In function `exynos_ppmu_probe': binder.c:(.text+0x4447ec): undefined reference to `devm_devfreq_event_add_edev' make: *** [vmlinux] Error 1 Cc: Rafael J. Wysocki <rjw@rjwysocki.net> Cc: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
* PM / devfreq: event: Add devfreq_event classChanwoo Choi2015-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new class in devfreq, devfreq_event, which provides raw data (e.g., memory bus utilization, GPU utilization) for devfreq governors. - devfreq_event device : Provides raw data for a governor of a devfreq device - devfreq device : Monitors device state and changes frequency/voltage of the device using the raw data from its devfreq_event device. A devfreq device dertermines performance states (normally the frequency and the voltage vlues) based on the results its designtated devfreq governor: e.g., ondemand, performance, powersave. In order to give such results required by a devfreq device, the devfreq governor requires data that indicates the performance requirement given to the devfreq device. The conventional (previous) implementatino of devfreq subsystem requires a devfreq device driver to implement its own mechanism to acquire performance requirement for its governor. However, there had been issues with such requirements: 1. Although performance requirement of such devices is usually acquired from common devices (PMU/PPMU), we do not have any abstract structure to represent them properly. 2. Such performance requirement devices (PMU/PPMU) are actual hardware pieces that may be represented by Device Tree directly while devfreq device itself is a virtual entity that are not considered to be represented by Device Tree according to Device Tree folks. In order to address such issues, a devferq_event device (represented by this patch) provides a template for device drivers representing performance monitoring unit, which gives the basic or raw data for preformance requirement, which in turn, is required by devfreq governors. The following description explains the feature of two kind of devfreq class: - devfreq class (existing) : devfreq consumer device use raw data from devfreq_event device for determining proper current system state and change voltage/frequency dynamically using various governors. - devfreq_event class (new) : Provide measured raw data to devfreq device for governor Cc: MyungJoo Ham <myungjoo.ham@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> [Commit message rewritten & conflict resolved by MyungJoo] Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* PM / devfreq: tegra: add devfreq driver for Tegra Activity MonitorTomeu Vizoso2015-01-29
| | | | | | | | | | | | | The ACTMON block can monitor several counters, providing averaging and firing interrupts based on watermarking configuration. This implementation monitors the MCALL and MCCPU counters to choose an appropriate frequency for the external memory clock. This patch is based on work by Alex Frid <afrid@nvidia.com> and Mikko Perttunen <mikko.perttunen@kapsi.fi>. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* PM / devfreq: Add Exynos5-bus devfreq driver for Exynos5250Abhilash Kesavan2013-06-03
| | | | | | | | | | | | | 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 <a.kesavan@samsung.com> [myungjoo.ham@samsung.com: minor style update] Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Cc: Jonghwan Choi <jhbird.choi@samsung.com> Cc: Kukjin Kim <kgene.kim@samsung.com>
* PM / devfreq: Move exynos4 devfreq driver into a new sub-directoryAbhilash Kesavan2013-06-03
| | | | | | | | | | | In anticipation of the new exynos5 devfreq and ppmu driver, create an exynos sub-directory. Move the existing exynos4 devfreq driver into the same. Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com> Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> Cc: Jonghwan Choi <jhbird.choi@samsung.com> Cc: Kukjin Kim <kgene.kim@samsung.com>
* PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.MyungJoo Ham2011-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> --- Changes from v1 - Support 4212 and 4412 as well as 4210.
* PM / devfreq: Add basic governorsMyungJoo Ham2011-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Mike Turquette <mturquette@ti.com> Acked-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
* PM: Introduce devfreq: generic DVFS framework with device-specific OPPsMyungJoo Ham2011-10-02
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 <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Mike Turquette <mturquette@ti.com> Acked-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>