@@ -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 */
@@ -3643,18 +3643,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)
@@ -3907,18 +3907,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. Signed-off-by: Cédric Le Goater <clg@kaod.org> --- include/opal-api.h | 4 ++-- hw/xive-p9.c | 12 ------------ hw/xive.c | 12 ------------ 3 files changed, 2 insertions(+), 26 deletions(-)