diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2016-12-22 14:16:29 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-01-05 15:27:44 +1100 |
commit | dc6b8983a50657b2ea1cc03ea1148a543f8fc6c3 (patch) | |
tree | 86511662b36a049c850ad08008e9ac53bb1f9ad1 | |
parent | 2026df3ef2555215666c9b1aedad4998069f92de (diff) | |
download | skiboot-dc6b8983a50657b2ea1cc03ea1148a543f8fc6c3.zip skiboot-dc6b8983a50657b2ea1cc03ea1148a543f8fc6c3.tar.gz skiboot-dc6b8983a50657b2ea1cc03ea1148a543f8fc6c3.tar.bz2 |
xive: Mark XIVE owned EQs with a specific flag
This will allow us to recognize them later when doing a
reset and avoid freeing them
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | hw/xive.c | 3 | ||||
-rw-r--r-- | include/xive.h | 2 |
2 files changed, 4 insertions, 1 deletions
@@ -632,7 +632,8 @@ static void xive_init_eq(uint32_t vp_blk, uint32_t vp_idx, eq->w7 = SETFIELD(EQ_W7_F0_PRIORITY, 0ul, prio); eieio(); eq->w0 = EQ_W0_VALID | EQ_W0_ENQUEUE | - SETFIELD(EQ_W0_QSIZE, 0ul, EQ_QSIZE_64K); + SETFIELD(EQ_W0_QSIZE, 0ul, EQ_QSIZE_64K) | + EQ_W0_FIRMWARE; #ifdef EQ_ALWAYS_NOTIFY eq->w0 |= EQ_W0_UCOND_NOTIFY; #endif diff --git a/include/xive.h b/include/xive.h index f4e2696..7db7ee0 100644 --- a/include/xive.h +++ b/include/xive.h @@ -355,6 +355,8 @@ struct xive_eq { #define EQ_W0_ESCALATE_CTL PPC_BIT32(5) #define EQ_W0_END_OF_INTR PPC_BIT32(6) #define EQ_W0_QSIZE PPC_BITMASK32(12,15) +#define EQ_W0_SW0 PPC_BIT32(16) +#define EQ_W0_FIRMWARE EQ_W0_SW0 /* Owned by FW */ #define EQ_QSIZE_4K 0 #define EQ_QSIZE_64K 4 #define EQ_W0_HWDEP PPC_BITMASK32(24,31) |