17 Mar, 2016
1 commit
-
Signed-off-by: Geert Uytterhoeven
Reviewed-by: Chanwoo Choi
Signed-off-by: Rafael J. Wysocki
23 Feb, 2016
1 commit
-
As per the documentation of the devfreq_dev_profile.target callback, set
the freq argument to the new frequency before returning.This caused endless messages like this after recent changes in the core:
devfreq 6000c800.actmon: Couldn't update frequency transition information.
Signed-off-by: Tomeu Vizoso
Reported-by: Tyler Baker
Tested-by: Thierry Reding
Acked-by: Thierry Reding
Signed-off-by: MyungJoo Ham
13 Jan, 2016
6 commits
-
Before this patch for a device without statistics support,
$ cat trans_stat
From : To
: time(ms)
Total transitions : 0
$After this patch applied for such a device,
$ cat trans_stat
Not Supported.
$Signed-off-by: MyungJoo Ham
-
This patch modifies the indentation of 'trans_stat' sysfs to improve readability.
The 1GHz is 1000,000,000. So it needs the least 10 position to show the GHz unit.- Before apply this patch,
-sh-3.2# cat trans_stat
From : To
:50000000100000000133000000200000000400000000 time(ms)
*50000000: 0 0 0 0 7 1817635
100000000: 4 0 0 0 4 1590
133000000: 1 4 0 0 7 975
200000000: 2 2 7 0 1 2655
400000000: 0 2 5 12 0 1860
Total transition : 58- After apply this patch,
-sh-3.2# cat trans_stat
From : To
: 50000000 100000000 133000000 200000000 400000000 time(ms)
* 50000000: 0 0 0 0 7 14405
100000000: 4 0 0 0 3 2015
133000000: 2 3 0 0 7 1020
200000000: 1 2 7 0 0 2970
400000000: 0 2 5 10 0 1575
Total transition : 53Signed-off-by: Chanwoo Choi
Signed-off-by: MyungJoo Ham -
This patch initialize the freq_table array of each devfreq device by using
the devfreq_set_freq_table(). If freq_table is NULL, the devfreq framework
is not able to support the frequency transtion information through sysfs.The OPP core uses the integer type for the number of opps in the opp list
and uses the 'unsigned long' type for each frequency. So, this patch
modifies the type of some variable as following:
- the type of freq_table : unsigned int -> unsigned long
- the type of max_state : unsigned int -> int- Corrected types, format strings, mutex usages by MyungJoo
Signed-off-by: Chanwoo Choi
Signed-off-by: MyungJoo Ham -
This patch adds the 'show_one' macro to simplify the duplicate code
of both max_freq_show() and min_freq_show().Signed-off-by: Chanwoo Choi
Signed-off-by: MyungJoo Ham -
This patch just fixes following error and warning by using
scripts/checkpatch.pl.- Follwoing issue from checkpatch.pl:
ERROR: space prohibited before that close parenthesis ')'
+ if (count < 0 ) {WARNING: line over 80 characters
+ ptr = devres_alloc(devm_devfreq_event_release, sizeof(*ptr), GFP_KERNEL);Signed-off-by: Chanwoo Choi
Signed-off-by: MyungJoo Ham -
This patch just removes the error log when
devfreq_event_get_edev_by_phandle() fail to get the instance of
devfreq-event device. It is related to sequence of the probe() of each
driver. So, this error log might show the always during kernel booting.
Each driver using this function can show the appropriate error log.Signed-off-by: Chanwoo Choi
Signed-off-by: MyungJoo Ham
02 Oct, 2015
1 commit
-
When device_register() fails, kfree(devfreq) is called already in
devfreq_dev_release(), hence there is no need to call kfree(devfreq)
in err_dev again.Signed-off-by: Geliang Tang
Signed-off-by: MyungJoo Ham
30 Sep, 2015
1 commit
-
Writing the currently set governor into sysfs currently
seems to fail.
Fix this by setting the return code to zero before
leaving governor_store().Signed-off-by: Tobias Jakobi
Signed-off-by: MyungJoo Ham
11 Sep, 2015
7 commits
-
time_in_state in struct devfreq is defined as unsigned long, so
devm_kzalloc should use sizeof(unsigned long) as argument instead
of sizeof(unsigned int), otherwise it will cause unexpected result
in 64bit system.Signed-off-by: Xiaolong Ye
Signed-off-by: Kevin Liu
Signed-off-by: MyungJoo Ham -
Direct invocation of get_dev_status() is no more recommended.
Signed-off-by: MyungJoo Ham
-
The thermal infrastructure should use the devfreq cooling device, which
uses the OPP library to disable OPPs as necessary.Fix a couple of typos in the same comment while we are at it.
Signed-off-by: Javi Merino
Signed-off-by: MyungJoo Ham -
The return value of get_dev_status() can be reused. Cache it so that
other parts of the kernel can reuse it instead of having to call the
same function again.Cc: Kyungmin Park
Signed-off-by: Javi Merino
Signed-off-by: MyungJoo Ham -
IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there
is no need to do that again from its callers. Drop it.Signed-off-by: Viresh Kumar
Signed-off-by: MyungJoo Ham -
Make it u64 before left-shifting 32bits.
Signed-off-by: MyungJoo Ham
-
This patch adds the support for PPMU (Platform Performance Monitoring Unit)
version 2.0 for Exynos5433 SoC. Exynos5433 SoC must need PPMUv2 which is
quite different from PPMUv1.1. The exynos-ppmu.c driver supports both PPMUv1.1
and PPMUv2.Cc: MyungJoo Ham
Cc: Kyungmin Park
Signed-off-by: Chanwoo Choi
31 Mar, 2015
6 commits
-
So this driver builds as a module.
Signed-off-by: Tomeu Vizoso
Signed-off-by: MyungJoo Ham -
Signed-off-by: Tomeu Vizoso
Acked-by: MyungJoo Ham -
To avoid a race in which the interrupt will be handled before the
drvdata has been set up.Signed-off-by: Tomeu Vizoso
Acked-by: MyungJoo Ham -
As the DT bindings don't have an operating-points property any more,
build the OPP table from the frequencies supported by the EMC clock.Signed-off-by: Tomeu Vizoso
Acked-by: MyungJoo Ham -
Now that we have per-user clocks and the possibility to set constraints
in a clock, set a floor constraint on the EMC clock.Signed-off-by: Tomeu Vizoso
Acked-by: MyungJoo Ham -
There seemed to be some miscommunication and an old version of the
submitted patches was merged.This commit updates the driver to v5, which had this changelog:
* Clarify the units of avg_dependency_threshold
* Remove unused references to platform_device
* Enable and disable interrupts on governor events
* Make sure we handle all interrupts for any of the devices we are sampling
* Move locking to be per-actmon-deviceSigned-off-by: Tomeu Vizoso
CC: Alex Frid
CC: Mikko Perttunen
[Added const to device ID by MyungJoo]
Signed-off-by: MyungJoo Ham
30 Mar, 2015
2 commits
-
_remove_devfreq() does not have @skip anymore after 3.16.
The comment for _remove_devfreq() has been updated correspondingly.Signed-off-by: MyungJoo Ham
-
This patch adds the const keyword for devfreq_event_ops structure
because the ops of devfreq_event_desc structure should not be changed
after initialization.Cc: Myungjoo Ham
Cc: Kyungmin Park
Signed-off-by: Chanwoo Choi
Signed-off-by: MyungJoo Ham
14 Feb, 2015
1 commit
-
* pm-cpufreq:
cpufreq: speedstep-smi: enable interrupts when waiting* pm-cpuidle:
intel_idle: support additional Broadwell model* pm-devfreq:
PM / devfreq: event: testing the wrong variable* pm-opp:
PM / OPP / clk: Remove unnecessary OOM message* pm-tools:
tools/power turbostat: support additional Broadwell model
tools/power turbostat: update parameters, documentation
tools/power turbostat: Skip printing disabled package C-states
12 Feb, 2015
1 commit
-
There is a typo here so we test "edev" but we intended to test
"edev[i]".Fixes: f262f28c1470 ('PM / devfreq: event: Add devfreq_event class')
Signed-off-by: Dan Carpenter
Reviewed-by: Chanwoo Choi
Signed-off-by: Rafael J. Wysocki
11 Feb, 2015
1 commit
-
Pull ACPI and power management updates from Rafael Wysocki:
"We have a few new features this time, including a new SFI-based
cpufreq driver, a new devfreq driver for Tegra Activity Monitor, a new
devfreq class for providing its governors with raw utilization data
and a new ACPI driver for AMD SoCs.Still, the majority of changes here are reworks of existing code to
make it more straightforward or to prepare it for implementing new
features on top of it. The primary example is the rework of ACPI
resources handling from Jiang Liu, Thomas Gleixner and Lv Zheng with
support for IOAPIC hotplug implemented on top of it, but there is
quite a number of changes of this kind in the cpufreq core, ACPICA,
ACPI EC driver, ACPI processor driver and the generic power domains
core code too.The most active developer is Viresh Kumar with his cpufreq changes.
Specifics:
- Rework of the core ACPI resources parsing code to fix issues in it
and make using resource offsets more convenient and consolidation
of some resource-handing code in a couple of places that have grown
analagous data structures and code to cover the the same gap in the
core (Jiang Liu, Thomas Gleixner, Lv Zheng).- ACPI-based IOAPIC hotplug support on top of the resources handling
rework (Jiang Liu, Yinghai Lu).- ACPICA update to upstream release 20150204 including an interrupt
handling rework that allows drivers to install raw handlers for
ACPI GPEs which then become entirely responsible for the given GPE
and the ACPICA core code won't touch it (Lv Zheng, David E Box,
Octavian Purdila).- ACPI EC driver rework to fix several concurrency issues and other
problems related to events handling on top of the ACPICA's new
support for raw GPE handlers (Lv Zheng).- New ACPI driver for AMD SoCs analogous to the LPSS (Low-Power
Subsystem) driver for Intel chips (Ken Xue).- Two minor fixes of the ACPI LPSS driver (Heikki Krogerus, Jarkko
Nikula).- Two new blacklist entries for machines (Samsung 730U3E/740U3E and
510R) where the native backlight interface doesn't work correctly
while the ACPI one does (Hans de Goede).- Rework of the ACPI processor driver's handling of idle states to
make the code more straightforward and less bloated overall (Rafael
J Wysocki).- Assorted minor fixes related to ACPI and SFI (Andreas Ruprecht,
Andy Shevchenko, Hanjun Guo, Jan Beulich, Rafael J Wysocki, Yaowei
Bai).- PCI core power management modification to avoid resuming (some)
runtime-suspended devices during system suspend if they are in the
right states already (Rafael J Wysocki).- New SFI-based cpufreq driver for Intel platforms using SFI
(Srinidhi Kasagar).- cpufreq core fixes, cleanups and simplifications (Viresh Kumar,
Doug Anderson, Wolfram Sang).- SkyLake CPU support and other updates for the intel_pstate driver
(Kristen Carlson Accardi, Srinivas Pandruvada).- cpufreq-dt driver cleanup (Markus Elfring).
- Init fix for the ARM big.LITTLE cpuidle driver (Sudeep Holla).
- Generic power domains core code fixes and cleanups (Ulf Hansson).
- Operating Performance Points (OPP) core code cleanups and kernel
documentation update (Nishanth Menon).- New dabugfs interface to make the list of PM QoS constraints
available to user space (Nishanth Menon).- New devfreq driver for Tegra Activity Monitor (Tomeu Vizoso).
- New devfreq class (devfreq_event) to provide raw utilization data
to devfreq governors (Chanwoo Choi).- Assorted minor fixes and cleanups related to power management
(Andreas Ruprecht, Krzysztof Kozlowski, Rickard Strandqvist, Pavel
Machek, Todd E Brandt, Wonhong Kwon).- turbostat updates (Len Brown) and cpupower Makefile improvement
(Sriram Raghunathan)"* tag 'pm+acpi-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (151 commits)
tools/power turbostat: relax dependency on APERF_MSR
tools/power turbostat: relax dependency on invariant TSC
Merge branch 'pci/host-generic' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci into acpi-resources
tools/power turbostat: decode MSR_*_PERF_LIMIT_REASONS
tools/power turbostat: relax dependency on root permission
ACPI / video: Add disable_native_backlight quirk for Samsung 510R
ACPI / PM: Remove unneeded nested #ifdef
USB / PM: Remove unneeded #ifdef and associated dead code
intel_pstate: provide option to only use intel_pstate with HWP
ACPI / EC: Add GPE reference counting debugging messages
ACPI / EC: Add query flushing support
ACPI / EC: Refine command storm prevention support
ACPI / EC: Add command flushing support.
ACPI / EC: Introduce STARTED/STOPPED flags to replace BLOCKED flag
ACPI: add AMD ACPI2Platform device support for x86 system
ACPI / table: remove duplicate NULL check for the handler of acpi_table_parse()
ACPI / EC: Update revision due to raw handler mode.
ACPI / EC: Reduce ec_poll() by referencing the last register access timestamp.
ACPI / EC: Fix several GPE handling issues by deploying ACPI_GPE_DISPATCH_RAW_HANDLER mode.
ACPICA: Events: Enable APIs to allow interrupt/polling adaptive request based GPE handling model
...
30 Jan, 2015
2 commits
-
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 governorCC 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 1Cc: Rafael J. Wysocki
Cc: MyungJoo Ham
Signed-off-by: Chanwoo Choi -
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 governorCc: MyungJoo Ham
Cc: Kyungmin Park
Signed-off-by: Chanwoo Choi
[Commit message rewritten & conflict resolved by MyungJoo]
Signed-off-by: MyungJoo Ham
29 Jan, 2015
1 commit
-
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 and Mikko
Perttunen .Signed-off-by: Tomeu Vizoso
Signed-off-by: MyungJoo Ham
07 Jan, 2015
1 commit
-
SRCU is not necessary to be compiled by default in all cases. For tinification
efforts not compiling SRCU unless necessary is desirable.The current patch tries to make compiling SRCU optional by introducing a new
Kconfig option CONFIG_SRCU which is selected when any of the components making
use of SRCU are selected.If we do not select CONFIG_SRCU, srcu.o will not be compiled at all.
text data bss dec hex filename
2007 0 0 2007 7d7 kernel/rcu/srcu.oSize of arch/powerpc/boot/zImage changes from
text data bss dec hex filename
831552 64180 23944 919676 e087c arch/powerpc/boot/zImage : before
829504 64180 23952 917636 e0084 arch/powerpc/boot/zImage : afterso the savings are about ~2000 bytes.
Signed-off-by: Pranith Kumar
CC: Paul E. McKenney
CC: Josh Triplett
CC: Lai Jiangshan
Signed-off-by: Paul E. McKenney
[ paulmck: resolve conflict due to removal of arch/ia64/kvm/Kconfig. ]
20 Oct, 2014
1 commit
-
A platform_driver does not need to set an owner, it will be populated by the
driver core.Signed-off-by: Wolfram Sang
29 Sep, 2014
3 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 -
These functions are indended for use by drivers and should be available
also when the driver is built as a module.Cc: MyungJoo Ham
Cc: Kyungmin Park
Signed-off-by: Ãrjan Eide
Signed-off-by: MyungJoo Ham -
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
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
24 May, 2014
3 commits
-
Checks for CONFIG_EXYNOS_ASV were added in v3.3. But the related Kconfig
symbol has never been added to the tree. Remove these checks, as they
always evaluate to false.Signed-off-by: Paul Bolle
[Merge conflict resolved by MyungJoo]
Signed-off-by: MyungJoo Ham -
This patch uses devm_devfreq_add_device()/devm_devfreq_register_opp_notifier()
to control automatically the resource of devfreq.Signed-off-by: Chanwoo Choi
Cc: Kukjin Kim
Cc: Sachin Kamat
Cc: Bartlomiej Zolnierkiewicz
Cc: Manish Badarkhe
Cc: Abhilash Kesavan
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Signed-off-by: MyungJoo Ham -
This patch uses devm_devfreq_add_device()/devm_devfreq_register_opp_notifier()
to control automatically the resource of devfreq.Signed-off-by: Chanwoo Choi
Cc: Kukjin Kim
Cc: Bartlomiej Zolnierkiewicz
Cc: Wei Yongjun
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Signed-off-by: MyungJoo Ham