aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-04-30 18:21:02 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-04-30 18:21:02 -0400
commit3ed1c478eff8db80e234d5446cb378b503135888 (patch)
treee1c8e0f488ca49c49b5a31fe59add4254381dd4b /Documentation
parent151173e8ce9b95bbbbd7eedb9035cfaffbdb7cb2 (diff)
parent371deb9500831ad1afbf9ea00e373f650deaed2f (diff)
Merge tag 'pm+acpi-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management and ACPI updates from Rafael J Wysocki: - ARM big.LITTLE cpufreq driver from Viresh Kumar. - exynos5440 cpufreq driver from Amit Daniel Kachhap. - cpufreq core cleanup and code consolidation from Viresh Kumar and Stratos Karafotis. - cpufreq scalability improvement from Nathan Zimmer. - AMD "frequency sensitivity feedback" powersave bias for the ondemand cpufreq governor from Jacob Shin. - cpuidle code consolidation and cleanups from Daniel Lezcano. - ARM OMAP cpuidle fixes from Santosh Shilimkar and Daniel Lezcano. - ACPICA fixes and other improvements from Bob Moore, Jung-uk Kim, Lv Zheng, Yinghai Lu, Tang Chen, Colin Ian King, and Linn Crosetto. - ACPI core updates related to hotplug from Toshi Kani, Paul Bolle, Yasuaki Ishimatsu, and Rafael J Wysocki. - Intel Lynxpoint LPSS (Low-Power Subsystem) support improvements from Rafael J Wysocki and Andy Shevchenko. * tag 'pm+acpi-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (192 commits) cpufreq: Revert incorrect commit 5800043 cpufreq: MAINTAINERS: Add co-maintainer cpuidle: add maintainer entry ACPI / thermal: do not always return THERMAL_TREND_RAISING for active trip points ARM: s3c64xx: cpuidle: use init/exit common routine cpufreq: pxa2xx: initialize variables ACPI: video: correct acpi_video_bus_add error processing SH: cpuidle: use init/exit common routine ARM: S5pv210: compiling issue, ARM_S5PV210_CPUFREQ needs CONFIG_CPU_FREQ_TABLE=y ACPI: Fix wrong parameter passed to memblock_reserve cpuidle: fix comment format pnp: use %*phC to dump small buffers isapnp: remove debug leftovers ARM: imx: cpuidle: use init/exit common routine ARM: davinci: cpuidle: use init/exit common routine ARM: kirkwood: cpuidle: use init/exit common routine ARM: calxeda: cpuidle: use init/exit common routine ARM: tegra: cpuidle: use init/exit common routine for tegra3 ARM: tegra: cpuidle: use init/exit common routine for tegra2 ARM: OMAP4: cpuidle: use init/exit common routine ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ABI/testing/sysfs-devices-lpss_ltr44
-rw-r--r--Documentation/ABI/testing/sysfs-devices-power_resources_wakeup13
-rw-r--r--Documentation/ABI/testing/sysfs-firmware-acpi26
-rw-r--r--Documentation/cpu-freq/cpu-drivers.txt9
-rw-r--r--Documentation/cpu-freq/governors.txt27
-rw-r--r--Documentation/cpuidle/driver.txt6
-rw-r--r--Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt65
-rw-r--r--Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt2
-rw-r--r--Documentation/devicetree/bindings/cpufreq/cpufreq-exynos5440.txt28
9 files changed, 215 insertions, 5 deletions
diff --git a/Documentation/ABI/testing/sysfs-devices-lpss_ltr b/Documentation/ABI/testing/sysfs-devices-lpss_ltr
new file mode 100644
index 000000000000..ea9298d9bbaf
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-devices-lpss_ltr
@@ -0,0 +1,44 @@
1What: /sys/devices/.../lpss_ltr/
2Date: March 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
5 The /sys/devices/.../lpss_ltr/ directory is only present for
6 devices included into the Intel Lynxpoint Low Power Subsystem
7 (LPSS). If present, it contains attributes containing the LTR
8 mode and the values of LTR registers of the device.
9
10What: /sys/devices/.../lpss_ltr/ltr_mode
11Date: March 2013
12Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
13Description:
14 The /sys/devices/.../lpss_ltr/ltr_mode attribute contains an
15 integer number (0 or 1) indicating whether or not the devices'
16 LTR functionality is working in the software mode (1).
17
18 This attribute is read-only. If the device's runtime PM status
19 is not "active", attempts to read from this attribute cause
20 -EAGAIN to be returned.
21
22What: /sys/devices/.../lpss_ltr/auto_ltr
23Date: March 2013
24Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
25Description:
26 The /sys/devices/.../lpss_ltr/auto_ltr attribute contains the
27 current value of the device's AUTO_LTR register (raw)
28 represented as an 8-digit hexadecimal number.
29
30 This attribute is read-only. If the device's runtime PM status
31 is not "active", attempts to read from this attribute cause
32 -EAGAIN to be returned.
33
34What: /sys/devices/.../lpss_ltr/sw_ltr
35Date: March 2013
36Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
37Description:
38 The /sys/devices/.../lpss_ltr/auto_ltr attribute contains the
39 current value of the device's SW_LTR register (raw) represented
40 as an 8-digit hexadecimal number.
41
42 This attribute is read-only. If the device's runtime PM status
43 is not "active", attempts to read from this attribute cause
44 -EAGAIN to be returned.
diff --git a/Documentation/ABI/testing/sysfs-devices-power_resources_wakeup b/Documentation/ABI/testing/sysfs-devices-power_resources_wakeup
new file mode 100644
index 000000000000..e0588feeb6e1
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-devices-power_resources_wakeup
@@ -0,0 +1,13 @@
1What: /sys/devices/.../power_resources_wakeup/
2Date: April 2013
3Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
4Description:
5 The /sys/devices/.../power_resources_wakeup/ directory is only
6 present for device objects representing ACPI device nodes that
7 require ACPI power resources for wakeup signaling.
8
9 If present, it contains symbolic links to device directories
10 representing ACPI power resources that need to be turned on for
11 the given device node to be able to signal wakeup. The names of
12 the links are the same as the names of the directories they
13 point to.
diff --git a/Documentation/ABI/testing/sysfs-firmware-acpi b/Documentation/ABI/testing/sysfs-firmware-acpi
index dd930c8db41f..ce9bee98b43b 100644
--- a/Documentation/ABI/testing/sysfs-firmware-acpi
+++ b/Documentation/ABI/testing/sysfs-firmware-acpi
@@ -18,6 +18,32 @@ Description:
18 yoffset: The number of pixels between the top of the screen 18 yoffset: The number of pixels between the top of the screen
19 and the top edge of the image. 19 and the top edge of the image.
20 20
21What: /sys/firmware/acpi/hotplug/
22Date: February 2013
23Contact: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
24Description:
25 There are separate hotplug profiles for different classes of
26 devices supported by ACPI, such as containers, memory modules,
27 processors, PCI root bridges etc. A hotplug profile for a given
28 class of devices is a collection of settings defining the way
29 that class of devices will be handled by the ACPI core hotplug
30 code. Those profiles are represented in sysfs as subdirectories
31 of /sys/firmware/acpi/hotplug/.
32
33 The following setting is available to user space for each
34 hotplug profile:
35
36 enabled: If set, the ACPI core will handle notifications of
37 hotplug events associated with the given class of
38 devices and will allow those devices to be ejected with
39 the help of the _EJ0 control method. Unsetting it
40 effectively disables hotplug for the correspoinding
41 class of devices.
42
43 The value of the above attribute is an integer number: 1 (set)
44 or 0 (unset). Attempts to write any other values to it will
45 cause -EINVAL to be returned.
46
21What: /sys/firmware/acpi/interrupts/ 47What: /sys/firmware/acpi/interrupts/
22Date: February 2008 48Date: February 2008
23Contact: Len Brown <lenb@kernel.org> 49Contact: Len Brown <lenb@kernel.org>
diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt
index 72f70b16d299..a3585eac83b6 100644
--- a/Documentation/cpu-freq/cpu-drivers.txt
+++ b/Documentation/cpu-freq/cpu-drivers.txt
@@ -108,8 +108,9 @@ policy->governor must contain the "default policy" for
108 cpufreq_driver.target is called with 108 cpufreq_driver.target is called with
109 these values. 109 these values.
110 110
111For setting some of these values, the frequency table helpers might be 111For setting some of these values (cpuinfo.min[max]_freq, policy->min[max]), the
112helpful. See the section 2 for more information on them. 112frequency table helpers might be helpful. See the section 2 for more information
113on them.
113 114
114SMP systems normally have same clock source for a group of cpus. For these the 115SMP systems normally have same clock source for a group of cpus. For these the
115.init() would be called only once for the first online cpu. Here the .init() 116.init() would be called only once for the first online cpu. Here the .init()
@@ -184,10 +185,10 @@ the reference implementation in drivers/cpufreq/longrun.c
184As most cpufreq processors only allow for being set to a few specific 185As most cpufreq processors only allow for being set to a few specific
185frequencies, a "frequency table" with some functions might assist in 186frequencies, a "frequency table" with some functions might assist in
186some work of the processor driver. Such a "frequency table" consists 187some work of the processor driver. Such a "frequency table" consists
187of an array of struct cpufreq_freq_table entries, with any value in 188of an array of struct cpufreq_frequency_table entries, with any value in
188"index" you want to use, and the corresponding frequency in 189"index" you want to use, and the corresponding frequency in
189"frequency". At the end of the table, you need to add a 190"frequency". At the end of the table, you need to add a
190cpufreq_freq_table entry with frequency set to CPUFREQ_TABLE_END. And 191cpufreq_frequency_table entry with frequency set to CPUFREQ_TABLE_END. And
191if you want to skip one entry in the table, set the frequency to 192if you want to skip one entry in the table, set the frequency to
192CPUFREQ_ENTRY_INVALID. The entries don't need to be in ascending 193CPUFREQ_ENTRY_INVALID. The entries don't need to be in ascending
193order. 194order.
diff --git a/Documentation/cpu-freq/governors.txt b/Documentation/cpu-freq/governors.txt
index c7a2eb8450c2..66f9cc310686 100644
--- a/Documentation/cpu-freq/governors.txt
+++ b/Documentation/cpu-freq/governors.txt
@@ -167,6 +167,27 @@ of load evaluation and helping the CPU stay at its top speed when truly
167busy, rather than shifting back and forth in speed. This tunable has no 167busy, rather than shifting back and forth in speed. This tunable has no
168effect on behavior at lower speeds/lower CPU loads. 168effect on behavior at lower speeds/lower CPU loads.
169 169
170powersave_bias: this parameter takes a value between 0 to 1000. It
171defines the percentage (times 10) value of the target frequency that
172will be shaved off of the target. For example, when set to 100 -- 10%,
173when ondemand governor would have targeted 1000 MHz, it will target
1741000 MHz - (10% of 1000 MHz) = 900 MHz instead. This is set to 0
175(disabled) by default.
176When AMD frequency sensitivity powersave bias driver --
177drivers/cpufreq/amd_freq_sensitivity.c is loaded, this parameter
178defines the workload frequency sensitivity threshold in which a lower
179frequency is chosen instead of ondemand governor's original target.
180The frequency sensitivity is a hardware reported (on AMD Family 16h
181Processors and above) value between 0 to 100% that tells software how
182the performance of the workload running on a CPU will change when
183frequency changes. A workload with sensitivity of 0% (memory/IO-bound)
184will not perform any better on higher core frequency, whereas a
185workload with sensitivity of 100% (CPU-bound) will perform better
186higher the frequency. When the driver is loaded, this is set to 400
187by default -- for CPUs running workloads with sensitivity value below
18840%, a lower frequency is chosen. Unloading the driver or writing 0
189will disable this feature.
190
170 191
1712.5 Conservative 1922.5 Conservative
172---------------- 193----------------
@@ -191,6 +212,12 @@ governor but for the opposite direction. For example when set to its
191default value of '20' it means that if the CPU usage needs to be below 212default value of '20' it means that if the CPU usage needs to be below
19220% between samples to have the frequency decreased. 21320% between samples to have the frequency decreased.
193 214
215sampling_down_factor: similar functionality as in "ondemand" governor.
216But in "conservative", it controls the rate at which the kernel makes
217a decision on when to decrease the frequency while running in any
218speed. Load for frequency increase is still evaluated every
219sampling rate.
220
1943. The Governor Interface in the CPUfreq Core 2213. The Governor Interface in the CPUfreq Core
195============================================= 222=============================================
196 223
diff --git a/Documentation/cpuidle/driver.txt b/Documentation/cpuidle/driver.txt
index 7a9e09ece931..1b0d81d92583 100644
--- a/Documentation/cpuidle/driver.txt
+++ b/Documentation/cpuidle/driver.txt
@@ -15,11 +15,17 @@ has mechanisms in place to support actual entry-exit into CPU idle states.
15cpuidle driver initializes the cpuidle_device structure for each CPU device 15cpuidle driver initializes the cpuidle_device structure for each CPU device
16and registers with cpuidle using cpuidle_register_device. 16and registers with cpuidle using cpuidle_register_device.
17 17
18If all the idle states are the same, the wrapper function cpuidle_register
19could be used instead.
20
18It can also support the dynamic changes (like battery <-> AC), by using 21It can also support the dynamic changes (like battery <-> AC), by using
19cpuidle_pause_and_lock, cpuidle_disable_device and cpuidle_enable_device, 22cpuidle_pause_and_lock, cpuidle_disable_device and cpuidle_enable_device,
20cpuidle_resume_and_unlock. 23cpuidle_resume_and_unlock.
21 24
22Interfaces: 25Interfaces:
26extern int cpuidle_register(struct cpuidle_driver *drv,
27 const struct cpumask *const coupled_cpus);
28extern int cpuidle_unregister(struct cpuidle_driver *drv);
23extern int cpuidle_register_driver(struct cpuidle_driver *drv); 29extern int cpuidle_register_driver(struct cpuidle_driver *drv);
24extern void cpuidle_unregister_driver(struct cpuidle_driver *drv); 30extern void cpuidle_unregister_driver(struct cpuidle_driver *drv);
25extern int cpuidle_register_device(struct cpuidle_device *dev); 31extern int cpuidle_register_device(struct cpuidle_device *dev);
diff --git a/Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt b/Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt
new file mode 100644
index 000000000000..0715695e94a9
--- /dev/null
+++ b/Documentation/devicetree/bindings/cpufreq/arm_big_little_dt.txt
@@ -0,0 +1,65 @@
1Generic ARM big LITTLE cpufreq driver's DT glue
2-----------------------------------------------
3
4This is DT specific glue layer for generic cpufreq driver for big LITTLE
5systems.
6
7Both required and optional properties listed below must be defined
8under node /cpus/cpu@x. Where x is the first cpu inside a cluster.
9
10FIXME: Cpus should boot in the order specified in DT and all cpus for a cluster
11must be present contiguously. Generic DT driver will check only node 'x' for
12cpu:x.
13
14Required properties:
15- operating-points: Refer to Documentation/devicetree/bindings/power/opp.txt
16 for details
17
18Optional properties:
19- clock-latency: Specify the possible maximum transition latency for clock,
20 in unit of nanoseconds.
21
22Examples:
23
24cpus {
25 #address-cells = <1>;
26 #size-cells = <0>;
27
28 cpu@0 {
29 compatible = "arm,cortex-a15";
30 reg = <0>;
31 next-level-cache = <&L2>;
32 operating-points = <
33 /* kHz uV */
34 792000 1100000
35 396000 950000
36 198000 850000
37 >;
38 clock-latency = <61036>; /* two CLK32 periods */
39 };
40
41 cpu@1 {
42 compatible = "arm,cortex-a15";
43 reg = <1>;
44 next-level-cache = <&L2>;
45 };
46
47 cpu@100 {
48 compatible = "arm,cortex-a7";
49 reg = <100>;
50 next-level-cache = <&L2>;
51 operating-points = <
52 /* kHz uV */
53 792000 950000
54 396000 750000
55 198000 450000
56 >;
57 clock-latency = <61036>; /* two CLK32 periods */
58 };
59
60 cpu@101 {
61 compatible = "arm,cortex-a7";
62 reg = <101>;
63 next-level-cache = <&L2>;
64 };
65};
diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt b/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
index 4416ccc33472..051f764bedb8 100644
--- a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
+++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
@@ -32,7 +32,7 @@ cpus {
32 396000 950000 32 396000 950000
33 198000 850000 33 198000 850000
34 >; 34 >;
35 transition-latency = <61036>; /* two CLK32 periods */ 35 clock-latency = <61036>; /* two CLK32 periods */
36 }; 36 };
37 37
38 cpu@1 { 38 cpu@1 {
diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-exynos5440.txt b/Documentation/devicetree/bindings/cpufreq/cpufreq-exynos5440.txt
new file mode 100644
index 000000000000..caff1a57436f
--- /dev/null
+++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-exynos5440.txt
@@ -0,0 +1,28 @@
1
2Exynos5440 cpufreq driver
3-------------------
4
5Exynos5440 SoC cpufreq driver for CPU frequency scaling.
6
7Required properties:
8- interrupts: Interrupt to know the completion of cpu frequency change.
9- operating-points: Table of frequencies and voltage CPU could be transitioned into,
10 in the decreasing order. Frequency should be in KHz units and voltage
11 should be in microvolts.
12
13Optional properties:
14- clock-latency: Clock monitor latency in microsecond.
15
16All the required listed above must be defined under node cpufreq.
17
18Example:
19--------
20 cpufreq@160000 {
21 compatible = "samsung,exynos5440-cpufreq";
22 reg = <0x160000 0x1000>;
23 interrupts = <0 57 0>;
24 operating-points = <
25 1000000 975000
26 800000 925000>;
27 clock-latency = <100000>;
28 };