Skip to content

Commit 9e7a032

Browse files
committed
Merge tag 'pm-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management updates from Rafael Wysocki: "These include cpuidle changes to use nanoseconds (instead of microseconds) as the unit of time and to simplify checks for disabled idle states in the idle loop, some cpuidle fixes and governor updates, assorted cpufreq updates (driver updates mostly and a few core fixes and cleanups), devfreq updates (dominated by the tegra30 driver changes), new CPU IDs for the RAPL power capping driver, relatively minor updates of the generic power domains (genpd) and operation performance points (OPP) frameworks, and assorted fixes and cleanups. There are also two maintainer information updates: Chanwoo Choi will be maintaining the devfreq subsystem going forward and Todd Brandt is going to maintain the pm-graph utility (created by him). Specifics: - Use nanoseconds (instead of microseconds) as the unit of time in the cpuidle core and simplify checks for disabled idle states in the idle loop (Rafael Wysocki) - Fix and clean up the teo cpuidle governor (Rafael Wysocki) - Fix the cpuidle registration error code path (Zhenzhong Duan) - Avoid excessive vmexits in the ACPI cpuidle driver (Yin Fengwei) - Extend the idle injection infrastructure to be able to measure the requested duration in nanoseconds and to allow an exit latency limit for idle states to be specified (Daniel Lezcano) - Fix cpufreq driver registration and clarify a comment in the cpufreq core (Viresh Kumar) - Add NULL checks to the show() and store() methods of sysfs attributes exposed by cpufreq (Kai Shen) - Update cpufreq drivers: * Fix for a plain int as pointer warning from sparse in intel_pstate (Jamal Shareef) * Fix for a hardcoded number of CPUs and stack bloat in the powernv driver (John Hubbard) * Updates to the ti-cpufreq driver and DT files to support new platforms and migrate bindings from opp-v1 to opp-v2 (Adam Ford, H. Nikolaus Schaller) * Merging of the arm_big_little and vexpress-spc drivers and related cleanup (Sudeep Holla) * Fix for imx's default speed grade value (Anson Huang) * Minor cleanup of the s3c64xx driver (Nathan Chancellor) * CPU speed bin detection fix for sun50i (Ondrej Jirman) - Appoint Chanwoo Choi as the new devfreq maintainer. - Update the devfreq core: * Check NULL governor in available_governors_show sysfs to prevent showing wrong governor information and fix a race condition between devfreq_update_status() and trans_stat_show() (Leonard Crestez) * Add new 'interrupt-driven' flag for devfreq governors to allow interrupt-driven governors to prevent the devfreq core from polling devices for status (Dmitry Osipenko) * Improve an error message in devfreq_add_device() (Matthias Kaehlcke) - Update devfreq drivers: * tegra30 driver fixes and cleanups (Dmitry Osipenko) * Removal of unused property from dt-binding documentation for the exynos-bus driver (Kamil Konieczny) * exynos-ppmu cleanup and DT bindings update (Lukasz Luba, Marek Szyprowski) - Add new CPU IDs for CometLake Mobile and Desktop to the Intel RAPL power capping driver (Zhang Rui) - Allow device initialization in the generic power domains (genpd) framework to be more straightforward and clean it up (Ulf Hansson) - Add support for adjusting OPP voltages at run time to the OPP framework (Stephen Boyd) - Avoid freeing memory that has never been allocated in the hibernation core (Andy Whitcroft) - Clean up function headers in a header file and coding style in the wakeup IRQs handling code (Ulf Hansson, Xiaofei Tan) - Clean up the SmartReflex adaptive voltage scaling (AVS) driver for ARM (Ben Dooks, Geert Uytterhoeven) - Wrap power management documentation to fit in 80 columns (Bjorn Helgaas) - Add pm-graph utility entry to MAINTAINERS (Todd Brandt) - Update the cpupower utility: * Fix the handling of set and info subcommands (Abhishek Goel) * Fix build warnings (Nathan Chancellor) * Improve mperf_monitor handling (Janakarajan Natarajan)" * tag 'pm-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (83 commits) PM: Wrap documentation to fit in 80 columns cpuidle: Pass exit latency limit to cpuidle_use_deepest_state() cpuidle: Allow idle injection to apply exit latency limit cpuidle: Introduce cpuidle_driver_state_disabled() for driver quirks cpuidle: teo: Avoid code duplication in conditionals cpufreq: Register drivers only after CPU devices have been registered cpuidle: teo: Avoid using "early hits" incorrectly cpuidle: teo: Exclude cpuidle overhead from computations PM / Domains: Convert to dev_to_genpd_safe() in genpd_syscore_switch() mmc: tmio: Avoid boilerplate code in ->runtime_suspend() PM / Domains: Implement the ->start() callback for genpd PM / Domains: Introduce dev_pm_domain_start() ARM: OMAP2+: SmartReflex: add omap_sr_pdata definition PM / wakeirq: remove unnecessary parentheses power: avs: smartreflex: Remove superfluous cast in debugfs_create_file() call cpuidle: Use nanoseconds as the unit of time PM / OPP: Support adjusting OPP voltages at runtime PM / core: Clean up some function headers in power.h cpufreq: Add NULL checks to show() and store() methods of cpufreq cpufreq: intel_pstate: Fix plain int as pointer warning from sparse ...
2 parents c2da5bd + e350b60 commit 9e7a032

