powerpc/eeh: Make the delay for PE reset unified
Basically, we have 3 types of resets to fulfil PE reset: fundamental, hot and PHB reset. For the later 2 cases, we need PCI bus reset hold and settlement delay as specified by PCI spec. PowerNV and pSeries platforms are running on top of different firmware and some of the delays have been covered by underly firmware (PowerNV). The patch makes the delays unified to be done in backend, instead of EEH core. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:

committed by
Benjamin Herrenschmidt

parent
fd5cee7ce8
commit
26833a5029
@@ -639,20 +639,7 @@ static void eeh_reset_pe_once(struct eeh_pe *pe)
|
||||
else
|
||||
eeh_ops->reset(pe, EEH_RESET_HOT);
|
||||
|
||||
/* The PCI bus requires that the reset be held high for at least
|
||||
* a 100 milliseconds. We wait a bit longer 'just in case'.
|
||||
*/
|
||||
#define PCI_BUS_RST_HOLD_TIME_MSEC 250
|
||||
msleep(PCI_BUS_RST_HOLD_TIME_MSEC);
|
||||
|
||||
eeh_ops->reset(pe, EEH_RESET_DEACTIVATE);
|
||||
|
||||
/* After a PCI slot has been reset, the PCI Express spec requires
|
||||
* a 1.5 second idle time for the bus to stabilize, before starting
|
||||
* up traffic.
|
||||
*/
|
||||
#define PCI_BUS_SETTLE_TIME_MSEC 1800
|
||||
msleep(PCI_BUS_SETTLE_TIME_MSEC);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user