Skip to content

Commit 74de818

Browse files
committed
Merge tag 'pm-4.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fixes from Rafael Wysocki: "These fix a deadlock in the operating performance points (OPP) framework introduced during the 4.11 cycle, more issues with duplicate device objects for cpufreq-dt and cpufreq documentation. Specifics: - Fix a deadlock in the operating performance points (OPP) framework caused by a notifier callback taking a lock that's already held by its caller (Viresh Kumar). - Prevent the ti-cpufreq and cpufreq-dt-platdev drivers from attempting to register conflicting device objects which triggers a warning from sysfs (Suniel Mahesh). - Drop a stale reference to a piece of intel_pstate documentation that's not in the tree any more (Rafael Wysocki)" * tag 'pm-4.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: docs: Drop intel-pstate.txt from index.txt cpufreq: dt: Fix sysfs duplicate filename creation for platform-device PM / OPP: Call notifier without holding opp_table->lock
2 parents 02a2b05 + abeb19a commit 74de818

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

Documentation/cpu-freq/index.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ cpufreq-stats.txt - General description of sysfs cpufreq stats.
3232

3333
index.txt - File index, Mailing list and Links (this document)
3434

35-
intel-pstate.txt - Intel pstate cpufreq driver specific file.
36-
3735
pcc-cpufreq.txt - PCC cpufreq driver specific file.
3836

3937

drivers/base/power/opp/core.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1581,6 +1581,9 @@ static int _opp_set_availability(struct device *dev, unsigned long freq,
15811581

15821582
opp->available = availability_req;
15831583

1584+
dev_pm_opp_get(opp);
1585+
mutex_unlock(&opp_table->lock);
1586+
15841587
/* Notify the change of the OPP availability */
15851588
if (availability_req)
15861589
blocking_notifier_call_chain(&opp_table->head, OPP_EVENT_ENABLE,
@@ -1589,8 +1592,12 @@ static int _opp_set_availability(struct device *dev, unsigned long freq,
15891592
blocking_notifier_call_chain(&opp_table->head,
15901593
OPP_EVENT_DISABLE, opp);
15911594

1595+
dev_pm_opp_put(opp);
1596+
goto put_table;
1597+
15921598
unlock:
15931599
mutex_unlock(&opp_table->lock);
1600+
put_table:
15941601
dev_pm_opp_put_opp_table(opp_table);
15951602
return r;
15961603
}

drivers/cpufreq/cpufreq-dt-platdev.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ static const struct of_device_id blacklist[] __initconst = {
118118

119119
{ .compatible = "sigma,tango4", },
120120

121+
{ .compatible = "ti,am33xx", },
122+
{ .compatible = "ti,am43", },
123+
{ .compatible = "ti,dra7", },
124+
121125
{ }
122126
};
123127

0 commit comments

Comments
 (0)