File tree

116 files changed

+2091
-1406
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+2091
-1406
lines changed

Documentation/devicetree/bindings/arm/omap/omap.txt

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,16 @@ SoC Families:
4343

4444
- OMAP2 generic - defaults to OMAP2420
4545
compatible = "ti,omap2"
46-
- OMAP3 generic - defaults to OMAP3430
46+
- OMAP3 generic
4747
compatible = "ti,omap3"
4848
- OMAP4 generic - defaults to OMAP4430
4949
compatible = "ti,omap4"
5050
- OMAP5 generic - defaults to OMAP5430
5151
compatible = "ti,omap5"
5252
- DRA7 generic - defaults to DRA742
5353
compatible = "ti,dra7"
54+
- AM33x generic
55+
compatible = "ti,am33xx"
5456
- AM43x generic - defaults to AM4372
5557
compatible = "ti,am43"
5658

@@ -63,12 +65,14 @@ SoCs:
6365

6466
- OMAP3430
6567
compatible = "ti,omap3430", "ti,omap3"
68+
legacy: "ti,omap34xx" - please do not use any more
6669
- AM3517
6770
compatible = "ti,am3517", "ti,omap3"
6871
- OMAP3630
69-
compatible = "ti,omap36xx", "ti,omap3"
70-
- AM33xx
71-
compatible = "ti,am33xx", "ti,omap3"
72+
compatible = "ti,omap3630", "ti,omap3"
73+
legacy: "ti,omap36xx" - please do not use any more
74+
- AM335x
75+
compatible = "ti,am33xx"
7276

7377
- OMAP4430
7478
compatible = "ti,omap4430", "ti,omap4"
@@ -110,19 +114,19 @@ SoCs:
110114
- AM4372
111115
compatible = "ti,am4372", "ti,am43"
112116

113-
Boards:
117+
Boards (incomplete list of examples):
114118

115119
- OMAP3 BeagleBoard : Low cost community board
116-
compatible = "ti,omap3-beagle", "ti,omap3"
120+
compatible = "ti,omap3-beagle", "ti,omap3430", "ti,omap3"
117121

118122
- OMAP3 Tobi with Overo : Commercial expansion board with daughter board
119-
compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3"
123+
compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3"
120124

121125
- OMAP4 SDP : Software Development Board
122-
compatible = "ti,omap4-sdp", "ti,omap4430"
126+
compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4"
123127

124128
- OMAP4 PandaBoard : Low cost community board
125-
compatible = "ti,omap4-panda", "ti,omap4430"
129+
compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4"
126130

127131
- OMAP4 DuoVero with Parlor : Commercial expansion board with daughter board
128132
compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
@@ -134,16 +138,16 @@ Boards:
134138
compatible = "variscite,var-dvk-om44", "variscite,var-som-om44", "ti,omap4460", "ti,omap4";
135139

136140
- OMAP3 EVM : Software Development Board for OMAP35x, AM/DM37x
137-
compatible = "ti,omap3-evm", "ti,omap3"
141+
compatible = "ti,omap3-evm", "ti,omap3630", "ti,omap3"
138142

139143
- AM335X EVM : Software Development Board for AM335x
140-
compatible = "ti,am335x-evm", "ti,am33xx", "ti,omap3"
144+
compatible = "ti,am335x-evm", "ti,am33xx"
141145

