Lines Matching full:isc
26 #include <asm/isc.h>
206 static uint64_t isc_to_isc_bits(int isc) in isc_to_isc_bits() argument
208 return (0x80 >> isc) << 24; in isc_to_isc_bits()
211 static inline u32 isc_to_int_word(u8 isc) in isc_to_int_word() argument
213 return ((u32)isc << 27) | 0x80000000; in isc_to_int_word()
347 static inline int isc_to_irq_type(unsigned long isc) in isc_to_irq_type() argument
349 return IRQ_PEND_IO_ISC_0 - isc; in isc_to_irq_type()
1175 u32 isc; in __deliver_io() local
1181 isc = irq_type_to_isc(irq_type); in __deliver_io()
1182 isc_list = &fi->lists[isc]; in __deliver_io()
1215 if (gi->origin && gisa_tac_ipm_gisc(gi->origin, isc)) { in __deliver_io()
1220 VCPU_EVENT(vcpu, 4, "%s isc %u", "deliver: I/O (AI/gisa)", isc); in __deliver_io()
1222 io.io_int_word = isc_to_int_word(isc); in __deliver_io()
1701 int isc, u32 schid) in get_io_int() argument
1704 struct list_head *isc_list = &fi->lists[FIRQ_LIST_IO_ISC_0 + isc]; in get_io_int()
1718 clear_bit(isc_to_irq_type(isc), &fi->pending_irqs); in get_io_int()
1730 int isc; in get_top_io_int() local
1732 for (isc = 0; isc <= MAX_ISC && !inti; isc++) { in get_top_io_int()
1733 if (isc_mask & isc_to_isc_bits(isc)) in get_top_io_int()
1734 inti = get_io_int(kvm, isc, schid); in get_top_io_int()
1743 int isc; in get_top_gisa_isc() local
1752 isc = __fls(active_mask) ^ (BITS_PER_LONG - 1); in get_top_gisa_isc()
1753 if (gisa_tac_ipm_gisc(gi->origin, isc)) in get_top_gisa_isc()
1754 return isc; in get_top_gisa_isc()
1755 clear_bit_inv(isc, &active_mask); in get_top_gisa_isc()
1763 * subclasses as designated by the isc mask in cr6 and the schid (if != 0).
1768 * out adapter interrupts on the same isc. Linux does not do
1778 int isc; in kvm_s390_get_io_int() local
1782 isc = get_top_gisa_isc(kvm, isc_mask, schid); in kvm_s390_get_io_int()
1783 if (isc < 0) in kvm_s390_get_io_int()
1792 if (int_word_to_isc(inti->io.io_int_word) <= isc) { in kvm_s390_get_io_int()
1794 gisa_set_ipm_gisc(gi->origin, isc); in kvm_s390_get_io_int()
1801 tmp_inti->io.io_int_word = isc_to_int_word(isc); in kvm_s390_get_io_int()
1806 gisa_set_ipm_gisc(gi->origin, isc); in kvm_s390_get_io_int()
1900 int isc; in __inject_io() local
1903 isc = int_word_to_isc(inti->io.io_int_word); in __inject_io()
1912 VM_EVENT(kvm, 4, "%s isc %1u", "inject: I/O (AI/gisa)", isc); in __inject_io()
1913 gisa_set_ipm_gisc(gi->origin, isc); in __inject_io()
1933 list = &fi->lists[FIRQ_LIST_IO_ISC_0 + isc]; in __inject_io()
1935 set_bit(isc_to_irq_type(isc), &fi->pending_irqs); in __inject_io()
2479 adapter->isc = adapter_info.isc; in register_io_adapter()
2580 if (req.isc > MAX_ISC) in modify_ais_mode()
2583 trace_kvm_s390_modify_ais_mode(req.isc, in modify_ais_mode()
2584 (fi->simm & AIS_MODE_MASK(req.isc)) ? in modify_ais_mode()
2585 (fi->nimm & AIS_MODE_MASK(req.isc)) ? in modify_ais_mode()
2592 fi->simm &= ~AIS_MODE_MASK(req.isc); in modify_ais_mode()
2593 fi->nimm &= ~AIS_MODE_MASK(req.isc); in modify_ais_mode()
2596 fi->simm |= AIS_MODE_MASK(req.isc); in modify_ais_mode()
2597 fi->nimm &= ~AIS_MODE_MASK(req.isc); in modify_ais_mode()
2614 .parm64 = isc_to_int_word(adapter->isc), in kvm_s390_inject_airq()
2622 if (fi->nimm & AIS_MODE_MASK(adapter->isc)) { in kvm_s390_inject_airq()
2623 trace_kvm_s390_airq_suppressed(adapter->id, adapter->isc); in kvm_s390_inject_airq()
2628 if (!ret && (fi->simm & AIS_MODE_MASK(adapter->isc))) { in kvm_s390_inject_airq()
2629 fi->nimm |= AIS_MODE_MASK(adapter->isc); in kvm_s390_inject_airq()
2630 trace_kvm_s390_modify_ais_mode(adapter->isc, in kvm_s390_inject_airq()
3234 * kvm_s390_gisc_register - register a guest ISC
3245 * Returns: the nonspecific ISC (NISC) the gib alert mechanism
3248 * -ERANGE in case the guest ISC is invalid
3272 * kvm_s390_gisc_unregister - unregister a guest ISC
3283 * Returns: the nonspecific ISC (NISC) the gib alert mechanism
3286 * -ERANGE in case the guest ISC is invalid
3287 * -EINVAL in case the guest ISC is not registered
3344 static void aen_process_gait(u8 isc) in aen_process_gait() argument
3363 zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, isc, in aen_process_gait()
3391 aen_process_gait(info->isc); in gib_alert_irq_handler()
3434 gib_alert_irq.isc = nisc; in kvm_s390_gib_init()