diff options
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/powernv/eeh-powernv.c | 16 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh_pseries.c | 2 |
2 files changed, 17 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c b/arch/powerpc/platforms/powernv/eeh-powernv.c index 996d8844cbdf..0401f84f7b89 100644 --- a/arch/powerpc/platforms/powernv/eeh-powernv.c +++ b/arch/powerpc/platforms/powernv/eeh-powernv.c | |||
@@ -45,6 +45,9 @@ | |||
45 | */ | 45 | */ |
46 | static int powernv_eeh_init(void) | 46 | static int powernv_eeh_init(void) |
47 | { | 47 | { |
48 | struct pci_controller *hose; | ||
49 | struct pnv_phb *phb; | ||
50 | |||
48 | /* We require OPALv3 */ | 51 | /* We require OPALv3 */ |
49 | if (!firmware_has_feature(FW_FEATURE_OPALv3)) { | 52 | if (!firmware_has_feature(FW_FEATURE_OPALv3)) { |
50 | pr_warning("%s: OPALv3 is required !\n", __func__); | 53 | pr_warning("%s: OPALv3 is required !\n", __func__); |
@@ -54,6 +57,19 @@ static int powernv_eeh_init(void) | |||
54 | /* Set probe mode */ | 57 | /* Set probe mode */ |
55 | eeh_add_flag(EEH_PROBE_MODE_DEV); | 58 | eeh_add_flag(EEH_PROBE_MODE_DEV); |
56 | 59 | ||
60 | /* | ||
61 | * P7IOC blocks PCI config access to frozen PE, but PHB3 | ||
62 | * doesn't do that. So we have to selectively enable I/O | ||
63 | * prior to collecting error log. | ||
64 | */ | ||
65 | list_for_each_entry(hose, &hose_list, list_node) { | ||
66 | phb = hose->private_data; | ||
67 | |||
68 | if (phb->model == PNV_PHB_MODEL_P7IOC) | ||
69 | eeh_add_flag(EEH_ENABLE_IO_FOR_LOG); | ||
70 | break; | ||
71 | } | ||
72 | |||
57 | return 0; | 73 | return 0; |
58 | } | 74 | } |
59 | 75 | ||
diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c b/arch/powerpc/platforms/pseries/eeh_pseries.c index ba94b5b8d58c..dd1874ca56d9 100644 --- a/arch/powerpc/platforms/pseries/eeh_pseries.c +++ b/arch/powerpc/platforms/pseries/eeh_pseries.c | |||
@@ -128,7 +128,7 @@ static int pseries_eeh_init(void) | |||
128 | } | 128 | } |
129 | 129 | ||
130 | /* Set EEH probe mode */ | 130 | /* Set EEH probe mode */ |
131 | eeh_add_flag(EEH_PROBE_MODE_DEVTREE); | 131 | eeh_add_flag(EEH_PROBE_MODE_DEVTREE | EEH_ENABLE_IO_FOR_LOG); |
132 | 132 | ||
133 | return 0; | 133 | return 0; |
134 | } | 134 | } |