142146
- AM335X Bone : Low cost community board
143-
compatible = "ti,am335x-bone", "ti,am33xx", "ti,omap3"
147+
compatible = "ti,am335x-bone", "ti,am33xx"
144148

145149
- AM3359 ICEv2 : Low cost Industrial Communication Engine EVM.
146-
compatible = "ti,am3359-icev2", "ti,am33xx", "ti,omap3"
150+
compatible = "ti,am3359-icev2", "ti,am33xx"
147151

148152
- AM335X OrionLXm : Substation Automation Platform
149153
compatible = "novatech,am335x-lxm", "ti,am33xx"

Documentation/devicetree/bindings/cpufreq/ti-cpufreq.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,16 @@ In 'cpus' nodes:
1515

1616
In 'operating-points-v2' table:
1717
- compatible: Should be
18-
- 'operating-points-v2-ti-cpu' for am335x, am43xx, and dra7xx/am57xx SoCs
18+
- 'operating-points-v2-ti-cpu' for am335x, am43xx, and dra7xx/am57xx,
19+
omap34xx, omap36xx and am3517 SoCs
1920
- syscon: A phandle pointing to a syscon node representing the control module
2021
register space of the SoC.
2122

2223
Optional properties:
2324
--------------------
25+
- "vdd-supply", "vbb-supply": to define two regulators for dra7xx
26+
- "cpu0-supply", "vbb-supply": to define two regulators for omap36xx
27+
2428
For each opp entry in 'operating-points-v2' table:
2529
- opp-supported-hw: Two bitfields indicating:
2630
1. Which revision of the SoC the OPP is supported by

Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,23 @@ The Exynos PPMU driver uses the devfreq-event class to provide event data
1010
to various devfreq devices. The devfreq devices would use the event data when
1111
derterming the current state of each IP.
1212

13-
Required properties:
13+
Required properties for PPMU device:
1414
- compatible: Should be "samsung,exynos-ppmu" or "samsung,exynos-ppmu-v2.
1515
- reg: physical base address of each PPMU and length of memory mapped region.
1616

17-
Optional properties:
17+
Optional properties for PPMU device:
1818
- clock-names : the name of clock used by the PPMU, "ppmu"
1919
- clocks : phandles for clock specified in "clock-names" property
2020

21+
Required properties for 'events' child node of PPMU device:
22+
- event-name : the unique event name among PPMU device
23+
Optional properties for 'events' child node of PPMU device:
24+
- event-data-type : Define the type of data which shell be counted
25+
by the counter. You can check include/dt-bindings/pmu/exynos_ppmu.h for
26+
all possible type, i.e. count read requests, count write data in bytes,
27+
etc. This field is optional and when it is missing, the driver code
28+
will use default data type.
29+
2130
Example1 : PPMUv1 nodes in exynos3250.dtsi are listed below.
2231

2332
ppmu_dmc0: ppmu_dmc0@106a0000 {
@@ -145,3 +154,16 @@ Example3 : PPMUv2 nodes in exynos5433.dtsi are listed below.
145154
reg = <0x104d0000 0x2000>;
146155
status = "disabled";
147156
};
157+
158+
Example4 : 'event-data-type' in exynos4412-ppmu-common.dtsi are listed below.
159+
160+
&ppmu_dmc0 {
161+
status = "okay";
162+
events {
163+
ppmu_dmc0_3: ppmu-event3-dmc0 {
164+
event-name = "ppmu-event3-dmc0";
165+
event-data-type = <(PPMU_RO_DATA_CNT |
166+
PPMU_WO_DATA_CNT)>;
167+
};
168+
};
169+
};

Documentation/devicetree/bindings/devfreq/exynos-bus.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ Required properties only for passive bus device:
5050
Optional properties only for parent bus device:
5151
- exynos,saturation-ratio: the percentage value which is used to calibrate
5252
the performance count against total cycle count.
53-
- exynos,voltage-tolerance: the percentage value for bus voltage tolerance
54-
which is used to calculate the max voltage.
5553

5654
Detailed correlation between sub-blocks and power line according to Exynos SoC:
5755
- In case of Exynos3250, there are two power line as following:

Documentation/power/drivers-testing.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,10 @@ c) Compile the driver directly into the kernel and try the test modes of
3939
d) Attempt to hibernate with the driver compiled directly into the kernel
4040
in the "reboot", "shutdown" and "platform" modes.
4141

