powerpc/eeh: I/O chip post initialization
The post initialization (struct eeh_ops::post_init) is called after the EEH probe is done. On the other hand, the EEH core post initialization is designed to call platform and then I/O chip backend on PowerNV platform. The patch adds the backend for I/O chip to notify the platform that the specific PHB is ready to supply EEH service. Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
8747f36324
commit
73370c662b
|
@ -34,8 +34,27 @@
|
|||
#include "powernv.h"
|
||||
#include "pci.h"
|
||||
|
||||
/**
|
||||
* ioda_eeh_post_init - Chip dependent post initialization
|
||||
* @hose: PCI controller
|
||||
*
|
||||
* The function will be called after eeh PEs and devices
|
||||
* have been built. That means the EEH is ready to supply
|
||||
* service with I/O cache.
|
||||
*/
|
||||
static int ioda_eeh_post_init(struct pci_controller *hose)
|
||||
{
|
||||
struct pnv_phb *phb = hose->private_data;
|
||||
|
||||
/* FIXME: Enable it for PHB3 later */
|
||||
if (phb->type == PNV_PHB_IODA1)
|
||||
phb->eeh_enabled = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct pnv_eeh_ops ioda_eeh_ops = {
|
||||
.post_init = NULL,
|
||||
.post_init = ioda_eeh_post_init,
|
||||
.set_option = NULL,
|
||||
.get_state = NULL,
|
||||
.reset = NULL,
|
||||
|
|
Loading…
Reference in a new issue