@@ -1149,8 +1149,8 @@ enum {
OPAL_XIVE_IRQ_STORE_EOI = 0x00000002,
OPAL_XIVE_IRQ_LSI = 0x00000004,
OPAL_XIVE_IRQ_SHIFT_BUG = 0x00000008,
- OPAL_XIVE_IRQ_MASK_VIA_FW = 0x00000010,
- OPAL_XIVE_IRQ_EOI_VIA_FW = 0x00000020,
+ OPAL_XIVE_IRQ_MASK_VIA_FW = 0x00000010, /* DD1.0 workaround */
+ OPAL_XIVE_IRQ_EOI_VIA_FW = 0x00000020, /* DD1.0 workaround */
};
/* Flags for OPAL_XIVE_GET/SET_QUEUE_INFO */
@@ -3629,18 +3629,6 @@ static int64_t opal_xive_get_irq_info(uint32_t girq,
if (out_flags)
*out_flags = xive_convert_irq_flags(s->flags);
- /*
- * If the orig source has a set_xive callback, then set
- * OPAL_XIVE_IRQ_MASK_VIA_FW as masking/unmasking requires
- * source specific workarounds. Same with EOI.
- */
- if (out_flags && s->orig_ops) {
- if (s->orig_ops->set_xive)
- *out_flags |= OPAL_XIVE_IRQ_MASK_VIA_FW;
- if (s->orig_ops->eoi)
- *out_flags |= OPAL_XIVE_IRQ_EOI_VIA_FW;
- }
-
idx = girq - s->esb_base;
if (out_esb_shift)
These were needed to workaround HW bugs in PHB4 LSIs of POWER9 DD1.0 processors. Keep the flags in case of a similar issue in the next generation of the XIVE logic and keep it also for Linux which still has handlers in its XIVE layer. However, there is no need to keep the code in POWER9 XIVE driver. Signed-off-by: Cédric Le Goater <clg@kaod.org> --- include/opal-api.h | 4 ++-- hw/xive.c | 12 ------------ 2 files changed, 2 insertions(+), 14 deletions(-)