History

Merge tag 'pm+acpi-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull power management and ACPI fixes from Rafael Wysocki: "These are: a fix for a recently introduced false-positive warnings about PM domain pointers being changed inappropriately (harmless but annoying), an MCH size workaround quirk for one more platform, a compiler warning fix (generic power domains framework), an ACPI LPSS (Intel SoCs) driver fixup and a cleanup of the ACPI CPPC core code. Specifics: - PM core fix to avoid false-positive warnings generated when the pm_domain field is cleared for a device that appears to be bound to a driver (Rafael Wysocki). - New MCH size workaround quirk for Intel Haswell-ULT (Josh Boyer). - Fix for an "unused function" compiler warning in the generic power domains framework (Ulf Hansson). - Fixup for the ACPI driver for Intel SoCs (acpi-lpss) to set the PM domain pointer of a device properly in one place that was overlooked by a recent PM core update (Andy Shevchenko). - Removal of a redundant function declaration in the ACPI CPPC core code (Timur Tabi)" * tag 'pm+acpi-4.5-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PM: Avoid false-positive warnings in dev_pm_domain_set() PM / Domains: Silence compiler warning for an unused function ACPI / CPPC: remove redundant mbox_send_message() declaration ACPI / LPSS: set PM domain via helper setter PNP: Add Haswell-ULT to Intel MCH size workaround

Linus Torvalds committed 10 years ago

Commit 22f60702 parents dd6f86a 79e2f8d5 files · +10 −23Browse files

Unified · Split

5 files
  1. drivers/acpi/acpi_lpss.c +1 −1
  2. drivers/base/power/common.c +1 −1
  3. drivers/base/power/domain.c +7 −20
  4. drivers/pnp/quirks.c +1 −0
  5. include/acpi/cppc_acpi.h +0 −1