42-
e) Try the test modes of suspend (see: Documentation/power/basic-pm-debugging.rst,
43-
2). [As far as the STR tests are concerned, it should not matter whether or
44-
not the driver is built as a module.]
42+
e) Try the test modes of suspend (see:
43+
Documentation/power/basic-pm-debugging.rst, 2). [As far as the STR tests are
44+
concerned, it should not matter whether or not the driver is built as a
45+
module.]
4546

4647
f) Attempt to suspend to RAM using the s2ram tool with the driver loaded
4748
(see: Documentation/power/basic-pm-debugging.rst, 2).

Documentation/power/freezing-of-tasks.rst

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -215,30 +215,31 @@ VI. Are there any precautions to be taken to prevent freezing failures?
215215

216216
Yes, there are.
217217

218-
First of all, grabbing the 'system_transition_mutex' lock to mutually exclude a piece of code
219-
from system-wide sleep such as suspend/hibernation is not encouraged.
220-
If possible, that piece of code must instead hook onto the suspend/hibernation
221-
notifiers to achieve mutual exclusion. Look at the CPU-Hotplug code
222-
(kernel/cpu.c) for an example.
223-
224-
However, if that is not feasible, and grabbing 'system_transition_mutex' is deemed necessary,
225-
it is strongly discouraged to directly call mutex_[un]lock(&system_transition_mutex) since
226-
that could lead to freezing failures, because if the suspend/hibernate code
227-
successfully acquired the 'system_transition_mutex' lock, and hence that other entity failed
228-
to acquire the lock, then that task would get blocked in TASK_UNINTERRUPTIBLE
229-
state. As a consequence, the freezer would not be able to freeze that task,
230-
leading to freezing failure.
218+
First of all, grabbing the 'system_transition_mutex' lock to mutually exclude a
219+
piece of code from system-wide sleep such as suspend/hibernation is not
220+
encouraged. If possible, that piece of code must instead hook onto the
221+
suspend/hibernation notifiers to achieve mutual exclusion. Look at the
222+
CPU-Hotplug code (kernel/cpu.c) for an example.
223+
224+
However, if that is not feasible, and grabbing 'system_transition_mutex' is
225+
deemed necessary, it is strongly discouraged to directly call
226+
mutex_[un]lock(&system_transition_mutex) since that could lead to freezing
227+
failures, because if the suspend/hibernate code successfully acquired the
228+
'system_transition_mutex' lock, and hence that other entity failed to acquire
229+
the lock, then that task would get blocked in TASK_UNINTERRUPTIBLE state. As a
230+
consequence, the freezer would not be able to freeze that task, leading to
231+
freezing failure.
231232

232233
However, the [un]lock_system_sleep() APIs are safe to use in this scenario,
233234
since they ask the freezer to skip freezing this task, since it is anyway
234-
"frozen enough" as it is blocked on 'system_transition_mutex', which will be released
235-
only after the entire suspend/hibernation sequence is complete.
236-
So, to summarize, use [un]lock_system_sleep() instead of directly using
235+
"frozen enough" as it is blocked on 'system_transition_mutex', which will be
236+
released only after the entire suspend/hibernation sequence is complete. So, to
237+
summarize, use [un]lock_system_sleep() instead of directly using
237238
mutex_[un]lock(&system_transition_mutex). That would prevent freezing failures.
238239

239240
V. Miscellaneous
240241
================
241242

242243
/sys/power/pm_freeze_timeout controls how long it will cost at most to freeze
243-
all user space processes or all freezable kernel threads, in unit of millisecond.
244-
The default value is 20000, with range of unsigned integer.
244+
all user space processes or all freezable kernel threads, in unit of
245+
millisecond. The default value is 20000, with range of unsigned integer.

Documentation/power/opp.rst

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,21 @@ factors. Example usage: Thermal management or other exceptional situations where
7373
SoC framework might choose to disable a higher frequency OPP to safely continue
7474
operations until that OPP could be re-enabled if possible.
7575

76-
OPP library facilitates this concept in it's implementation. The following
76+
OPP library facilitates this concept in its implementation. The following
7777
operational functions operate only on available opps:
78-
opp_find_freq_{ceil, floor}, dev_pm_opp_get_voltage, dev_pm_opp_get_freq, dev_pm_opp_get_opp_count
78+
opp_find_freq_{ceil, floor}, dev_pm_opp_get_voltage, dev_pm_opp_get_freq,
79+
dev_pm_opp_get_opp_count
7980

