Lines Matching full:pm

315 	 * runtime PM status.  During probe, the device is set to  in local_pci_probe()
317 * supports runtime PM, it should call pm_runtime_put_noidle(), in local_pci_probe()
318 * or any other runtime PM helper function decrementing the usage in local_pci_probe()
483 /* Undo the runtime PM settings in local_pci_probe() */ in pci_device_remove()
639 "PCI PM: Device state not saved by %pS\n", in pci_legacy_suspend()
678 /* Disable non-bridge devices without PM support */ in pci_pm_default_suspend()
689 * Legacy PM support is used by default, so warn if the new framework is in pci_has_legacy_pm_support()
693 pci_WARN(pci_dev, ret && drv->driver.pm, "device %04x:%04x\n", in pci_has_legacy_pm_support()
704 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_prepare() local
706 if (pm && pm->prepare) { in pci_pm_prepare()
707 int error = pm->prepare(dev); in pci_pm_prepare()
773 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_suspend() local
779 * since Coffee Lake, to enter a lower-power PM state. in pci_pm_suspend()
786 if (!pm) { in pci_pm_suspend()
812 if (pm->suspend) { in pci_pm_suspend()
816 error = pm->suspend(dev); in pci_pm_suspend()
817 suspend_report_result(dev, pm->suspend, error); in pci_pm_suspend()
824 "PCI PM: State of device not saved by %pS\n", in pci_pm_suspend()
825 pm->suspend); in pci_pm_suspend()
845 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_suspend_noirq() local
853 if (!pm) { in pci_pm_suspend_noirq()
858 if (pm->suspend_noirq) { in pci_pm_suspend_noirq()
862 error = pm->suspend_noirq(dev); in pci_pm_suspend_noirq()
863 suspend_report_result(dev, pm->suspend_noirq, error); in pci_pm_suspend_noirq()
870 "PCI PM: State of device not saved by %pS\n", in pci_pm_suspend_noirq()
871 pm->suspend_noirq); in pci_pm_suspend_noirq()
888 pci_dbg(pci_dev, "PCI PM: Suspend power state: %s\n", in pci_pm_suspend_noirq()
894 * Per PCI PM r1.2, table 6-1, a bridge must be in D0 if any in pci_pm_suspend_noirq()
903 pci_dbg(pci_dev, "PCI PM: Skipped\n"); in pci_pm_suspend_noirq()
927 * runtime PM. Otherwise, the pm_resume_via_firmware() check will cause in pci_pm_suspend_noirq()
940 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_resume_noirq() local
965 if (pm && pm->resume_noirq) in pci_pm_resume_noirq()
966 return pm->resume_noirq(dev); in pci_pm_resume_noirq()
982 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_resume() local
998 if (pm) { in pci_pm_resume()
999 if (pm->resume) in pci_pm_resume()
1000 return pm->resume(dev); in pci_pm_resume()
1024 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_freeze() local
1029 if (!pm) { in pci_pm_freeze()
1045 if (pm->freeze) { in pci_pm_freeze()
1048 error = pm->freeze(dev); in pci_pm_freeze()
1049 suspend_report_result(dev, pm->freeze, error); in pci_pm_freeze()
1060 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_freeze_noirq() local
1065 if (pm && pm->freeze_noirq) { in pci_pm_freeze_noirq()
1068 error = pm->freeze_noirq(dev); in pci_pm_freeze_noirq()
1069 suspend_report_result(dev, pm->freeze_noirq, error); in pci_pm_freeze_noirq()
1085 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_thaw_noirq() local
1088 * The pm->thaw_noirq() callback assumes the device has been in pci_pm_thaw_noirq()
1102 if (pm && pm->thaw_noirq) in pci_pm_thaw_noirq()
1103 return pm->thaw_noirq(dev); in pci_pm_thaw_noirq()
1111 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_thaw() local
1117 if (pm) { in pci_pm_thaw()
1118 if (pm->thaw) in pci_pm_thaw()
1119 error = pm->thaw(dev); in pci_pm_thaw()
1132 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_poweroff() local
1137 if (!pm) { in pci_pm_poweroff()
1151 if (pm->poweroff) { in pci_pm_poweroff()
1154 error = pm->poweroff(dev); in pci_pm_poweroff()
1155 suspend_report_result(dev, pm->poweroff, error); in pci_pm_poweroff()
1176 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_poweroff_noirq() local
1184 if (!pm) { in pci_pm_poweroff_noirq()
1189 if (pm->poweroff_noirq) { in pci_pm_poweroff_noirq()
1192 error = pm->poweroff_noirq(dev); in pci_pm_poweroff_noirq()
1193 suspend_report_result(dev, pm->poweroff_noirq, error); in pci_pm_poweroff_noirq()
1216 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_restore_noirq() local
1224 if (pm && pm->restore_noirq) in pci_pm_restore_noirq()
1225 return pm->restore_noirq(dev); in pci_pm_restore_noirq()
1233 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_restore() local
1247 if (pm) { in pci_pm_restore()
1248 if (pm->restore) in pci_pm_restore()
1249 return pm->restore(dev); in pci_pm_restore()
1276 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_runtime_suspend() local
1293 if (pm && pm->runtime_suspend) { in pci_pm_runtime_suspend()
1294 error = pm->runtime_suspend(dev); in pci_pm_runtime_suspend()
1296 * -EBUSY and -EAGAIN is used to request the runtime PM core in pci_pm_runtime_suspend()
1302 pm->runtime_suspend, error); in pci_pm_runtime_suspend()
1306 pm->runtime_suspend, error); in pci_pm_runtime_suspend()
1313 if (pm && pm->runtime_suspend in pci_pm_runtime_suspend()
1317 "PCI PM: State of device not saved by %pS\n", in pci_pm_runtime_suspend()
1318 pm->runtime_suspend); in pci_pm_runtime_suspend()
1333 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_runtime_resume() local
1354 if (pm && pm->runtime_resume) in pci_pm_runtime_resume()
1355 error = pm->runtime_resume(dev); in pci_pm_runtime_resume()
1363 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; in pci_pm_runtime_idle() local
1367 * always remain in D0 regardless of the runtime PM status in pci_pm_runtime_idle()
1372 if (!pm) in pci_pm_runtime_idle()
1375 if (pm->runtime_idle) in pci_pm_runtime_idle()
1376 return pm->runtime_idle(dev); in pci_pm_runtime_idle()
1674 .pm = PCI_PM_OPS_PTR,