Lines Matching refs:idx

57 #define	for_each_ioapic(idx)		\  argument
58 for ((idx) = 0; (idx) < nr_ioapics; (idx)++)
59 #define for_each_ioapic_reverse(idx) \ argument
60 for ((idx) = nr_ioapics - 1; (idx) >= 0; (idx)--)
61 #define for_each_pin(idx, pin) \ argument
62 for ((pin) = 0; (pin) < ioapics[(idx)].nr_registers; (pin)++)
63 #define for_each_ioapic_pin(idx, pin) \ argument
64 for_each_ioapic((idx)) \
65 for_each_pin((idx), (pin))
229 static void alloc_ioapic_saved_registers(int idx) in alloc_ioapic_saved_registers() argument
233 if (ioapics[idx].saved_registers) in alloc_ioapic_saved_registers()
236 size = sizeof(struct IO_APIC_route_entry) * ioapics[idx].nr_registers; in alloc_ioapic_saved_registers()
237 ioapics[idx].saved_registers = kzalloc(size, GFP_KERNEL); in alloc_ioapic_saved_registers()
238 if (!ioapics[idx].saved_registers) in alloc_ioapic_saved_registers()
239 pr_err("IOAPIC %d: suspend/resume impossible!\n", idx); in alloc_ioapic_saved_registers()
242 static void free_ioapic_saved_registers(int idx) in free_ioapic_saved_registers() argument
244 kfree(ioapics[idx].saved_registers); in free_ioapic_saved_registers()
245 ioapics[idx].saved_registers = NULL; in free_ioapic_saved_registers()
280 static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) in io_apic_base() argument
282 return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx) in io_apic_base()
283 + (mpc_ioapic_addr(idx) & ~PAGE_MASK); in io_apic_base()
815 #define default_ISA_trigger(idx) (0) argument
816 #define default_ISA_polarity(idx) (0) argument
823 #define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].srcbusirq)) argument
824 #define default_EISA_polarity(idx) default_ISA_polarity(idx) argument
829 #define default_PCI_trigger(idx) (1) argument
830 #define default_PCI_polarity(idx) (1) argument
832 static int irq_polarity(int idx) in irq_polarity() argument
834 int bus = mp_irqs[idx].srcbus; in irq_polarity()
840 switch (mp_irqs[idx].irqflag & 3) in irq_polarity()
844 polarity = default_ISA_polarity(idx); in irq_polarity()
846 polarity = default_PCI_polarity(idx); in irq_polarity()
874 static int irq_trigger(int idx) in irq_trigger() argument
876 int bus = mp_irqs[idx].srcbus; in irq_trigger()
882 switch ((mp_irqs[idx].irqflag>>2) & 3) in irq_trigger()
886 trigger = default_ISA_trigger(idx); in irq_trigger()
888 trigger = default_PCI_trigger(idx); in irq_trigger()
898 trigger = default_EISA_trigger(idx); in irq_trigger()
973 static int mp_map_pin_to_irq(u32 gsi, int idx, int ioapic, int pin, in mp_map_pin_to_irq() argument
997 if (idx >= 0 && test_bit(mp_irqs[idx].srcbus, mp_bus_not_pci)) { in mp_map_pin_to_irq()
998 irq = mp_irqs[idx].srcbusirq; in mp_map_pin_to_irq()
1031 static int pin_2_irq(int idx, int ioapic, int pin, unsigned int flags) in pin_2_irq() argument
1038 if (mp_irqs[idx].dstirq != pin) in pin_2_irq()
1061 return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags); in pin_2_irq()
1066 int ioapic, pin, idx; in mp_map_gsi_to_irq() local
1073 idx = find_irq_entry(ioapic, pin, mp_INT); in mp_map_gsi_to_irq()
1074 if ((flags & IOAPIC_MAP_CHECK) && idx < 0) in mp_map_gsi_to_irq()
1077 return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags); in mp_map_gsi_to_irq()
1173 int apic, idx, pin; in IO_APIC_irq_trigger() local
1176 idx = find_irq_entry(apic, pin, mp_INT); in IO_APIC_irq_trigger()
1177 if ((idx != -1) && (irq == pin_2_irq(idx, apic, pin, 0))) in IO_APIC_irq_trigger()
1178 return irq_trigger(idx); in IO_APIC_irq_trigger()
1285 int idx; in setup_IO_APIC_irqs() local
1290 idx = find_irq_entry(ioapic, pin, mp_INT); in setup_IO_APIC_irqs()
1291 if (idx < 0) in setup_IO_APIC_irqs()
1296 pin_2_irq(idx, ioapic, pin, in setup_IO_APIC_irqs()
2230 int idx; in check_timer() local
2231 idx = find_irq_entry(apic1, pin1, mp_INT); in check_timer()
2232 if (idx != -1 && irq_trigger(idx)) in check_timer()
2365 static void ioapic_destroy_irqdomain(int idx) in ioapic_destroy_irqdomain() argument
2367 if (ioapics[idx].irqdomain) { in ioapic_destroy_irqdomain()
2368 irq_domain_remove(ioapics[idx].irqdomain); in ioapic_destroy_irqdomain()
2369 ioapics[idx].irqdomain = NULL; in ioapic_destroy_irqdomain()
2371 kfree(ioapics[idx].pin_info); in ioapic_destroy_irqdomain()
2372 ioapics[idx].pin_info = NULL; in ioapic_destroy_irqdomain()
2569 static u8 io_apic_unique_id(int idx, u8 id) in io_apic_unique_id() argument
2573 return io_apic_get_unique_id(idx, id); in io_apic_unique_id()
2578 static u8 io_apic_unique_id(int idx, u8 id) in io_apic_unique_id() argument
2599 reg_00.raw = io_apic_read(idx, 0); in io_apic_unique_id()
2605 idx, new_id, id); in io_apic_unique_id()
2615 io_apic_write(idx, 0, reg_00.raw); in io_apic_unique_id()
2616 reg_00.raw = io_apic_read(idx, 0); in io_apic_unique_id()
2639 int ioapic, pin, idx; in acpi_get_override_irq() local
2652 idx = find_irq_entry(ioapic, pin, mp_INT); in acpi_get_override_irq()
2653 if (idx < 0) in acpi_get_override_irq()
2656 *trigger = irq_trigger(idx); in acpi_get_override_irq()
2657 *polarity = irq_polarity(idx); in acpi_get_override_irq()
2742 unsigned long ioapic_phys, idx = FIX_IO_APIC_BASE_0; in native_io_apic_init_mappings() local
2768 set_fixmap_nocache(idx, ioapic_phys); in native_io_apic_init_mappings()
2770 __fix_to_virt(idx) + (ioapic_phys & ~PAGE_MASK), in native_io_apic_init_mappings()
2772 idx++; in native_io_apic_init_mappings()
2830 static int bad_ioapic_register(int idx) in bad_ioapic_register() argument
2836 reg_00.raw = io_apic_read(idx, 0); in bad_ioapic_register()
2837 reg_01.raw = io_apic_read(idx, 1); in bad_ioapic_register()
2838 reg_02.raw = io_apic_read(idx, 2); in bad_ioapic_register()
2842 mpc_ioapic_addr(idx)); in bad_ioapic_register()
2851 int idx; in find_free_ioapic_entry() local
2853 for (idx = 0; idx < MAX_IO_APICS; idx++) in find_free_ioapic_entry()
2854 if (ioapics[idx].nr_registers == 0) in find_free_ioapic_entry()
2855 return idx; in find_free_ioapic_entry()
2872 int idx, ioapic, entries; in mp_register_ioapic() local
2886 idx = find_free_ioapic_entry(); in mp_register_ioapic()
2887 if (idx >= MAX_IO_APICS) { in mp_register_ioapic()
2889 MAX_IO_APICS, idx); in mp_register_ioapic()
2893 ioapics[idx].mp_config.type = MP_IOAPIC; in mp_register_ioapic()
2894 ioapics[idx].mp_config.flags = MPC_APIC_USABLE; in mp_register_ioapic()
2895 ioapics[idx].mp_config.apicaddr = address; in mp_register_ioapic()
2897 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); in mp_register_ioapic()
2898 if (bad_ioapic_register(idx)) { in mp_register_ioapic()
2899 clear_fixmap(FIX_IO_APIC_BASE_0 + idx); in mp_register_ioapic()
2903 ioapics[idx].mp_config.apicid = io_apic_unique_id(idx, id); in mp_register_ioapic()
2904 ioapics[idx].mp_config.apicver = io_apic_get_version(idx); in mp_register_ioapic()
2910 entries = io_apic_get_redir_entries(idx); in mp_register_ioapic()
2921 clear_fixmap(FIX_IO_APIC_BASE_0 + idx); in mp_register_ioapic()
2925 gsi_cfg = mp_ioapic_gsi_routing(idx); in mp_register_ioapic()
2929 ioapics[idx].irqdomain = NULL; in mp_register_ioapic()
2930 ioapics[idx].irqdomain_cfg = *cfg; in mp_register_ioapic()
2938 if (mp_irqdomain_create(idx)) { in mp_register_ioapic()
2939 clear_fixmap(FIX_IO_APIC_BASE_0 + idx); in mp_register_ioapic()
2942 alloc_ioapic_saved_registers(idx); in mp_register_ioapic()
2947 if (nr_ioapics <= idx) in mp_register_ioapic()
2948 nr_ioapics = idx + 1; in mp_register_ioapic()
2951 ioapics[idx].nr_registers = entries; in mp_register_ioapic()
2954 idx, mpc_ioapic_id(idx), in mp_register_ioapic()
2955 mpc_ioapic_ver(idx), mpc_ioapic_addr(idx), in mp_register_ioapic()