Lines Matching full:gsi
58 * Each interrupt line has a unique Global System Interrupt (GSI) number
59 * which can be calculated as the sum of the controller's base GSI number
74 * PCI pin -> global system interrupt (GSI) -> IA-64 vector <-> IRQ
119 unsigned int gsi_base; /* GSI base */
161 * Find an IOSAPIC associated with a GSI
164 find_iosapic (unsigned int gsi) in find_iosapic() argument
169 if ((unsigned) (gsi - iosapic_lists[i].gsi_base) < in find_iosapic()
177 static inline int __gsi_to_irq(unsigned int gsi) in __gsi_to_irq() argument
186 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in __gsi_to_irq()
193 gsi_to_irq (unsigned int gsi) in gsi_to_irq() argument
199 irq = __gsi_to_irq(gsi); in gsi_to_irq()
204 static struct iosapic_rte_info *find_rte(unsigned int irq, unsigned int gsi) in find_rte() argument
209 if (rte->iosapic->gsi_base + rte->rte_index == gsi) in find_rte()
215 set_rte (unsigned int gsi, unsigned int irq, unsigned int dest, int mask) in set_rte() argument
226 rte = find_rte(irq, gsi); in set_rte()
552 register_intr (unsigned int gsi, int irq, unsigned char delivery, in register_intr() argument
559 index = find_iosapic(gsi); in register_intr()
561 printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", in register_intr()
562 __func__, gsi); in register_intr()
566 rte = find_rte(irq, gsi); in register_intr()
576 rte->rte_index = gsi - rte->iosapic->gsi_base; in register_intr()
618 get_target_cpu (unsigned int gsi, int irq) in get_target_cpu() argument
654 iosapic_index = find_iosapic(gsi); in get_target_cpu()
712 iosapic_register_intr (unsigned int gsi, in iosapic_register_intr() argument
724 * If this GSI has already been registered (i.e., it's a in iosapic_register_intr()
729 irq = __gsi_to_irq(gsi); in iosapic_register_intr()
731 rte = find_rte(irq, gsi); in iosapic_register_intr()
751 dest = get_target_cpu(gsi, irq); in iosapic_register_intr()
753 err = register_intr(gsi, irq, dmode, polarity, trigger); in iosapic_register_intr()
767 set_rte(gsi, irq, dest, mask); in iosapic_register_intr()
769 printk(KERN_INFO "GSI %u (%s, %s) -> CPU %d (0x%04x) vector %d\n", in iosapic_register_intr()
770 gsi, (trigger == IOSAPIC_EDGE ? "edge" : "level"), in iosapic_register_intr()
781 iosapic_unregister_intr (unsigned int gsi) in iosapic_unregister_intr() argument
791 * If the irq associated with the gsi is not found, in iosapic_unregister_intr()
795 irq = gsi_to_irq(gsi); in iosapic_unregister_intr()
798 gsi); in iosapic_unregister_intr()
804 if ((rte = find_rte(irq, gsi)) == NULL) { in iosapic_unregister_intr()
806 gsi); in iosapic_unregister_intr()
821 index = find_iosapic(gsi); in iosapic_unregister_intr()
829 "GSI %u (%s, %s) -> CPU %d (0x%04x) vector %d unregistered\n", in iosapic_unregister_intr()
830 gsi, (trigger == IOSAPIC_EDGE ? "edge" : "level"), in iosapic_unregister_intr()
857 iosapic_register_platform_intr (u32 int_type, unsigned int gsi, in iosapic_register_platform_intr() argument
896 register_intr(gsi, irq, delivery, polarity, trigger); in iosapic_register_platform_intr()
899 "PLATFORM int %s (0x%x): GSI %u (%s, %s) -> CPU %d (0x%04x)" in iosapic_register_platform_intr()
902 int_type, gsi, (trigger == IOSAPIC_EDGE ? "edge" : "level"), in iosapic_register_platform_intr()
906 set_rte(gsi, irq, dest, mask); in iosapic_register_platform_intr()
913 void iosapic_override_isa_irq(unsigned int isa_irq, unsigned int gsi, in iosapic_override_isa_irq() argument
923 register_intr(gsi, irq, dmode, polarity, trigger); in iosapic_override_isa_irq()
925 DBG("ISA: IRQ %u -> GSI %u (%s,%s) -> CPU %d (0x%04x) vector %d\n", in iosapic_override_isa_irq()
926 isa_irq, gsi, trigger == IOSAPIC_EDGE ? "edge" : "level", in iosapic_override_isa_irq()
930 set_rte(gsi, irq, dest, 1); in iosapic_override_isa_irq()
992 /* check gsi range */ in iosapic_check_gsi_range()
1010 iosapic_delete_rte(unsigned int irq, unsigned int gsi) in iosapic_delete_rte() argument
1016 if (rte->iosapic->gsi_base + rte->rte_index == gsi) { in iosapic_delete_rte()
1094 printk(KERN_WARNING "%s: No IOSAPIC for GSI base %u\n", in iosapic_remove()
1101 printk(KERN_WARNING "%s: IOSAPIC for GSI base %u is busy\n", in iosapic_remove()
1130 printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", in map_iosapic_to_node()