Lines Matching refs:idx

67 #define	for_each_ioapic(idx)		\  argument
68 for ((idx) = 0; (idx) < nr_ioapics; (idx)++)
69 #define for_each_ioapic_reverse(idx) \ argument
70 for ((idx) = nr_ioapics - 1; (idx) >= 0; (idx)--)
71 #define for_each_pin(idx, pin) \ argument
72 for ((pin) = 0; (pin) < ioapics[(idx)].nr_registers; (pin)++)
73 #define for_each_ioapic_pin(idx, pin) \ argument
74 for_each_ioapic((idx)) \
75 for_each_pin((idx), (pin))
232 static void alloc_ioapic_saved_registers(int idx) in alloc_ioapic_saved_registers() argument
236 if (ioapics[idx].saved_registers) in alloc_ioapic_saved_registers()
239 size = sizeof(struct IO_APIC_route_entry) * ioapics[idx].nr_registers; in alloc_ioapic_saved_registers()
240 ioapics[idx].saved_registers = kzalloc(size, GFP_KERNEL); in alloc_ioapic_saved_registers()
241 if (!ioapics[idx].saved_registers) in alloc_ioapic_saved_registers()
242 pr_err("IOAPIC %d: suspend/resume impossible!\n", idx); in alloc_ioapic_saved_registers()
245 static void free_ioapic_saved_registers(int idx) in free_ioapic_saved_registers() argument
247 kfree(ioapics[idx].saved_registers); in free_ioapic_saved_registers()
248 ioapics[idx].saved_registers = NULL; in free_ioapic_saved_registers()
272 static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) in io_apic_base() argument
274 return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx) in io_apic_base()
275 + (mpc_ioapic_addr(idx) & ~PAGE_MASK); in io_apic_base()
779 #define default_ISA_trigger(idx) (IOAPIC_EDGE) argument
780 #define default_ISA_polarity(idx) (IOAPIC_POL_HIGH) argument
787 #define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].srcbusirq)) argument
788 #define default_EISA_polarity(idx) default_ISA_polarity(idx) argument
793 #define default_PCI_trigger(idx) (IOAPIC_LEVEL) argument
794 #define default_PCI_polarity(idx) (IOAPIC_POL_LOW) argument
796 static int irq_polarity(int idx) in irq_polarity() argument
798 int bus = mp_irqs[idx].srcbus; in irq_polarity()
803 switch (mp_irqs[idx].irqflag & 0x03) { in irq_polarity()
807 return default_ISA_polarity(idx); in irq_polarity()
809 return default_PCI_polarity(idx); in irq_polarity()
821 static int eisa_irq_trigger(int idx, int bus, int trigger) in eisa_irq_trigger() argument
828 return default_EISA_trigger(idx); in eisa_irq_trigger()
834 static inline int eisa_irq_trigger(int idx, int bus, int trigger) in eisa_irq_trigger() argument
840 static int irq_trigger(int idx) in irq_trigger() argument
842 int bus = mp_irqs[idx].srcbus; in irq_trigger()
848 switch ((mp_irqs[idx].irqflag >> 2) & 0x03) { in irq_trigger()
852 trigger = default_ISA_trigger(idx); in irq_trigger()
854 trigger = default_PCI_trigger(idx); in irq_trigger()
856 return eisa_irq_trigger(idx, bus, trigger); in irq_trigger()
1028 static int mp_map_pin_to_irq(u32 gsi, int idx, int ioapic, int pin, in mp_map_pin_to_irq() argument
1040 if (idx >= 0 && test_bit(mp_irqs[idx].srcbus, mp_bus_not_pci)) { in mp_map_pin_to_irq()
1041 irq = mp_irqs[idx].srcbusirq; in mp_map_pin_to_irq()
1071 static int pin_2_irq(int idx, int ioapic, int pin, unsigned int flags) in pin_2_irq() argument
1078 if (mp_irqs[idx].dstirq != pin) in pin_2_irq()
1101 return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, NULL); in pin_2_irq()
1106 int ioapic, pin, idx; in mp_map_gsi_to_irq() local
1113 idx = find_irq_entry(ioapic, pin, mp_INT); in mp_map_gsi_to_irq()
1114 if ((flags & IOAPIC_MAP_CHECK) && idx < 0) in mp_map_gsi_to_irq()
1117 return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, info); in mp_map_gsi_to_irq()
1206 int apic, idx, pin; in IO_APIC_irq_trigger() local
1209 idx = find_irq_entry(apic, pin, mp_INT); in IO_APIC_irq_trigger()
1210 if ((idx != -1) && (irq == pin_2_irq(idx, apic, pin, 0))) in IO_APIC_irq_trigger()
1211 return irq_trigger(idx); in IO_APIC_irq_trigger()
1228 int idx; in setup_IO_APIC_irqs() local
1233 idx = find_irq_entry(ioapic, pin, mp_INT); in setup_IO_APIC_irqs()
1234 if (idx < 0) in setup_IO_APIC_irqs()
1239 pin_2_irq(idx, ioapic, pin, in setup_IO_APIC_irqs()
2113 int idx; in check_timer() local
2114 idx = find_irq_entry(apic1, pin1, mp_INT); in check_timer()
2115 if (idx != -1 && irq_trigger(idx)) in check_timer()
2248 static void ioapic_destroy_irqdomain(int idx) in ioapic_destroy_irqdomain() argument
2250 if (ioapics[idx].irqdomain) { in ioapic_destroy_irqdomain()
2251 irq_domain_remove(ioapics[idx].irqdomain); in ioapic_destroy_irqdomain()
2252 ioapics[idx].irqdomain = NULL; in ioapic_destroy_irqdomain()
2422 static u8 io_apic_unique_id(int idx, u8 id) in io_apic_unique_id() argument
2426 return io_apic_get_unique_id(idx, id); in io_apic_unique_id()
2431 static u8 io_apic_unique_id(int idx, u8 id) in io_apic_unique_id() argument
2452 reg_00.raw = io_apic_read(idx, 0); in io_apic_unique_id()
2458 idx, new_id, id); in io_apic_unique_id()
2468 io_apic_write(idx, 0, reg_00.raw); in io_apic_unique_id()
2469 reg_00.raw = io_apic_read(idx, 0); in io_apic_unique_id()
2492 int ioapic, pin, idx; in acpi_get_override_irq() local
2505 idx = find_irq_entry(ioapic, pin, mp_INT); in acpi_get_override_irq()
2506 if (idx < 0) in acpi_get_override_irq()
2509 *trigger = irq_trigger(idx); in acpi_get_override_irq()
2510 *polarity = irq_polarity(idx); in acpi_get_override_irq()
2602 unsigned long ioapic_phys, idx = FIX_IO_APIC_BASE_0; in io_apic_init_mappings() local
2628 set_fixmap_nocache(idx, ioapic_phys); in io_apic_init_mappings()
2630 __fix_to_virt(idx) + (ioapic_phys & ~PAGE_MASK), in io_apic_init_mappings()
2632 idx++; in io_apic_init_mappings()
2690 static int bad_ioapic_register(int idx) in bad_ioapic_register() argument
2696 reg_00.raw = io_apic_read(idx, 0); in bad_ioapic_register()
2697 reg_01.raw = io_apic_read(idx, 1); in bad_ioapic_register()
2698 reg_02.raw = io_apic_read(idx, 2); in bad_ioapic_register()
2702 mpc_ioapic_addr(idx)); in bad_ioapic_register()
2711 int idx; in find_free_ioapic_entry() local
2713 for (idx = 0; idx < MAX_IO_APICS; idx++) in find_free_ioapic_entry()
2714 if (ioapics[idx].nr_registers == 0) in find_free_ioapic_entry()
2715 return idx; in find_free_ioapic_entry()
2732 int idx, ioapic, entries; in mp_register_ioapic() local
2746 idx = find_free_ioapic_entry(); in mp_register_ioapic()
2747 if (idx >= MAX_IO_APICS) { in mp_register_ioapic()
2749 MAX_IO_APICS, idx); in mp_register_ioapic()
2753 ioapics[idx].mp_config.type = MP_IOAPIC; in mp_register_ioapic()
2754 ioapics[idx].mp_config.flags = MPC_APIC_USABLE; in mp_register_ioapic()
2755 ioapics[idx].mp_config.apicaddr = address; in mp_register_ioapic()
2757 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); in mp_register_ioapic()
2758 if (bad_ioapic_register(idx)) { in mp_register_ioapic()
2759 clear_fixmap(FIX_IO_APIC_BASE_0 + idx); in mp_register_ioapic()
2763 ioapics[idx].mp_config.apicid = io_apic_unique_id(idx, id); in mp_register_ioapic()
2764 ioapics[idx].mp_config.apicver = io_apic_get_version(idx); in mp_register_ioapic()
2770 entries = io_apic_get_redir_entries(idx); in mp_register_ioapic()
2781 clear_fixmap(FIX_IO_APIC_BASE_0 + idx); in mp_register_ioapic()
2785 gsi_cfg = mp_ioapic_gsi_routing(idx); in mp_register_ioapic()
2789 ioapics[idx].irqdomain = NULL; in mp_register_ioapic()
2790 ioapics[idx].irqdomain_cfg = *cfg; in mp_register_ioapic()
2798 if (mp_irqdomain_create(idx)) { in mp_register_ioapic()
2799 clear_fixmap(FIX_IO_APIC_BASE_0 + idx); in mp_register_ioapic()
2802 alloc_ioapic_saved_registers(idx); in mp_register_ioapic()
2807 if (nr_ioapics <= idx) in mp_register_ioapic()
2808 nr_ioapics = idx + 1; in mp_register_ioapic()
2811 ioapics[idx].nr_registers = entries; in mp_register_ioapic()
2814 idx, mpc_ioapic_id(idx), in mp_register_ioapic()
2815 mpc_ioapic_ver(idx), mpc_ioapic_addr(idx), in mp_register_ioapic()