80-
dev_pm_opp_find_freq_exact is meant to be used to find the opp pointer which can then
81-
be used for dev_pm_opp_enable/disable functions to make an opp available as required.
81+
dev_pm_opp_find_freq_exact is meant to be used to find the opp pointer
82+
which can then be used for dev_pm_opp_enable/disable functions to make an
83+
opp available as required.
8284

8385
WARNING: Users of OPP library should refresh their availability count using
84-
get_opp_count if dev_pm_opp_enable/disable functions are invoked for a device, the
85-
exact mechanism to trigger these or the notification mechanism to other
86-
dependent subsystems such as cpufreq are left to the discretion of the SoC
87-
specific framework which uses the OPP library. Similar care needs to be taken
88-
care to refresh the cpufreq table in cases of these operations.
86+
get_opp_count if dev_pm_opp_enable/disable functions are invoked for a
87+
device, the exact mechanism to trigger these or the notification mechanism
88+
to other dependent subsystems such as cpufreq are left to the discretion of
89+
the SoC specific framework which uses the OPP library. Similar care needs
90+
to be taken care to refresh the cpufreq table in cases of these operations.
8991

9092
2. Initial OPP List Registration
9193
================================
@@ -99,11 +101,11 @@ OPPs dynamically using the dev_pm_opp_enable / disable functions.
99101
dev_pm_opp_add
100102
Add a new OPP for a specific domain represented by the device pointer.
101103
The OPP is defined using the frequency and voltage. Once added, the OPP
102-
is assumed to be available and control of it's availability can be done
103-
with the dev_pm_opp_enable/disable functions. OPP library internally stores
104-
and manages this information in the opp struct. This function may be
105-
used by SoC framework to define a optimal list as per the demands of
106-
SoC usage environment.
104+
is assumed to be available and control of its availability can be done
105+
with the dev_pm_opp_enable/disable functions. OPP library
106+
internally stores and manages this information in the opp struct.
107+
This function may be used by SoC framework to define a optimal list
108+
as per the demands of SoC usage environment.
107109

108110
WARNING:
109111
Do not use this function in interrupt context.
@@ -354,7 +356,7 @@ struct dev_pm_opp
354356

355357
struct device
356358
This is used to identify a domain to the OPP layer. The
357-
nature of the device and it's implementation is left to the user of
359+
nature of the device and its implementation is left to the user of
358360
OPP library such as the SoC framework.
359361

360362
Overall, in a simplistic view, the data structure operations is represented as

Documentation/power/pci.rst

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -426,12 +426,12 @@ pm->runtime_idle() callback.
426426
2.4. System-Wide Power Transitions
427427
----------------------------------
428428
There are a few different types of system-wide power transitions, described in
429-
Documentation/driver-api/pm/devices.rst. Each of them requires devices to be handled
430-
in a specific way and the PM core executes subsystem-level power management
431-
callbacks for this purpose. They are executed in phases such that each phase
432-
involves executing the same subsystem-level callback for every device belonging
433-
to the given subsystem before the next phase begins. These phases always run
434-
after tasks have been frozen.
429+
Documentation/driver-api/pm/devices.rst. Each of them requires devices to be
430+
handled in a specific way and the PM core executes subsystem-level power
431+
management callbacks for this purpose. They are executed in phases such that
432+
each phase involves executing the same subsystem-level callback for every device
433+
belonging to the given subsystem before the next phase begins. These phases
434+
always run after tasks have been frozen.
435435

436436
2.4.1. System Suspend
437437
^^^^^^^^^^^^^^^^^^^^^
@@ -636,12 +636,12 @@ System restore requires a hibernation image to be loaded into memory and the
636636
pre-hibernation memory contents to be restored before the pre-hibernation system
637637
activity can be resumed.
638638

639-
As described in Documentation/driver-api/pm/devices.rst, the hibernation image is loaded
640-
into memory by a fresh instance of the kernel, called the boot kernel, which in
641-
turn is loaded and run by a boot loader in the usual way. After the boot kernel
642-
has loaded the image, it needs to replace its own code and data with the code
643-
and data of the "hibernated" kernel stored within the image, called the image
644-
kernel. For this purpose all devices are frozen just like before creating
639+
As described in Documentation/driver-api/pm/devices.rst, the hibernation image
640+
is loaded into memory by a fresh instance of the kernel, called the boot kernel,
641+
which in turn is loaded and run by a boot loader in the usual way. After the
642+
boot kernel has loaded the image, it needs to replace its own code and data with
643+
the code and data of the "hibernated" kernel stored within the image, called the
644+
image kernel. For this purpose all devices are frozen just like before creating
645645
the image during hibernation, in the
646646

