PM: sleep: core: Rename DPM_FLAG_NEVER_SKIP
Rename DPM_FLAG_NEVER_SKIP to DPM_FLAG_NO_DIRECT_COMPLETE which matches its purpose more closely. No functional impact. Suggested-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> # for PCI parts Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
fa2bfead91
commit
e07515563d
|
@ -361,9 +361,9 @@ the phases are: ``prepare``, ``suspend``, ``suspend_late``, ``suspend_noirq``.
|
||||||
runtime PM disabled.
|
runtime PM disabled.
|
||||||
|
|
||||||
This feature also can be controlled by device drivers by using the
|
This feature also can be controlled by device drivers by using the
|
||||||
``DPM_FLAG_NEVER_SKIP`` and ``DPM_FLAG_SMART_PREPARE`` driver power
|
``DPM_FLAG_NO_DIRECT_COMPLETE`` and ``DPM_FLAG_SMART_PREPARE`` driver
|
||||||
management flags. [Typically, they are set at the time the driver is
|
power management flags. [Typically, they are set at the time the driver
|
||||||
probed against the device in question by passing them to the
|
is probed against the device in question by passing them to the
|
||||||
:c:func:`dev_pm_set_driver_flags` helper function.] If the first of
|
:c:func:`dev_pm_set_driver_flags` helper function.] If the first of
|
||||||
these flags is set, the PM core will not apply the direct-complete
|
these flags is set, the PM core will not apply the direct-complete
|
||||||
procedure described above to the given device and, consequenty, to any
|
procedure described above to the given device and, consequenty, to any
|
||||||
|
|
|
@ -1004,11 +1004,11 @@ including the PCI bus type. The flags should be set once at the driver probe
|
||||||
time with the help of the dev_pm_set_driver_flags() function and they should not
|
time with the help of the dev_pm_set_driver_flags() function and they should not
|
||||||
be updated directly afterwards.
|
be updated directly afterwards.
|
||||||
|
|
||||||
The DPM_FLAG_NEVER_SKIP flag prevents the PM core from using the direct-complete
|
The DPM_FLAG_NO_DIRECT_COMPLETE flag prevents the PM core from using the
|
||||||
mechanism allowing device suspend/resume callbacks to be skipped if the device
|
direct-complete mechanism allowing device suspend/resume callbacks to be skipped
|
||||||
is in runtime suspend when the system suspend starts. That also affects all of
|
if the device is in runtime suspend when the system suspend starts. That also
|
||||||
the ancestors of the device, so this flag should only be used if absolutely
|
affects all of the ancestors of the device, so this flag should only be used if
|
||||||
necessary.
|
absolutely necessary.
|
||||||
|
|
||||||
The DPM_FLAG_SMART_PREPARE flag instructs the PCI bus type to only return a
|
The DPM_FLAG_SMART_PREPARE flag instructs the PCI bus type to only return a
|
||||||
positive value from pci_pm_prepare() if the ->prepare callback provided by the
|
positive value from pci_pm_prepare() if the ->prepare callback provided by the
|
||||||
|
|
|
@ -1844,7 +1844,7 @@ unlock:
|
||||||
spin_lock_irq(&dev->power.lock);
|
spin_lock_irq(&dev->power.lock);
|
||||||
dev->power.direct_complete = state.event == PM_EVENT_SUSPEND &&
|
dev->power.direct_complete = state.event == PM_EVENT_SUSPEND &&
|
||||||
(ret > 0 || dev->power.no_pm_callbacks) &&
|
(ret > 0 || dev->power.no_pm_callbacks) &&
|
||||||
!dev_pm_test_driver_flags(dev, DPM_FLAG_NEVER_SKIP);
|
!dev_pm_test_driver_flags(dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
spin_unlock_irq(&dev->power.lock);
|
spin_unlock_irq(&dev->power.lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -191,7 +191,7 @@ int amdgpu_driver_load_kms(struct drm_device *dev, unsigned long flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (adev->runpm) {
|
if (adev->runpm) {
|
||||||
dev_pm_set_driver_flags(dev->dev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(dev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
pm_runtime_use_autosuspend(dev->dev);
|
pm_runtime_use_autosuspend(dev->dev);
|
||||||
pm_runtime_set_autosuspend_delay(dev->dev, 5000);
|
pm_runtime_set_autosuspend_delay(dev->dev, 5000);
|
||||||
pm_runtime_set_active(dev->dev);
|
pm_runtime_set_active(dev->dev);
|
||||||
|
|
|
@ -549,7 +549,7 @@ void intel_runtime_pm_enable(struct intel_runtime_pm *rpm)
|
||||||
* becaue the HDA driver may require us to enable the audio power
|
* becaue the HDA driver may require us to enable the audio power
|
||||||
* domain during system suspend.
|
* domain during system suspend.
|
||||||
*/
|
*/
|
||||||
dev_pm_set_driver_flags(kdev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(kdev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
|
|
||||||
pm_runtime_set_autosuspend_delay(kdev, 10000); /* 10s */
|
pm_runtime_set_autosuspend_delay(kdev, 10000); /* 10s */
|
||||||
pm_runtime_mark_last_busy(kdev);
|
pm_runtime_mark_last_busy(kdev);
|
||||||
|
|
|
@ -158,7 +158,7 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (radeon_is_px(dev)) {
|
if (radeon_is_px(dev)) {
|
||||||
dev_pm_set_driver_flags(dev->dev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(dev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
pm_runtime_use_autosuspend(dev->dev);
|
pm_runtime_use_autosuspend(dev->dev);
|
||||||
pm_runtime_set_autosuspend_delay(dev->dev, 5000);
|
pm_runtime_set_autosuspend_delay(dev->dev, 5000);
|
||||||
pm_runtime_set_active(dev->dev);
|
pm_runtime_set_active(dev->dev);
|
||||||
|
|
|
@ -240,7 +240,7 @@ static int mei_me_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
* MEI requires to resume from runtime suspend mode
|
* MEI requires to resume from runtime suspend mode
|
||||||
* in order to perform link reset flow upon system suspend.
|
* in order to perform link reset flow upon system suspend.
|
||||||
*/
|
*/
|
||||||
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ME maps runtime suspend/resume to D0i states,
|
* ME maps runtime suspend/resume to D0i states,
|
||||||
|
|
|
@ -128,7 +128,7 @@ static int mei_txe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
* MEI requires to resume from runtime suspend mode
|
* MEI requires to resume from runtime suspend mode
|
||||||
* in order to perform link reset flow upon system suspend.
|
* in order to perform link reset flow upon system suspend.
|
||||||
*/
|
*/
|
||||||
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TXE maps runtime suspend/resume to own power gating states,
|
* TXE maps runtime suspend/resume to own power gating states,
|
||||||
|
|
|
@ -7549,7 +7549,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
|
|
||||||
e1000_print_device_info(adapter);
|
e1000_print_device_info(adapter);
|
||||||
|
|
||||||
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
|
|
||||||
if (pci_dev_run_wake(pdev) && hw->mac.type < e1000_pch_cnp)
|
if (pci_dev_run_wake(pdev) && hw->mac.type < e1000_pch_cnp)
|
||||||
pm_runtime_put_noidle(&pdev->dev);
|
pm_runtime_put_noidle(&pdev->dev);
|
||||||
|
|
|
@ -3445,7 +3445,7 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
|
|
||||||
pm_runtime_put_noidle(&pdev->dev);
|
pm_runtime_put_noidle(&pdev->dev);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -4825,7 +4825,7 @@ static int igc_probe(struct pci_dev *pdev,
|
||||||
pcie_print_link_status(pdev);
|
pcie_print_link_status(pdev);
|
||||||
netdev_info(netdev, "MAC: %pM\n", netdev->dev_addr);
|
netdev_info(netdev, "MAC: %pM\n", netdev->dev_addr);
|
||||||
|
|
||||||
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
|
dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
|
||||||
|
|
||||||
pm_runtime_put_noidle(&pdev->dev);
|
pm_runtime_put_noidle(&pdev->dev);
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,7 @@ static int pcie_portdrv_probe(struct pci_dev *dev,
|
||||||
|
|
||||||
pci_save_state(dev);
|
pci_save_state(dev);
|
||||||
|
|
||||||
dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NEVER_SKIP |
|
dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NO_DIRECT_COMPLETE |
|
||||||
DPM_FLAG_SMART_SUSPEND);
|
DPM_FLAG_SMART_SUSPEND);
|
||||||
|
|
||||||
if (pci_bridge_d3_possible(dev)) {
|
if (pci_bridge_d3_possible(dev)) {
|
||||||
|
|
|
@ -544,7 +544,7 @@ struct pm_subsys_data {
|
||||||
* These flags can be set by device drivers at the probe time. They need not be
|
* These flags can be set by device drivers at the probe time. They need not be
|
||||||
* cleared by the drivers as the driver core will take care of that.
|
* cleared by the drivers as the driver core will take care of that.
|
||||||
*
|
*
|
||||||
* NEVER_SKIP: Do not skip all system suspend/resume callbacks for the device.
|
* NO_DIRECT_COMPLETE: Do not apply direct-complete optimization to the device.
|
||||||
* SMART_PREPARE: Check the return value of the driver's ->prepare callback.
|
* SMART_PREPARE: Check the return value of the driver's ->prepare callback.
|
||||||
* SMART_SUSPEND: No need to resume the device from runtime suspend.
|
* SMART_SUSPEND: No need to resume the device from runtime suspend.
|
||||||
* LEAVE_SUSPENDED: Avoid resuming the device during system resume if possible.
|
* LEAVE_SUSPENDED: Avoid resuming the device during system resume if possible.
|
||||||
|
@ -554,7 +554,7 @@ struct pm_subsys_data {
|
||||||
* their ->prepare callbacks if the driver's ->prepare callback returns 0 (in
|
* their ->prepare callbacks if the driver's ->prepare callback returns 0 (in
|
||||||
* other words, the system suspend/resume callbacks can only be skipped for the
|
* other words, the system suspend/resume callbacks can only be skipped for the
|
||||||
* device if its driver doesn't object against that). This flag has no effect
|
* device if its driver doesn't object against that). This flag has no effect
|
||||||
* if NEVER_SKIP is set.
|
* if NO_DIRECT_COMPLETE is set.
|
||||||
*
|
*
|
||||||
* Setting SMART_SUSPEND instructs bus types and PM domains which may want to
|
* Setting SMART_SUSPEND instructs bus types and PM domains which may want to
|
||||||
* runtime resume the device upfront during system suspend that doing so is not
|
* runtime resume the device upfront during system suspend that doing so is not
|
||||||
|
@ -565,7 +565,7 @@ struct pm_subsys_data {
|
||||||
* Setting LEAVE_SUSPENDED informs the PM core and middle-layer code that the
|
* Setting LEAVE_SUSPENDED informs the PM core and middle-layer code that the
|
||||||
* driver prefers the device to be left in suspend after system resume.
|
* driver prefers the device to be left in suspend after system resume.
|
||||||
*/
|
*/
|
||||||
#define DPM_FLAG_NEVER_SKIP BIT(0)
|
#define DPM_FLAG_NO_DIRECT_COMPLETE BIT(0)
|
||||||
#define DPM_FLAG_SMART_PREPARE BIT(1)
|
#define DPM_FLAG_SMART_PREPARE BIT(1)
|
||||||
#define DPM_FLAG_SMART_SUSPEND BIT(2)
|
#define DPM_FLAG_SMART_SUSPEND BIT(2)
|
||||||
#define DPM_FLAG_LEAVE_SUSPENDED BIT(3)
|
#define DPM_FLAG_LEAVE_SUSPENDED BIT(3)
|
||||||
|
|
Loading…
Reference in New Issue