aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGavin Shan <gwshan@linux.vnet.ibm.com>2014-07-21 14:35:27 +1000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-07-21 14:48:45 +1000
commita4202bc19821a024e460592159507a059f993d3b (patch)
tree9385e51a6fe4e3ef4b5bf905e2a0188b91935aa6 /include
parent1b5220b4b7a337463cfe77e36d8988039f6facca (diff)
downloadskiboot-a4202bc19821a024e460592159507a059f993d3b.zip
skiboot-a4202bc19821a024e460592159507a059f993d3b.tar.gz
skiboot-a4202bc19821a024e460592159507a059f993d3b.tar.bz2
PCI: Allow to set frozen state
The patch introduces a new OPAL API opal_pci_eeh_freeze_set(), which allows to set frozen state for the specified PE, so that we can support "compound" PE in kernel. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'include')
-rw-r--r--include/opal.h9
-rw-r--r--include/pci.h2
2 files changed, 9 insertions, 2 deletions
diff --git a/include/opal.h b/include/opal.h
index 592f139..43b7c80 100644
--- a/include/opal.h
+++ b/include/opal.h
@@ -132,7 +132,8 @@
#define OPAL_DUMP_INFO2 94
#define OPAL_WRITE_OPPANEL_ASYNC 95
#define OPAL_PCI_ERR_INJCT 96
-#define OPAL_LAST 96
+#define OPAL_PCI_EEH_FREEZE_SET 97
+#define OPAL_LAST 97
#ifndef __ASSEMBLY__
@@ -157,7 +158,11 @@ enum OpalFreezeState {
enum OpalEehFreezeActionToken {
OPAL_EEH_ACTION_CLEAR_FREEZE_MMIO = 1,
OPAL_EEH_ACTION_CLEAR_FREEZE_DMA = 2,
- OPAL_EEH_ACTION_CLEAR_FREEZE_ALL = 3
+ OPAL_EEH_ACTION_CLEAR_FREEZE_ALL = 3,
+
+ OPAL_EEH_ACTION_SET_FREEZE_MMIO = 1,
+ OPAL_EEH_ACTION_SET_FREEZE_DMA = 2,
+ OPAL_EEH_ACTION_SET_FREEZE_ALL = 3
};
enum OpalPciStatusToken {
diff --git a/include/pci.h b/include/pci.h
index 9acc068..aff70b3 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -252,6 +252,8 @@ struct phb_ops {
uint64_t *phb_status);
int64_t (*eeh_freeze_clear)(struct phb *phb, uint64_t pe_number,
uint64_t eeh_action_token);
+ int64_t (*eeh_freeze_set)(struct phb *phb, uint64_t pe_number,
+ uint64_t eeh_action_token);
int64_t (*err_injct)(struct phb *phb, uint32_t pe_no, uint32_t type,
uint32_t function, uint64_t addr, uint64_t mask);
int64_t (*get_diag_data)(struct phb *phb, void *diag_buffer,