drivers/acpi/acpi_lpss.c+1−1
@@ -880,7 +880,7 @@ static int acpi_lpss_platform_notify(struct notifier_block *nb, · 879 unmodified lines
880 break;880 break;
881 case BUS_NOTIFY_DRIVER_NOT_BOUND:881 case BUS_NOTIFY_DRIVER_NOT_BOUND:
882 case BUS_NOTIFY_UNBOUND_DRIVER:882 case BUS_NOTIFY_UNBOUND_DRIVER:
883 pdev->dev.pm_domain = NULL;883 dev_pm_domain_set(&pdev->dev, NULL);
884 break;884 break;
885 case BUS_NOTIFY_ADD_DEVICE:885 case BUS_NOTIFY_ADD_DEVICE:
886 dev_pm_domain_set(&pdev->dev, &acpi_lpss_pm_domain);886 dev_pm_domain_set(&pdev->dev, &acpi_lpss_pm_domain);
drivers/base/power/common.c+1−1
@@ -146,7 +146,7 @@ void dev_pm_domain_set(struct device *dev, struct dev_pm_domain *pd) · 145 unmodified lines
146 if (dev->pm_domain == pd)146 if (dev->pm_domain == pd)
147 return;147 return;
148 148
149 WARN(device_is_bound(dev),149 WARN(pd && device_is_bound(dev),
150 "PM domains can only be changed for unbound devices\n");150 "PM domains can only be changed for unbound devices\n");
151 dev->pm_domain = pd;151 dev->pm_domain = pd;
152 device_pm_check_callbacks(dev);152 device_pm_check_callbacks(dev);
drivers/base/power/domain.c+7−20
@@ -173,14 +173,14 @@ static void genpd_queue_power_off_work(struct generic_pm_domain *genpd) · 172 unmodified lines
173}173}
174 174
175/**175/**
176 * __genpd_poweron - Restore power to a given PM domain and its masters.176 * genpd_poweron - Restore power to a given PM domain and its masters.
177 * @genpd: PM domain to power up.177 * @genpd: PM domain to power up.
178 * @depth: nesting count for lockdep.178 * @depth: nesting count for lockdep.
179 *179 *
180 * Restore power to @genpd and all of its masters so that it is possible to180 * Restore power to @genpd and all of its masters so that it is possible to
181 * resume a device belonging to it.181 * resume a device belonging to it.
182 */182 */
183static int __genpd_poweron(struct generic_pm_domain *genpd, unsigned int depth)183static int genpd_poweron(struct generic_pm_domain *genpd, unsigned int depth)
184{184{
185 struct gpd_link *link;185 struct gpd_link *link;
186 int ret = 0;186 int ret = 0;
@@ -200,7 +200,7 @@ static int __genpd_poweron(struct generic_pm_domain *genpd, unsigned int depth) · 13 unmodified lines
200 genpd_sd_counter_inc(master);200 genpd_sd_counter_inc(master);
201 201
202 mutex_lock_nested(&master->lock, depth + 1);202 mutex_lock_nested(&master->lock, depth + 1);
203 ret = __genpd_poweron(master, depth + 1);203 ret = genpd_poweron(master, depth + 1);
204 mutex_unlock(&master->lock);204 mutex_unlock(&master->lock);
205 205
206 if (ret) {206 if (ret) {
@@ -227,21 +227,6 @@ static int __genpd_poweron(struct generic_pm_domain *genpd, unsigned int depth) · 20 unmodified lines
227 return ret;227 return ret;
228}228}
229 229
230/**
231 * genpd_poweron - Restore power to a given PM domain and its masters.
232 * @genpd: PM domain to power up.
233 */
234static int genpd_poweron(struct generic_pm_domain *genpd)
235{
236 int ret;
237
238 mutex_lock(&genpd->lock);
239 ret = __genpd_poweron(genpd, 0);
240 mutex_unlock(&genpd->lock);
241 return ret;
242}
243
244
245static int genpd_save_dev(struct generic_pm_domain *genpd, struct device *dev)230static int genpd_save_dev(struct generic_pm_domain *genpd, struct device *dev)
246{231{
247 return GENPD_DEV_CALLBACK(genpd, int, save_state, dev);232 return GENPD_DEV_CALLBACK(genpd, int, save_state, dev);
@@ -489,7 +474,7 @@ static int pm_genpd_runtime_resume(struct device *dev) · 241 unmodified lines
489 }474 }
490 475
491 mutex_lock(&genpd->lock);476 mutex_lock(&genpd->lock);
492 ret = __genpd_poweron(genpd, 0);477 ret = genpd_poweron(genpd, 0);
493 mutex_unlock(&genpd->lock);478 mutex_unlock(&genpd->lock);
494 479
495 if (ret)480 if (ret)
@@ -1821,8 +1806,10 @@ int genpd_dev_pm_attach(struct device *dev) · 1325 unmodified lines
1821 1806
1822 dev->pm_domain->detach = genpd_dev_pm_detach;1807 dev->pm_domain->detach = genpd_dev_pm_detach;
1823 dev->pm_domain->sync = genpd_dev_pm_sync;1808 dev->pm_domain->sync = genpd_dev_pm_sync;
1824 ret = genpd_poweron(pd);
1825 1809
1810 mutex_lock(&pd->lock);
1811 ret = genpd_poweron(pd, 0);
1812 mutex_unlock(&pd->lock);
1826out:1813out:
1827 return ret ? -EPROBE_DEFER : 0;1814 return ret ? -EPROBE_DEFER : 0;
1828}1815}
drivers/pnp/quirks.c+1−0
@@ -342,6 +342,7 @@ static void quirk_amd_mmconfig_area(struct pnp_dev *dev) · 341 unmodified lines
342/* Device IDs of parts that have 32KB MCH space */342/* Device IDs of parts that have 32KB MCH space */
343static const unsigned int mch_quirk_devices[] = {343static const unsigned int mch_quirk_devices[] = {
344 0x0154, /* Ivy Bridge */344 0x0154, /* Ivy Bridge */
345 0x0a04, /* Haswell-ULT */
345 0x0c00, /* Haswell */346 0x0c00, /* Haswell */
346 0x1604, /* Broadwell */347 0x1604, /* Broadwell */
347};348};
include/acpi/cppc_acpi.h+0−1
@@ -133,6 +133,5 @@ extern int acpi_get_psd_map(struct cpudata **); · 132 unmodified lines
133/* Methods to interact with the PCC mailbox controller. */133/* Methods to interact with the PCC mailbox controller. */
134extern struct mbox_chan *134extern struct mbox_chan *
135 pcc_mbox_request_channel(struct mbox_client *, unsigned int);135 pcc_mbox_request_channel(struct mbox_client *, unsigned int);
136extern int mbox_send_message(struct mbox_chan *chan, void *mssg);
137 136
138#endif /* _CPPC_ACPI_H*/137#endif /* _CPPC_ACPI_H*/

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t