Lines Matching +full:- +full:- +full:disable +full:- +full:fdt
4 * Copyright (c) 2017-2024, IBM Corporation.
6 * SPDX-License-Identifier: GPL-2.0-or-later
13 #include "qemu/error-report.h"
18 #include "hw/ppc/fdt.h"
24 #include "hw/qdev-properties.h"
51 return nvt_idx - SPAPR_XIVE_NVT_BASE; in spapr_xive_nvt_to_target()
64 *out_nvt_idx = SPAPR_XIVE_NVT_BASE + cpu->vcpu_id; in spapr_xive_cpu_to_nvt()
74 return -1; in spapr_xive_target_to_nvt()
111 *out_end_idx = (cpu->vcpu_id << 3) + prio; in spapr_xive_cpu_to_end()
121 return -1; in spapr_xive_target_to_end()
136 uint32_t qindex = xive_get_field32(END_W1_PAGE_OFF, end->w1); in spapr_xive_end_pic_print_info()
137 uint32_t qgen = xive_get_field32(END_W1_GENERATION, end->w1); in spapr_xive_end_pic_print_info()
138 uint32_t qsize = xive_get_field32(END_W0_QSIZE, end->w0); in spapr_xive_end_pic_print_info()
140 uint32_t nvt = xive_get_field32(END_W6_NVT_INDEX, end->w6); in spapr_xive_end_pic_print_info()
141 uint8_t priority = xive_get_field32(END_W7_F0_PRIORITY, end->w7); in spapr_xive_end_pic_print_info()
155 (kvm_irqchip_in_kernel() && (xive)->fd != -1)
159 XiveSource *xsrc = &xive->source; in spapr_xive_pic_print_info()
174 for (i = 0; i < xive->nr_irqs; i++) { in spapr_xive_pic_print_info()
176 XiveEAS *eas = &xive->eat[i]; in spapr_xive_pic_print_info()
184 pq & XIVE_ESB_VAL_P ? 'P' : '-', in spapr_xive_pic_print_info()
185 pq & XIVE_ESB_VAL_Q ? 'Q' : '-', in spapr_xive_pic_print_info()
188 (int) xive_get_field64(EAS_END_DATA, eas->w)); in spapr_xive_pic_print_info()
191 uint32_t end_idx = xive_get_field64(EAS_END_INDEX, eas->w); in spapr_xive_pic_print_info()
194 assert(end_idx < xive->nr_ends); in spapr_xive_pic_print_info()
195 end = &xive->endt[end_idx]; in spapr_xive_pic_print_info()
208 memory_region_set_enabled(&xive->source.esb_mmio, enable); in spapr_xive_mmio_set_enabled()
209 memory_region_set_enabled(&xive->tm_mmio, enable); in spapr_xive_mmio_set_enabled()
211 /* Disable the END ESBs until a guest OS makes use of them */ in spapr_xive_mmio_set_enabled()
212 memory_region_set_enabled(&xive->end_source.esb_mmio, false); in spapr_xive_mmio_set_enabled()
218 XiveTCTX *tctx = spapr_cpu_state(POWERPC_CPU(current_cpu))->tctx; in spapr_xive_tm_write()
225 XiveTCTX *tctx = spapr_cpu_state(POWERPC_CPU(current_cpu))->tctx; in spapr_xive_tm_read()
249 end->w1 = cpu_to_be32(END_W1_ESe_Q | END_W1_ESn_Q); in spapr_xive_end_reset()
263 for (i = 0; i < xive->nr_irqs; i++) { in spapr_xive_reset()
264 XiveEAS *eas = &xive->eat[i]; in spapr_xive_reset()
266 eas->w = cpu_to_be64(EAS_VALID | EAS_MASKED); in spapr_xive_reset()
268 eas->w = 0; in spapr_xive_reset()
273 for (i = 0; i < xive->nr_ends; i++) { in spapr_xive_reset()
274 spapr_xive_end_reset(&xive->endt[i]); in spapr_xive_reset()
282 object_initialize_child(obj, "source", &xive->source, TYPE_XIVE_SOURCE); in spapr_xive_instance_init()
284 object_initialize_child(obj, "end_source", &xive->end_source, in spapr_xive_instance_init()
288 xive->fd = -1; in spapr_xive_instance_init()
295 XiveSource *xsrc = &xive->source; in spapr_xive_realize()
296 XiveENDSource *end_xsrc = &xive->end_source; in spapr_xive_realize()
300 g_assert(xive->nr_irqs); in spapr_xive_realize()
301 g_assert(xive->nr_ends); in spapr_xive_realize()
303 sxc->parent_realize(dev, &local_err); in spapr_xive_realize()
312 object_property_set_int(OBJECT(xsrc), "nr-irqs", xive->nr_irqs, in spapr_xive_realize()
322 object_property_set_int(OBJECT(end_xsrc), "nr-ends", xive->nr_irqs, in spapr_xive_realize()
331 xive->end_base = xive->vc_base + xive_source_esb_len(xsrc); in spapr_xive_realize()
336 xive->eat = g_new0(XiveEAS, xive->nr_irqs); in spapr_xive_realize()
337 xive->endt = g_new0(XiveEND, xive->nr_ends); in spapr_xive_realize()
339 xive->nodename = g_strdup_printf("interrupt-controller@%" PRIx64, in spapr_xive_realize()
340 xive->tm_base + XIVE_TM_USER_PAGE * (1 << TM_SHIFT)); in spapr_xive_realize()
345 memory_region_init_io(&xive->tm_mmio, OBJECT(xive), &spapr_xive_tm_ops, in spapr_xive_realize()
352 memory_region_add_subregion(get_system_memory(), xive->vc_base, in spapr_xive_realize()
353 &xsrc->esb_mmio); in spapr_xive_realize()
354 memory_region_add_subregion(get_system_memory(), xive->end_base, in spapr_xive_realize()
355 &end_xsrc->esb_mmio); in spapr_xive_realize()
356 memory_region_add_subregion(get_system_memory(), xive->tm_base, in spapr_xive_realize()
357 &xive->tm_mmio); in spapr_xive_realize()
365 if (eas_idx >= xive->nr_irqs) { in spapr_xive_get_eas()
366 return -1; in spapr_xive_get_eas()
369 *eas = xive->eat[eas_idx]; in spapr_xive_get_eas()
378 if (end_idx >= xive->nr_ends) { in spapr_xive_get_end()
379 return -1; in spapr_xive_get_end()
382 memcpy(end, &xive->endt[end_idx], sizeof(XiveEND)); in spapr_xive_get_end()
392 if (end_idx >= xive->nr_ends) { in spapr_xive_write_end()
393 return -1; in spapr_xive_write_end()
396 memcpy(&xive->endt[end_idx], end, sizeof(XiveEND)); in spapr_xive_write_end()
408 return -1; in spapr_xive_get_nvt()
415 nvt->w0 = cpu_to_be32(NVT_W0_VALID); in spapr_xive_get_nvt()
425 * machine should never hit a non-scheduled NVT. It should never in spapr_xive_write_nvt()
442 XiveTCTX *tctx = spapr_cpu_state(cpu)->tctx; in spapr_xive_match_nvt()
462 if (ring != -1) { in spapr_xive_match_nvt()
463 if (match->tctx) { in spapr_xive_match_nvt()
466 return -1; in spapr_xive_match_nvt()
469 match->ring = ring; in spapr_xive_match_nvt()
470 match->tctx = tctx; in spapr_xive_match_nvt()
505 *pq = xive_source_esb_get(&xive->source, idx); in spapr_xive_get_pq()
516 *pq = xive_source_esb_set(&xive->source, idx, *pq); in spapr_xive_set_pq()
594 XiveSource *xsrc = &xive->source; in spapr_xive_claim_irq()
596 assert(lisn < xive->nr_irqs); in spapr_xive_claim_irq()
600 if (xive_eas_is_valid(&xive->eat[lisn])) { in spapr_xive_claim_irq()
602 return -EBUSY; in spapr_xive_claim_irq()
608 xive->eat[lisn].w |= cpu_to_be64(EAS_VALID | EAS_MASKED); in spapr_xive_claim_irq()
623 assert(lisn < xive->nr_irqs); in spapr_xive_free_irq()
627 xive->eat[lisn].w &= cpu_to_be64(~EAS_VALID); in spapr_xive_free_irq()
631 DEFINE_PROP_UINT32("nr-irqs", SpaprXive, nr_irqs, 0),
632 DEFINE_PROP_UINT32("nr-ends", SpaprXive, nr_ends, 0),
633 DEFINE_PROP_UINT64("vc-base", SpaprXive, vc_base, SPAPR_XIVE_VC_BASE),
634 DEFINE_PROP_UINT64("tm-base", SpaprXive, tm_base, SPAPR_XIVE_TM_BASE),
635 DEFINE_PROP_UINT8("hv-prio", SpaprXive, hv_prio, 7),
647 return -1; in spapr_xive_cpu_intc_create()
650 spapr_cpu->tctx = XIVE_TCTX(obj); in spapr_xive_cpu_intc_create()
657 memcpy(&tctx->regs[TM_QW1_OS + TM_WORD2], &qw1w2, 4); in xive_tctx_set_os_cam()
663 XiveTCTX *tctx = spapr_cpu_state(cpu)->tctx; in spapr_xive_cpu_intc_reset()
684 xive_tctx_destroy(spapr_cpu->tctx); in spapr_xive_cpu_intc_destroy()
685 spapr_cpu->tctx = NULL; in spapr_xive_cpu_intc_destroy()
695 kvmppc_xive_source_set_irq(&xive->source, irq, val); in spapr_xive_set_irq()
697 xive_source_set_irq(&xive->source, irq, val); in spapr_xive_set_irq()
709 xive_tctx_pic_print_info(spapr_cpu_state(cpu)->tctx, buf); in spapr_xive_print_info()
715 void *fdt, uint32_t phandle) in spapr_xive_dt() argument
726 * EQ size - the sizes of pages supported by the system 4K, 64K, in spapr_xive_dt()
738 cpu_to_be32(xive->hv_prio), /* start */ in spapr_xive_dt()
739 cpu_to_be32(0xff - xive->hv_prio), /* count */ in spapr_xive_dt()
743 timas[0] = cpu_to_be64(xive->tm_base + in spapr_xive_dt()
746 timas[2] = cpu_to_be64(xive->tm_base + in spapr_xive_dt()
750 _FDT(node = fdt_add_subnode(fdt, 0, xive->nodename)); in spapr_xive_dt()
752 _FDT(fdt_setprop_string(fdt, node, "device_type", "power-ivpe")); in spapr_xive_dt()
753 _FDT(fdt_setprop(fdt, node, "reg", timas, sizeof(timas))); in spapr_xive_dt()
755 _FDT(fdt_setprop_string(fdt, node, "compatible", "ibm,power-ivpe")); in spapr_xive_dt()
756 _FDT(fdt_setprop(fdt, node, "ibm,xive-eq-sizes", eq_sizes, in spapr_xive_dt()
758 _FDT(fdt_setprop(fdt, node, "ibm,xive-lisn-ranges", lisn_ranges, in spapr_xive_dt()
762 _FDT(fdt_setprop(fdt, node, "interrupt-controller", NULL, 0)); in spapr_xive_dt()
763 _FDT(fdt_setprop_cell(fdt, node, "#interrupt-cells", 2)); in spapr_xive_dt()
766 _FDT(fdt_setprop_cell(fdt, node, "linux,phandle", phandle)); in spapr_xive_dt()
767 _FDT(fdt_setprop_cell(fdt, node, "phandle", phandle)); in spapr_xive_dt()
770 * The "ibm,plat-res-int-priorities" property defines the priority in spapr_xive_dt()
773 _FDT(fdt_setprop(fdt, 0, "ibm,plat-res-int-priorities", in spapr_xive_dt()
820 dc->desc = "sPAPR XIVE Interrupt Controller"; in spapr_xive_class_init()
823 &sxc->parent_realize); in spapr_xive_class_init()
824 dc->vmsd = &vmstate_spapr_xive; in spapr_xive_class_init()
826 xrc->get_eas = spapr_xive_get_eas; in spapr_xive_class_init()
827 xrc->get_pq = spapr_xive_get_pq; in spapr_xive_class_init()
828 xrc->set_pq = spapr_xive_set_pq; in spapr_xive_class_init()
829 xrc->get_end = spapr_xive_get_end; in spapr_xive_class_init()
830 xrc->write_end = spapr_xive_write_end; in spapr_xive_class_init()
831 xrc->get_nvt = spapr_xive_get_nvt; in spapr_xive_class_init()
832 xrc->write_nvt = spapr_xive_write_nvt; in spapr_xive_class_init()
833 xrc->get_block_id = spapr_xive_get_block_id; in spapr_xive_class_init()
835 sicc->activate = spapr_xive_activate; in spapr_xive_class_init()
836 sicc->deactivate = spapr_xive_deactivate; in spapr_xive_class_init()
837 sicc->cpu_intc_create = spapr_xive_cpu_intc_create; in spapr_xive_class_init()
838 sicc->cpu_intc_reset = spapr_xive_cpu_intc_reset; in spapr_xive_class_init()
839 sicc->cpu_intc_destroy = spapr_xive_cpu_intc_destroy; in spapr_xive_class_init()
840 sicc->claim_irq = spapr_xive_claim_irq; in spapr_xive_class_init()
841 sicc->free_irq = spapr_xive_free_irq; in spapr_xive_class_init()
842 sicc->set_irq = spapr_xive_set_irq; in spapr_xive_class_init()
843 sicc->print_info = spapr_xive_print_info; in spapr_xive_class_init()
844 sicc->dt = spapr_xive_dt; in spapr_xive_class_init()
845 sicc->post_load = spapr_xive_post_load; in spapr_xive_class_init()
847 xpc->match_nvt = spapr_xive_match_nvt; in spapr_xive_class_init()
848 xpc->get_config = spapr_xive_presenter_get_config; in spapr_xive_class_init()
849 xpc->in_kernel = spapr_xive_in_kernel_xptr; in spapr_xive_class_init()
894 return priority >= xive->hv_prio; in type_init()
904 * - R4: "flags"
905 * Bits 0-63 reserved
906 * - R5: "lisn" is per "interrupts", "interrupt-map", or
907 * "ibm,xive-lisn-ranges" properties, or as returned by the
908 * ibm,query-interrupt-source-number RTAS call, or as returned
912 * - R4: "flags"
913 * Bits 0-59: Reserved
919 * - R5: Logical Real address of full function Event State Buffer
920 * management page, -1 if H_INT_ESB hcall flag is set to 1.
921 * - R6: Logical Real Address of trigger only Event State Buffer
922 * management page or -1.
923 * - R7: Power of 2 page size for the ESB management pages returned in
938 SpaprXive *xive = spapr->xive; in h_int_get_source_info()
939 XiveSource *xsrc = &xive->source; in h_int_get_source_info()
945 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_get_source_info()
953 if (lisn >= xive->nr_irqs) { in h_int_get_source_info()
959 if (!xive_eas_is_valid(&xive->eat[lisn])) { in h_int_get_source_info()
973 if (xsrc->esb_flags & XIVE_SRC_STORE_EOI) { in h_int_get_source_info()
979 * interrupt. This is necessary under KVM to re-trigger the in h_int_get_source_info()
987 args[1] = xive->vc_base + xive_source_esb_mgmt(xsrc, lisn); in h_int_get_source_info()
989 args[1] = -1; in h_int_get_source_info()
994 args[2] = xive->vc_base + xive_source_esb_page(xsrc, lisn); in h_int_get_source_info()
996 args[2] = -1; in h_int_get_source_info()
1000 args[3] = xsrc->esb_shift - 1; in h_int_get_source_info()
1002 args[3] = xsrc->esb_shift; in h_int_get_source_info()
1017 * - R4: "flags"
1018 * Bits 0-61: Reserved
1023 * set. There is no race-free way of unmasking and restoring the
1028 * - R5: "lisn" is per "interrupts", "interrupt-map", or
1029 * "ibm,xive-lisn-ranges" properties, or as returned by the
1030 * ibm,query-interrupt-source-number RTAS call, or as returned by
1032 * - R6: "target" is per "ibm,ppc-interrupt-server#s" or
1033 * "ibm,ppc-interrupt-gserver#s"
1034 * - R7: "priority" is a valid priority not in
1035 * "ibm,plat-res-int-priorities"
1036 * - R8: "eisn" is the guest EISN associated with the "lisn"
1039 * - None
1050 SpaprXive *xive = spapr->xive; in h_int_set_source_config()
1062 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_set_source_config()
1070 if (lisn >= xive->nr_irqs) { in h_int_set_source_config()
1076 eas = xive->eat[lisn]; in h_int_set_source_config()
1128 xive->eat[lisn] = new_eas; in h_int_set_source_config()
1139 * - R4: "flags"
1140 * Bits 0-63 Reserved
1141 * - R5: "lisn" is per "interrupts", "interrupt-map", or
1142 * "ibm,xive-lisn-ranges" properties, or as returned by the
1143 * ibm,query-interrupt-source-number RTAS call, or as
1147 * - R4: Target to which the specified Logical Interrupt Source is
1149 * - R5: Priority to which the specified Logical Interrupt Source is
1151 * - R6: EISN for the specified Logical Interrupt Source (this will be
1159 SpaprXive *xive = spapr->xive; in h_int_get_source_config()
1169 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_get_source_config()
1177 if (lisn >= xive->nr_irqs) { in h_int_get_source_config()
1183 eas = xive->eat[lisn]; in h_int_get_source_config()
1193 assert(end_idx < xive->nr_ends); in h_int_get_source_config()
1194 end = &xive->endt[end_idx]; in h_int_get_source_config()
1196 nvt_blk = xive_get_field32(END_W6_NVT_BLOCK, end->w6); in h_int_get_source_config()
1197 nvt_idx = xive_get_field32(END_W6_NVT_INDEX, end->w6); in h_int_get_source_config()
1203 args[1] = xive_get_field32(END_W7_F0_PRIORITY, end->w7); in h_int_get_source_config()
1218 * - R4: "flags"
1219 * Bits 0-63 Reserved
1220 * - R5: "target" is per "ibm,ppc-interrupt-server#s" or
1221 * "ibm,ppc-interrupt-gserver#s"
1222 * - R6: "priority" is a valid priority not in
1223 * "ibm,plat-res-int-priorities"
1226 * - R4: Logical real address of notification page
1227 * - R5: Power of 2 page size of the notification page
1234 SpaprXive *xive = spapr->xive; in h_int_get_queue_info()
1235 XiveENDSource *end_xsrc = &xive->end_source; in h_int_get_queue_info()
1245 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_get_queue_info()
1273 assert(end_idx < xive->nr_ends); in h_int_get_queue_info()
1274 end = &xive->endt[end_idx]; in h_int_get_queue_info()
1276 args[0] = xive->end_base + (1ull << (end_xsrc->esb_shift + 1)) * end_idx; in h_int_get_queue_info()
1278 args[1] = xive_get_field32(END_W0_QSIZE, end->w0) + 12; in h_int_get_queue_info()
1292 * and "priority" will be changed to disable queueing.
1301 * - R4: "flags"
1302 * Bits 0-62: Reserved
1304 * - R5: "target" is per "ibm,ppc-interrupt-server#s" or
1305 * "ibm,ppc-interrupt-gserver#s"
1306 * - R6: "priority" is a valid priority not in
1307 * "ibm,plat-res-int-priorities"
1308 * - R7: "eventQueue": The logical real address of the start of the EQ
1309 * - R8: "eventQueueSize": The power of 2 EQ size per "ibm,xive-eq-sizes"
1312 * - None
1322 SpaprXive *xive = spapr->xive; in h_int_set_queue_config()
1334 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_set_queue_config()
1363 assert(end_idx < xive->nr_ends); in h_int_set_queue_config()
1364 memcpy(&end, &xive->endt[end_idx], sizeof(XiveEND)); in h_int_set_queue_config()
1380 end.w0 = xive_set_field32(END_W0_QSIZE, end.w0, qsize - 12); in h_int_set_queue_config()
1383 /* reset queue and disable queueing */ in h_int_set_queue_config()
1401 eq = address_space_map(CPU(cpu)->as, qpage, &plen, true, in h_int_set_queue_config()
1408 address_space_unmap(CPU(cpu)->as, eq, plen, true, plen); in h_int_set_queue_config()
1439 * TODO: issue syncs required to ensure all in-flight interrupts in h_int_set_queue_config()
1455 memcpy(&xive->endt[end_idx], &end, sizeof(XiveEND)); in h_int_set_queue_config()
1465 * - R4: "flags"
1466 * Bits 0-62: Reserved
1468 * - R5: "target" is per "ibm,ppc-interrupt-server#s" or
1469 * "ibm,ppc-interrupt-gserver#s"
1470 * - R6: "priority" is a valid priority not in
1471 * "ibm,plat-res-int-priorities"
1474 * - R4: "flags":
1475 * Bits 0-61: Reserved
1479 * - R5: The logical real address of the start of the EQ
1480 * - R6: The power of 2 EQ size per "ibm,xive-eq-sizes"
1481 * - R7: The value of Event Queue Offset Counter per XIVE spec
1493 SpaprXive *xive = spapr->xive; in h_int_get_queue_config()
1503 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_get_queue_config()
1531 assert(end_idx < xive->nr_ends); in h_int_get_queue_config()
1532 end = &xive->endt[end_idx]; in h_int_get_queue_config()
1541 args[2] = xive_get_field32(END_W0_QSIZE, end->w0) + 12; in h_int_get_queue_config()
1560 args[0] |= (uint64_t)xive_get_field32(END_W1_GENERATION, end->w1) << 62; in h_int_get_queue_config()
1563 args[3] = xive_get_field32(END_W1_PAGE_OFF, end->w1); in h_int_get_queue_config()
1576 * interrupt. The reporting cache lines can be reset by inputting -1
1583 * - R4: "flags"
1584 * Bits 0-63: Reserved
1585 * - R5: "reportingLine": The logical real address of the reporting cache
1589 * - None
1600 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_set_os_reporting_line()
1616 * "target". If no reporting cache line pair has been set, -1 is
1621 * - R4: "flags"
1622 * Bits 0-63: Reserved
1623 * - R5: "target" is per "ibm,ppc-interrupt-server#s" or
1624 * "ibm,ppc-interrupt-gserver#s"
1625 * - R6: "reportingLine": The logical real address of the reporting
1629 * - R4: The logical real address of the reporting line if set, else -1
1640 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_get_os_reporting_line()
1661 * - R4: "flags"
1662 * Bits 0-62: Reserved
1664 * - R5: "lisn" is per "interrupts", "interrupt-map", or
1665 * "ibm,xive-lisn-ranges" properties, or as returned by the
1666 * ibm,query-interrupt-source-number RTAS call, or as
1668 * - R6: "esbOffset" is the offset into the ESB page for the load or
1670 * - R7: "storeData" is the data to write for a store operation
1673 * - R4: The value of the load if load operation, else -1
1683 SpaprXive *xive = spapr->xive; in h_int_esb()
1690 XiveSource *xsrc = &xive->source; in h_int_esb()
1694 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_esb()
1702 if (lisn >= xive->nr_irqs) { in h_int_esb()
1708 eas = xive->eat[lisn]; in h_int_esb()
1715 if (offset > (1ull << xsrc->esb_shift)) { in h_int_esb()
1723 mmio_addr = xive->vc_base + xive_source_esb_mgmt(xsrc, lisn) + offset; in h_int_esb()
1732 args[0] = (flags & SPAPR_XIVE_ESB_STORE) ? -1 : data; in h_int_esb()
1744 * - R4: "flags"
1745 * Bits 0-63: Reserved
1746 * - R5: "lisn" is per "interrupts", "interrupt-map", or
1747 * "ibm,xive-lisn-ranges" properties, or as returned by the
1748 * ibm,query-interrupt-source-number RTAS call, or as
1752 * - None
1759 SpaprXive *xive = spapr->xive; in h_int_sync()
1766 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_sync()
1774 if (lisn >= xive->nr_irqs) { in h_int_sync()
1780 eas = xive->eat[lisn]; in h_int_sync()
1817 * - R4: "flags"
1818 * Bits 0-63: Reserved
1821 * - None
1828 SpaprXive *xive = spapr->xive; in h_int_reset()
1833 if (!spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) { in h_int_reset()