647647
prepare, freeze, freeze_noirq
@@ -691,8 +691,8 @@ controlling the runtime power management of their devices.
691691

692692
At the time of this writing there are two ways to define power management
693693
callbacks for a PCI device driver, the recommended one, based on using a
694-
dev_pm_ops structure described in Documentation/driver-api/pm/devices.rst, and the
695-
"legacy" one, in which the .suspend(), .suspend_late(), .resume_early(), and
694+
dev_pm_ops structure described in Documentation/driver-api/pm/devices.rst, and
695+
the "legacy" one, in which the .suspend(), .suspend_late(), .resume_early(), and
696696
.resume() callbacks from struct pci_driver are used. The legacy approach,
697697
however, doesn't allow one to define runtime power management callbacks and is
698698
not really suitable for any new drivers. Therefore it is not covered by this

Documentation/power/pm_qos_interface.rst

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ one of the parameters.
88

99
Two different PM QoS frameworks are available:
1010
1. PM QoS classes for cpu_dma_latency
11-
2. the per-device PM QoS framework provides the API to manage the per-device latency
12-
constraints and PM QoS flags.
11+
2. The per-device PM QoS framework provides the API to manage the
12+
per-device latency constraints and PM QoS flags.
1313

1414
Each parameters have defined units:
1515

@@ -47,14 +47,14 @@ void pm_qos_add_request(handle, param_class, target_value):
4747
pm_qos API functions.
4848

4949
void pm_qos_update_request(handle, new_target_value):
50-
Will update the list element pointed to by the handle with the new target value
51-
and recompute the new aggregated target, calling the notification tree if the
52-
target is changed.
50+
Will update the list element pointed to by the handle with the new target
51+
value and recompute the new aggregated target, calling the notification tree
52+
if the target is changed.
5353

5454
void pm_qos_remove_request(handle):
55-
Will remove the element. After removal it will update the aggregate target and
56-
call the notification tree if the target was changed as a result of removing
57-
the request.
55+
Will remove the element. After removal it will update the aggregate target
56+
and call the notification tree if the target was changed as a result of
57+
removing the request.
5858

5959
int pm_qos_request(param_class):
6060
Returns the aggregated value for a given PM QoS class.
@@ -167,9 +167,9 @@ int dev_pm_qos_expose_flags(device, value)
167167
change the value of the PM_QOS_FLAG_NO_POWER_OFF flag.
168168

169169
void dev_pm_qos_hide_flags(device)
170-
Drop the request added by dev_pm_qos_expose_flags() from the device's PM QoS list
171-
of flags and remove sysfs attribute pm_qos_no_power_off from the device's power
172-
directory.
170+
Drop the request added by dev_pm_qos_expose_flags() from the device's PM QoS
171+
list of flags and remove sysfs attribute pm_qos_no_power_off from the device's
172+
power directory.
173173

174174
Notification mechanisms:
175175

@@ -179,8 +179,8 @@ int dev_pm_qos_add_notifier(device, notifier, type):
179179
Adds a notification callback function for the device for a particular request
180180
type.
181181

182-
The callback is called when the aggregated value of the device constraints list
183-
is changed.
182+
The callback is called when the aggregated value of the device constraints
183+
list is changed.
184184

185185
int dev_pm_qos_remove_notifier(device, notifier, type):
186186
Removes the notification callback function for the device.

Documentation/power/runtime_pm.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,8 +268,8 @@ defined in include/linux/pm.h:
268268
`unsigned int runtime_auto;`
269269
- if set, indicates that the user space has allowed the device driver to
270270
power manage the device at run time via the /sys/devices/.../power/control
271-
`interface;` it may only be modified with the help of the pm_runtime_allow()
272-
and pm_runtime_forbid() helper functions
271+
`interface;` it may only be modified with the help of the
272+
pm_runtime_allow() and pm_runtime_forbid() helper functions
273273

274274
`unsigned int no_callbacks;`
275275
- indicates that the device does not use the runtime PM callbacks (see

0 commit comments

Comments
 (0)