diff options
author | Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> | 2007-07-05 14:10:45 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-07-11 19:02:12 -0400 |
commit | 5b57a6cea464fc686a6bc446f667c05901fa9734 (patch) | |
tree | a578ced7ef8bd86c700ac5c2ad31e4fcf6249965 /drivers/pci | |
parent | cca03dec2f0eb8f3c4578e067d2b20a366b940db (diff) |
PCI: hotplug: pciehp: wait for 1 second after power off slot
According to the specification, we must wait for at least 1 second
after turning power off before taking any action that relies on power
having been removed from the slot/adapter.
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/hotplug/pciehp_ctrl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c index 7f22caa70178..98e541ffef3d 100644 --- a/drivers/pci/hotplug/pciehp_ctrl.c +++ b/drivers/pci/hotplug/pciehp_ctrl.c | |||
@@ -197,6 +197,12 @@ static void set_slot_off(struct controller *ctrl, struct slot * pslot) | |||
197 | __FUNCTION__); | 197 | __FUNCTION__); |
198 | return; | 198 | return; |
199 | } | 199 | } |
200 | /* | ||
201 | * After turning power off, we must wait for at least | ||
202 | * 1 second before taking any action that relies on | ||
203 | * power having been removed from the slot/adapter. | ||
204 | */ | ||
205 | msleep(1000); | ||
200 | } | 206 | } |
201 | } | 207 | } |
202 | 208 | ||
@@ -615,6 +621,12 @@ int pciehp_disable_slot(struct slot *p_slot) | |||
615 | mutex_unlock(&p_slot->ctrl->crit_sect); | 621 | mutex_unlock(&p_slot->ctrl->crit_sect); |
616 | return -EINVAL; | 622 | return -EINVAL; |
617 | } | 623 | } |
624 | /* | ||
625 | * After turning power off, we must wait for at least | ||
626 | * 1 second before taking any action that relies on | ||
627 | * power having been removed from the slot/adapter. | ||
628 | */ | ||
629 | msleep(1000); | ||
618 | } | 630 | } |
619 | 631 | ||
620 | ret = remove_board(p_slot); | 632 | ret = remove_board(p_slot); |