aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2011-03-05 15:48:44 -0500
committerJesse Barnes <jbarnes@virtuousgeek.org>2011-05-10 18:43:29 -0400
commit83d74e036b94ffbf871667eede5ef02993709452 (patch)
tree69ef4a3bc6ed289389ab6221df46459e088e4d11 /drivers/pci
parent3504e47ffca5ed3f9e2cc7d37b428fbf1e00ad1b (diff)
PCI/PM: Add kerneldoc description of pci_pm_reset()
The pci_pm_reset() function is not a very nice interface due to its limitations and conditional behavior (e.g. it doesn't affect devices in low-power states), but it cannot be simply dropped, because existing device drivers may depend on it. However, its behavior and limitations should be well documented, so add an appropriate kerneldoc comment to it. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pci.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 2472e7177b4b..44d1c7c3876b 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -2479,6 +2479,21 @@ clear:
2479 return 0; 2479 return 0;
2480} 2480}
2481 2481
2482/**
2483 * pci_pm_reset - Put device into PCI_D3 and back into PCI_D0.
2484 * @dev: Device to reset.
2485 * @probe: If set, only check if the device can be reset this way.
2486 *
2487 * If @dev supports native PCI PM and its PCI_PM_CTRL_NO_SOFT_RESET flag is
2488 * unset, it will be reinitialized internally when going from PCI_D3hot to
2489 * PCI_D0. If that's the case and the device is not in a low-power state
2490 * already, force it into PCI_D3hot and back to PCI_D0, causing it to be reset.
2491 *
2492 * NOTE: This causes the caller to sleep for twice the device power transition
2493 * cooldown period, which for the D0->D3hot and D3hot->D0 transitions is 10 ms
2494 * by devault (i.e. unless the @dev's d3_delay field has a different value).
2495 * Moreover, only devices in D0 can be reset by this function.
2496 */
2482static int pci_pm_reset(struct pci_dev *dev, int probe) 2497static int pci_pm_reset(struct pci_dev *dev, int probe)
2483{ 2498{
2484 u16 csr; 2499 u16 csr;