/openbmc/qemu/hw/remote/ |
H A D | iohub.c | 23 int pirq; in remote_iohub_init() local 28 for (pirq = 0; pirq < REMOTE_IOHUB_NB_PIRQS; pirq++) { in remote_iohub_init() 29 qemu_mutex_init(&iohub->irq_level_lock[pirq]); in remote_iohub_init() 30 iohub->irq_level[pirq] = 0; in remote_iohub_init() 31 event_notifier_init_fd(&iohub->irqfds[pirq], -1); in remote_iohub_init() 32 event_notifier_init_fd(&iohub->resamplefds[pirq], -1); in remote_iohub_init() 41 void remote_iohub_set_irq(void *opaque, int pirq, int level) in remote_iohub_set_irq() argument 45 assert(pirq >= 0); in remote_iohub_set_irq() 46 assert(pirq < PCI_DEVFN_MAX); in remote_iohub_set_irq() 48 QEMU_LOCK_GUARD(&iohub->irq_level_lock[pirq]); in remote_iohub_set_irq() [all …]
|
/openbmc/qemu/hw/i386/kvm/ |
H A D | xen_evtchn.c | 63 uint16_t pirq; member 170 struct pirq_info *pirq; member 173 #define pirq_inuse_word(s, pirq) (s->pirq_inuse_bitmap[((pirq) / 64)]) argument 174 #define pirq_inuse_bit(pirq) (1ULL << ((pirq) & 63)) argument 176 #define pirq_inuse(s, pirq) (pirq_inuse_word(s, pirq) & pirq_inuse_bit(pirq)) argument 213 assert(p->u.pirq); in xen_evtchn_post_load() 214 assert(p->u.pirq < s->nr_pirqs); in xen_evtchn_post_load() 221 s->pirq[p->u.pirq].gsi = IRQ_UNBOUND; in xen_evtchn_post_load() 222 s->pirq[p->u.pirq].port = i; in xen_evtchn_post_load() 228 s->pirq[s->gsi_pirq[i]].gsi = i; in xen_evtchn_post_load() [all …]
|
H A D | trace-events | 1 kvm_xen_map_pirq(int pirq, int gsi) "pirq %d gsi %d" 2 kvm_xen_unmap_pirq(int pirq, int gsi) "pirq %d gsi %d" 3 kvm_xen_get_free_pirq(int pirq, int type) "pirq %d type %d" 4 kvm_xen_bind_pirq(int pirq, int port) "pirq %d port %d" 5 kvm_xen_unmask_pirq(int pirq, char *dev, int vector) "pirq %d dev %s vector %d"
|
/openbmc/linux/arch/x86/pci/ |
H A D | irq.c | 53 int (*get)(struct pci_dev *router, struct pci_dev *dev, int pirq); 54 int (*set)(struct pci_dev *router, struct pci_dev *dev, int pirq, 56 int (*lvl)(struct pci_dev *router, struct pci_dev *dev, int pirq, 350 int pirq) in pirq_finali_get() 359 index = (pirq & 1) << 1 | (pirq & 8) >> 3; in pirq_finali_get() 369 int pirq, int irq) in pirq_finali_set() 381 index = (pirq & 1) << 1 | (pirq & 8) >> 3; in pirq_finali_set() 391 int pirq, int irq) in pirq_finali_lvl() 393 u8 mask = ~((pirq & 0xf0u) >> 4); in pirq_finali_lvl() 437 static int pirq_ali_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_ali_get() argument [all …]
|
H A D | xen.c | 37 int pirq; in xen_pcifront_enable_irq() local 47 pirq = gsi; in xen_pcifront_enable_irq() 52 rc = xen_bind_pirq_gsi_to_irq(gsi, pirq, share, "pcifront"); in xen_pcifront_enable_irq() 55 gsi, pirq, rc); in xen_pcifront_enable_irq() 67 int rc, pirq = -1, irq; in xen_register_pirq() local 77 pirq = gsi; in xen_register_pirq() 82 map_irq.pirq = pirq; in xen_register_pirq() 98 irq = xen_bind_pirq_gsi_to_irq(gsi, map_irq.pirq, shareable, name); in xen_register_pirq() 102 printk(KERN_DEBUG "xen: --> pirq=%d -> irq=%d (gsi=%d)\n", map_irq.pirq, irq, gsi); in xen_register_pirq() 213 static void xen_msi_compose_msg(struct pci_dev *pdev, unsigned int pirq, in xen_msi_compose_msg() argument [all …]
|
/openbmc/qemu/hw/xen/ |
H A D | xen_pt_msi.c | 156 int pirq, in msi_msix_update() argument 170 is_msix ? "-X" : "", pirq, gvec, gflags, msix_entry); in msi_msix_update() 179 pirq, gflags, table_addr); in msi_msix_update() 197 int pirq, in msi_msix_disable() argument 206 if (pirq == XEN_PT_UNASSIGNED_PIRQ) { in msi_msix_disable() 212 is_msix ? "-X" : "", pirq, gvec); in msi_msix_disable() 213 rc = xc_domain_unbind_msi_irq(xen_xc, xen_domid, gvec, pirq, gflags); in msi_msix_disable() 216 is_msix ? "-X" : "", errno, pirq, gvec); in msi_msix_disable() 221 XEN_PT_LOG(d, "Unmap MSI%s pirq %d\n", is_msix ? "-X" : "", pirq); in msi_msix_disable() 222 rc = xc_physdev_unmap_pirq(xen_xc, xen_domid, pirq); in msi_msix_disable() [all …]
|
/openbmc/u-boot/arch/x86/lib/ |
H A D | pirq_routing.c | 13 static u8 pirq_get_next_free_irq(struct udevice *dev, u8 *pirq, u16 bitmap, in pirq_get_next_free_irq() argument 55 unsigned char pirq[CONFIG_MAX_PIRQ_LINKS]; in pirq_route_irqs() local 59 memset(pirq, 0, CONFIG_MAX_PIRQ_LINKS); in pirq_route_irqs() 85 if (!pirq[link]) { in pirq_route_irqs() 86 irq = pirq_get_next_free_irq(dev, pirq, bitmap, in pirq_route_irqs() 88 pirq[link] = irq; in pirq_route_irqs() 90 irq = pirq[link]; in pirq_route_irqs() 107 debug("PIRQ%c: %d\n", 'A' + i, pirq[i]); in pirq_route_irqs()
|
/openbmc/qemu/hw/isa/ |
H A D | piix.c | 49 static void piix_set_pci_irq_level_internal(PIIXState *s, int pirq, int level) in piix_set_pci_irq_level_internal() argument 54 pic_irq = s->dev.config[PIIX_PIRQCA + pirq]; in piix_set_pci_irq_level_internal() 59 mask = 1ULL << ((pic_irq * PIIX_NUM_PIRQS) + pirq); in piix_set_pci_irq_level_internal() 64 static void piix_set_pci_irq_level(PIIXState *s, int pirq, int level) in piix_set_pci_irq_level() argument 68 pic_irq = s->dev.config[PIIX_PIRQCA + pirq]; in piix_set_pci_irq_level() 73 piix_set_pci_irq_level_internal(s, pirq, level); in piix_set_pci_irq_level() 78 static void piix_set_pci_irq(void *opaque, int pirq, int level) in piix_set_pci_irq() argument 81 piix_set_pci_irq_level(s, pirq, level); in piix_set_pci_irq() 110 int pirq; in piix_update_pci_irq_levels() local 113 for (pirq = 0; pirq < PIIX_NUM_PIRQS; pirq++) { in piix_update_pci_irq_levels() [all …]
|
/openbmc/u-boot/arch/x86/cpu/ |
H A D | irq.c | 80 u8 pirq; in pirq_check_irq_routed() local 84 pirq_linkno_to_reg(priv, link), &pirq); in pirq_check_irq_routed() 86 pirq = readb((uintptr_t)priv->ibase + in pirq_check_irq_routed() 89 pirq &= 0xf; in pirq_check_irq_routed() 92 if (pirq < 3 || pirq == 8 || pirq == 13) in pirq_check_irq_routed() 95 return pirq == irq ? true : false; in pirq_check_irq_routed() 137 int bus, int device, int pin, int pirq) in fill_irq_info() argument 141 slot->irq[pin - 1].link = pirq_linkno_to_reg(priv, pirq); in fill_irq_info() 272 pr.pirq = fdt_addr_to_cpu(cell[2]); in create_pirq_routing_table() 277 'A' + pr.pirq); in create_pirq_routing_table() [all …]
|
/openbmc/u-boot/doc/device-tree-bindings/misc/ |
H A D | intel,irq-router.txt | 11 - intel,pirq-config : Specifies the IRQ routing register programming mechanism. 16 configuration space, required only if intel,pirq-config = "ibase". 22 - intel,pirq-link : Specifies the PIRQ link information with two cells. The 25 - intel,pirq-regmap : Specifies PIRQ routing register offset of all PIRQ links, 30 link, as specified by the first cell of intel,pirq-link. 31 - intel,pirq-mask : Specifies the IRQ mask representing the 16 IRQs in the 33 - intel,pirq-routing : Specifies all PCI devices' IRQ routing information, 48 intel,pirq-config = "pci"; 49 intel,pirq-link = <0x60 8>; 50 intel,pirq-mask = <0xdef8>; [all …]
|
/openbmc/linux/drivers/xen/events/ |
H A D | events_base.c | 123 unsigned short pirq; member 128 } pirq; member 389 unsigned int pirq, unsigned int gsi, in xen_irq_info_pirq_setup() argument 392 info->u.pirq.pirq = pirq; in xen_irq_info_pirq_setup() 393 info->u.pirq.gsi = gsi; in xen_irq_info_pirq_setup() 394 info->u.pirq.domid = domid; in xen_irq_info_pirq_setup() 395 info->u.pirq.flags = flags; in xen_irq_info_pirq_setup() 464 return info->u.pirq.pirq; in pirq_from_irq() 514 return info->u.pirq.flags & PIRQ_NEEDS_EOI; in pirq_needs_eoi_flag() 816 info->u.pirq.flags &= ~PIRQ_NEEDS_EOI; in pirq_query_unmask() [all …]
|
/openbmc/linux/drivers/sh/intc/ |
H A D | virq.c | 150 unsigned int pirq; in intc_subgroup_init_one() local 160 pirq = mapped - intc_irq_xlate; in intc_subgroup_init_one() 175 entry->pirq = pirq; in intc_subgroup_init_one() 234 irq, entry->pirq); in intc_subgroup_map() 238 irq_set_chip_and_handler_name(irq, irq_get_chip(entry->pirq), in intc_subgroup_map() 240 irq_set_chip_data(irq, irq_get_chip_data(entry->pirq)); in intc_subgroup_map() 250 add_virq_to_pirq(entry->pirq, irq); in intc_subgroup_map() 251 irq_set_chained_handler(entry->pirq, intc_virq_handler); in intc_subgroup_map()
|
/openbmc/linux/Documentation/arch/x86/i386/ |
H A D | IO-APIC.rst | 44 you can use the pirq= boot parameter to 'hand-construct' IRQ entries. This 48 append="pirq=15,11,10" 87 Slot2, then you'll have to specify this pirq= line:: 89 append="pirq=11,9" 91 the following script tries to figure out such a default pirq= line from 94 echo -n pirq=; echo `scanpci | grep T_L | cut -c56-` | sed 's/ /,/g' 101 append="pirq=0,9,11" 106 Generally, it's always possible to find out the correct pirq= settings, just 108 'incorrect' pirq line will cause the booting process to hang, or a device 111 If you have 2 PCI buses, then you can use up to 8 pirq values, although such [all …]
|
/openbmc/u-boot/arch/x86/dts/ |
H A D | qemu-x86_i440fx.dts | 64 intel,pirq-config = "pci"; 65 intel,pirq-link = <0x60 4>; 66 intel,pirq-mask = <0x0e40>; 67 intel,pirq-routing = <
|
H A D | qemu-x86_q35.dts | 75 intel,pirq-config = "pci"; 78 intel,pirq-link = <0x60 8>; 79 intel,pirq-mask = <0x0e40>; 80 intel,pirq-routing = <
|
H A D | cougarcanyon2.dts | 107 intel,pirq-config = "pci"; 110 intel,pirq-link = <0x60 8>; 111 intel,pirq-regmap = < 121 intel,pirq-mask = <0xcee0>; 122 intel,pirq-routing = <
|
H A D | galileo.dts | 102 intel,pirq-config = "pci"; 104 intel,pirq-link = <0x60 8>; 105 intel,pirq-mask = <0xdef8>; 106 intel,pirq-routing = <
|
/openbmc/u-boot/arch/x86/cpu/qemu/ |
H A D | qemu.c | 167 int mp_determine_pci_dstirq(int bus, int dev, int func, int pirq) in mp_determine_pci_dstirq() argument 184 irq = pirq < 8 ? pirq + 16 : pirq + 12; in mp_determine_pci_dstirq()
|
/openbmc/linux/drivers/gpio/ |
H A D | gpio-dwapb.c | 104 struct dwapb_gpio_port_irqchip *pirq; member 427 static int dwapb_convert_irqs(struct dwapb_gpio_port_irqchip *pirq, in dwapb_convert_irqs() argument 437 pirq->irq[pirq->nr_irqs++] = pp->irq[i]; in dwapb_convert_irqs() 440 return pirq->nr_irqs ? 0 : -ENOENT; in dwapb_convert_irqs() 447 struct dwapb_gpio_port_irqchip *pirq; in dwapb_configure_irqs() local 452 pirq = devm_kzalloc(gpio->dev, sizeof(*pirq), GFP_KERNEL); in dwapb_configure_irqs() 453 if (!pirq) in dwapb_configure_irqs() 456 if (dwapb_convert_irqs(pirq, pp)) { in dwapb_configure_irqs() 465 port->pirq = pirq; in dwapb_configure_irqs() 486 girq->num_parents = pirq->nr_irqs; in dwapb_configure_irqs() [all …]
|
/openbmc/linux/drivers/input/misc/ |
H A D | pcap_keys.c | 26 int pirq = irq_to_pcap(pcap_keys->pcap, irq); in pcap_keys_handler() local 30 pstat &= 1 << pirq; in pcap_keys_handler() 32 switch (pirq) { in pcap_keys_handler()
|
/openbmc/linux/include/xen/ |
H A D | events.h | 112 unsigned pirq, int shareable, char *name); 119 int pirq, int nvec, const char *name, domid_t domid); 126 int xen_irq_from_pirq(unsigned pirq);
|
/openbmc/qemu/include/hw/remote/ |
H A D | iohub.h | 23 int pirq; member 36 void remote_iohub_set_irq(void *opaque, int pirq, int level);
|
/openbmc/linux/include/xen/interface/ |
H A D | physdev.h | 126 int pirq; member 146 int pirq; member 215 uint32_t pirq; member
|
/openbmc/linux/drivers/extcon/ |
H A D | extcon-axp288.c | 369 int ret, i, pirq; in axp288_extcon_probe() local 432 pirq = platform_get_irq(pdev, i); in axp288_extcon_probe() 433 if (pirq < 0) in axp288_extcon_probe() 434 return pirq; in axp288_extcon_probe() 436 info->irq[i] = regmap_irq_get_virq(info->regmap_irqc, pirq); in axp288_extcon_probe() 439 "failed to get virtual interrupt=%d\n", pirq); in axp288_extcon_probe()
|
/openbmc/linux/drivers/rtc/ |
H A D | rtc-pcap.c | 106 static int pcap_rtc_irq_enable(struct device *dev, int pirq, unsigned int en) in pcap_rtc_irq_enable() argument 111 enable_irq(pcap_to_irq(pcap_rtc->pcap, pirq)); in pcap_rtc_irq_enable() 113 disable_irq(pcap_to_irq(pcap_rtc->pcap, pirq)); in pcap_rtc_irq_enable()
|