Home
last modified time | relevance | path

Searched full:ioapic (Results 1 – 25 of 59) sorted by relevance

123

/linux-6.14.4/arch/x86/kvm/
Dioapic.c46 #include "ioapic.h"
54 struct kvm_ioapic *ioapic,
58 static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic) in ioapic_read_indirect() argument
62 switch (ioapic->ioregsel) { in ioapic_read_indirect()
70 result = ((ioapic->id & 0xf) << 24); in ioapic_read_indirect()
75 u32 redir_index = (ioapic->ioregsel - 0x10) >> 1; in ioapic_read_indirect()
82 redir_content = ioapic->redirtbl[index].bits; in ioapic_read_indirect()
85 result = (ioapic->ioregsel & 0x1) ? in ioapic_read_indirect()
95 static void rtc_irq_eoi_tracking_reset(struct kvm_ioapic *ioapic) in rtc_irq_eoi_tracking_reset() argument
97 ioapic->rtc_status.pending_eoi = 0; in rtc_irq_eoi_tracking_reset()
[all …]
Dioapic.h14 #define IOAPIC_VERSION_ID 0x11 /* IOAPIC version */
26 #define IOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */
28 #define IOAPIC_REG_ARB_ID 0x02 /* x86 IOAPIC only */
30 /*ioapic delivery mode*/
114 int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id,
116 void kvm_ioapic_clear_all(struct kvm_ioapic *ioapic, int irq_source_id);
Dirq_comm.c22 #include "ioapic.h"
42 struct kvm_ioapic *ioapic = kvm->arch.vioapic; in kvm_set_ioapic_irq() local
43 return kvm_ioapic_set_irq(ioapic, e->irqchip.pin, irq_source_id, level, in kvm_set_ioapic_irq()
DMakefile9 i8254.o ioapic.o irq_comm.o cpuid.o pmu.o mtrr.o \
/linux-6.14.4/drivers/acpi/
Dioapic.c3 * IOAPIC/IOxAPIC/IOSAPIC driver
10 * Based on original drivers/pci/ioapic.c
21 #define pr_fmt(fmt) "ACPI: IOAPIC: " fmt
87 *type = "IOAPIC"; in acpi_is_ioapic()
102 struct acpi_pci_ioapic *ioapic; in handle_ioapic_add() local
111 list_for_each_entry(ioapic, &ioapic_list, list) in handle_ioapic_add()
112 if (ioapic->handle == handle) { in handle_ioapic_add()
123 ioapic = kzalloc(sizeof(*ioapic), GFP_KERNEL); in handle_ioapic_add()
124 if (!ioapic) { in handle_ioapic_add()
125 pr_err("cannot allocate memory for new IOAPIC\n"); in handle_ioapic_add()
[all …]
Dprocessor_core.c342 struct acpi_madt_io_apic *ioapic = (struct acpi_madt_io_apic *)entry; in get_ioapic_id() local
344 if (ioapic->global_irq_base != gsi_base) in get_ioapic_id()
347 *phys_addr = ioapic->address; in get_ioapic_id()
348 *ioapic_id = ioapic->id; in get_ioapic_id()
409 * acpi_get_ioapic_id - Get IOAPIC ID and physical address matching @gsi_base
410 * @handle: ACPI object for IOAPIC device
412 * @phys_addr: Pointer to store physical address of matching IOAPIC record
415 * for an ACPI IOAPIC record matching @gsi_base.
416 * Return IOAPIC id and store physical address in @phys_addr if found a match,
/linux-6.14.4/arch/x86/kernel/apic/
Dio_apic.c107 static struct ioapic { struct
138 static inline int mp_ioapic_pin_count(int ioapic) in mp_ioapic_pin_count() argument
140 struct mp_ioapic_gsi *gsi_cfg = mp_ioapic_gsi_routing(ioapic); in mp_ioapic_pin_count()
145 static inline u32 mp_pin_to_gsi(int ioapic, int pin) in mp_pin_to_gsi() argument
147 return mp_ioapic_gsi_routing(ioapic)->gsi_base + pin; in mp_pin_to_gsi()
155 static inline struct irq_domain *mp_ioapic_irqdomain(int ioapic) in mp_ioapic_irqdomain() argument
157 return ioapics[ioapic].irqdomain; in mp_ioapic_irqdomain()
180 * disable_ioapic_support() - disables ioapic support at runtime
228 pr_err("IOAPIC %d: suspend/resume impossible!\n", idx); in alloc_ioapic_saved_registers()
598 * Restore IO APIC entries which was saved in the ioapic structure.
[all …]
Dvector.c3 * Local APIC related interfaces to support IOAPIC, MSI, etc.
588 * Legacy vectors are already assigned when the IOAPIC in x86_vector_alloc_irqs()
670 "intel,ce4100-ioapic"); in x86_fwspec_is_ioapic()
826 /* Check whether the irq is handled by the IOAPIC */ in __setup_vector_irq()
1133 * and in the worst case the ioapic irq line becomes stale. in irq_force_complete_move()
1147 * able to expose this, but AFAICT the IOAPIC emulation is not in irq_force_complete_move()
/linux-6.14.4/Documentation/devicetree/bindings/interrupt-controller/
Dintel,ce4100-ioapic.yaml4 $id: http://devicetree.org/schemas/interrupt-controller/intel,ce4100-ioapic.yaml#
18 from internal sources and from an external I/O APIC (ioapic).
22 Many of the Intel's generic devices like hpet, ioapic, lapic have
32 const: intel,ce4100-ioapic
56 compatible = "intel,ce4100-ioapic";
Dintel,ce4100-lapic.yaml18 from internal sources and from an external I/O APIC (ioapic).
22 Many of the Intel's generic devices like hpet, ioapic, lapic have
/linux-6.14.4/arch/x86/kernel/acpi/
Dboot.c74 * Locks related to IOAPIC hotplug
407 int ioapic; in mp_config_acpi_gsi() local
426 ioapic = mp_find_ioapic(gsi); in mp_config_acpi_gsi()
427 mp_irq.dstapic = mpc_ioapic_id(ioapic); in mp_config_acpi_gsi()
428 mp_irq.dstirq = mp_find_ioapic_pin(ioapic, gsi); in mp_config_acpi_gsi()
438 int ioapic, pin; in mp_register_ioapic_irq() local
440 /* Convert 'gsi' to 'ioapic.pin'(INTIN#) */ in mp_register_ioapic_irq()
441 ioapic = mp_find_ioapic(gsi); in mp_register_ioapic_irq()
442 if (ioapic < 0) { in mp_register_ioapic_irq()
443 pr_warn("Failed to find ioapic for gsi : %u\n", gsi); in mp_register_ioapic_irq()
[all …]
/linux-6.14.4/Documentation/translations/zh_CN/core-api/irq/
Dirq-domain.rst185 Device --> IOAPIC -> Interrupt remapping Controller -> Local APIC -> CPU
189 1) IOAPIC 控制器
206 IOAPIC irq_domain (manage IOAPIC delivery entries/pins)
/linux-6.14.4/arch/x86/include/asm/
Dhw_irq.h70 * @ioapic: IOAPIC specific allocation data
83 struct ioapic_alloc_info ioapic; member
Dio_apic.h103 extern int mpc_ioapic_id(int ioapic);
104 extern unsigned int mpc_ioapic_addr(int ioapic);
145 extern int mp_find_ioapic_pin(int ioapic, u32 gsi);
/linux-6.14.4/drivers/platform/x86/
Dintel_scu_wdt.c37 /* IOAPIC builds identity mapping between GSI and IRQ on MID */ in tangier_probe()
41 dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n", gsi); in tangier_probe()
/linux-6.14.4/Documentation/core-api/irq/
Dirq-domain.rst222 Device --> IOAPIC -> Interrupt remapping Controller -> Local APIC -> CPU
226 1) IOAPIC controller
243 IOAPIC irq_domain (manage IOAPIC delivery entries/pins)
/linux-6.14.4/arch/x86/kernel/
Dmpparse.c328 struct mpc_ioapic ioapic; in construct_ioapic_table() local
355 ioapic.type = MP_IOAPIC; in construct_ioapic_table()
356 ioapic.apicid = 2; in construct_ioapic_table()
357 ioapic.apicver = mpc_default_type > 4 ? 0x10 : 0x01; in construct_ioapic_table()
358 ioapic.flags = MPC_APIC_USABLE; in construct_ioapic_table()
359 ioapic.apicaddr = IO_APIC_DEFAULT_PHYS_BASE; in construct_ioapic_table()
360 MP_ioapic_info(&ioapic); in construct_ioapic_table()
Ddevicetree.c227 tmp.ioapic.pin = fwspec->param[0]; in dt_irqdomain_alloc()
261 for_each_compatible_node(dn, NULL, "intel,ce4100-ioapic") in dtb_ioapic_setup()
Dhpet.c200 * NOTE that hd_irq[] reflects IOAPIC input pins (LEGACY_8254 in hpet_reserve_platform_timers()
437 * #1 After the timer delivery test in IOAPIC and the IOAPIC setup in hpet_legacy_clockevent_register()
440 * switching to IOAPIC makes it work again. After fixing this, in hpet_legacy_clockevent_register()
450 * again after enabling IOAPIC results in really nasty hackery. in hpet_legacy_clockevent_register()
456 * switching to IOAPIC. Seems to be a feature... in hpet_legacy_clockevent_register()
/linux-6.14.4/drivers/iommu/intel/
Dirq_remapping.c312 pr_warn("Failed to set source-id of IOAPIC (%d)\n", apic); in set_ioapic_sid()
914 pr_info("IOAPIC id %d under DRHD base 0x%Lx IOMMU %d\n", in ir_parse_one_ioapic_scope()
958 * Finds the assocaition between IOAPIC's and its Interrupt-remapping
987 pr_err(FW_BUG "ioapic %d has no mapping iommu, " in parse_ioapics_under_ir()
1361 …apic_pr_verbose("IOAPIC[%d]: Set IRTE entry (P:%d FPD:%d Dst_Mode:%d Redir_hint:%d Trig_Mode:%d Dl… in intel_irq_remapping_prepare_irte()
1366 sub_handle = info->ioapic.pin; in intel_irq_remapping_prepare_irte()
1552 pr_warn("DRHD %Lx: failed to parse managed IOAPIC/HPET\n", in dmar_ir_add()
/linux-6.14.4/drivers/iommu/
Dhyperv-iommu.c164 * max cpu affinity for IOAPIC irqs. Scan cpu 0-255 and set cpu in hyperv_prepare_irq_remapping()
302 data->is_level = info->ioapic.is_level; in hyperv_root_irq_remapping_alloc()
Dirq_remapping.c37 * both IOAPIC RTE as well as interrupt-remapping table entry). in irq_remapping_restore_boot_irq_mode()
/linux-6.14.4/arch/x86/hyperv/
Dirqdomain.c347 device_id.ioapic.ioapic_id = (u8)ioapic_id; in hv_unmap_ioapic_interrupt()
360 device_id.ioapic.ioapic_id = (u8)ioapic_id; in hv_map_ioapic_interrupt()
/linux-6.14.4/arch/x86/platform/ce4100/
Dfalconfalls.dts34 compatible = "intel,ce4100-ioapic";
62 compatible = "intel,ce4100-ioapic";
/linux-6.14.4/drivers/platform/x86/x86-android-tablets/
Dx86-android-tablets.h26 * (either IOAPIC index, or GPIO chip name + pin-number).

123