x86, irq: Move IOAPIC related declarations from hw_irq.h into io_apic.h
Clean up code by moving IOAPIC related declarations from hw_irq.h into io_apic.h. Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Joerg Roedel <joro@8bytes.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: H. Peter Anvin <hpa@linux.intel.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Rafael J. Wysocki <rjw@rjwysocki.net> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Prarit Bhargava <prarit@redhat.com> Cc: Grant Likely <grant.likely@linaro.org> Cc: Vivek Goyal <vgoyal@redhat.com> Cc: Baoquan He <bhe@redhat.com> Cc: Matt Fleming <matt.fleming@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: Christian Gmeiner <christian.gmeiner@gmail.com> Cc: Aubrey <aubrey.li@linux.intel.com> Cc: Ryan Desfosses <ryan@desfo.org> Cc: Quentin Lambert <lambert.quentin@gmail.com> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: http://lkml.kernel.org/r/1414397531-28254-14-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
c3468952f0
commit
8643e28da2
|
@ -159,39 +159,6 @@ static inline void lock_vector_lock(void) {}
|
||||||
static inline void unlock_vector_lock(void) {}
|
static inline void unlock_vector_lock(void) {}
|
||||||
#endif /* CONFIG_X86_LOCAL_APIC */
|
#endif /* CONFIG_X86_LOCAL_APIC */
|
||||||
|
|
||||||
/* IOAPIC */
|
|
||||||
#ifdef CONFIG_X86_IO_APIC
|
|
||||||
struct io_apic_irq_attr {
|
|
||||||
int ioapic;
|
|
||||||
int ioapic_pin;
|
|
||||||
int trigger;
|
|
||||||
int polarity;
|
|
||||||
};
|
|
||||||
|
|
||||||
static inline void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr,
|
|
||||||
int ioapic, int ioapic_pin,
|
|
||||||
int trigger, int polarity)
|
|
||||||
{
|
|
||||||
irq_attr->ioapic = ioapic;
|
|
||||||
irq_attr->ioapic_pin = ioapic_pin;
|
|
||||||
irq_attr->trigger = trigger;
|
|
||||||
irq_attr->polarity = polarity;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern void setup_IO_APIC(void);
|
|
||||||
extern void enable_IO_APIC(void);
|
|
||||||
extern void disable_IO_APIC(void);
|
|
||||||
extern void setup_ioapic_dest(void);
|
|
||||||
extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin);
|
|
||||||
extern void print_IO_APICs(void);
|
|
||||||
|
|
||||||
extern unsigned long io_apic_irqs;
|
|
||||||
#define IO_APIC_IRQ(x) (((x) >= NR_IRQS_LEGACY) || ((1 << (x)) & io_apic_irqs))
|
|
||||||
#else /* CONFIG_X86_IO_APIC */
|
|
||||||
#define IO_APIC_IRQ(x) 0
|
|
||||||
static inline void print_IO_APICs(void) {}
|
|
||||||
#endif /* CONFIG_X86_IO_APIC */
|
|
||||||
|
|
||||||
/* Statistics */
|
/* Statistics */
|
||||||
extern atomic_t irq_err_count;
|
extern atomic_t irq_err_count;
|
||||||
extern atomic_t irq_mis_count;
|
extern atomic_t irq_mis_count;
|
||||||
|
|
|
@ -132,6 +132,10 @@ extern int noioapicquirk;
|
||||||
/* -1 if "noapic" boot option passed */
|
/* -1 if "noapic" boot option passed */
|
||||||
extern int noioapicreroute;
|
extern int noioapicreroute;
|
||||||
|
|
||||||
|
extern unsigned long io_apic_irqs;
|
||||||
|
|
||||||
|
#define IO_APIC_IRQ(x) (((x) >= NR_IRQS_LEGACY) || ((1 << (x)) & io_apic_irqs))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we use the IO-APIC for IRQ routing, disable automatic
|
* If we use the IO-APIC for IRQ routing, disable automatic
|
||||||
* assignment of PCI IRQ's.
|
* assignment of PCI IRQ's.
|
||||||
|
@ -139,7 +143,6 @@ extern int noioapicreroute;
|
||||||
#define io_apic_assign_pci_irqs \
|
#define io_apic_assign_pci_irqs \
|
||||||
(mp_irq_entries && !skip_ioapic_setup && io_apic_irqs)
|
(mp_irq_entries && !skip_ioapic_setup && io_apic_irqs)
|
||||||
|
|
||||||
struct io_apic_irq_attr;
|
|
||||||
struct irq_cfg;
|
struct irq_cfg;
|
||||||
extern void ioapic_insert_resources(void);
|
extern void ioapic_insert_resources(void);
|
||||||
|
|
||||||
|
@ -157,6 +160,13 @@ extern int restore_ioapic_entries(void);
|
||||||
extern void setup_ioapic_ids_from_mpc(void);
|
extern void setup_ioapic_ids_from_mpc(void);
|
||||||
extern void setup_ioapic_ids_from_mpc_nocheck(void);
|
extern void setup_ioapic_ids_from_mpc_nocheck(void);
|
||||||
|
|
||||||
|
struct io_apic_irq_attr {
|
||||||
|
int ioapic;
|
||||||
|
int ioapic_pin;
|
||||||
|
int trigger;
|
||||||
|
int polarity;
|
||||||
|
};
|
||||||
|
|
||||||
enum ioapic_domain_type {
|
enum ioapic_domain_type {
|
||||||
IOAPIC_DOMAIN_INVALID,
|
IOAPIC_DOMAIN_INVALID,
|
||||||
IOAPIC_DOMAIN_LEGACY,
|
IOAPIC_DOMAIN_LEGACY,
|
||||||
|
@ -226,11 +236,19 @@ static inline void io_apic_modify(unsigned int apic, unsigned int reg, unsigned
|
||||||
|
|
||||||
extern void io_apic_eoi(unsigned int apic, unsigned int vector);
|
extern void io_apic_eoi(unsigned int apic, unsigned int vector);
|
||||||
|
|
||||||
|
extern void setup_IO_APIC(void);
|
||||||
|
extern void enable_IO_APIC(void);
|
||||||
|
extern void disable_IO_APIC(void);
|
||||||
|
extern void setup_ioapic_dest(void);
|
||||||
|
extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin);
|
||||||
|
extern void print_IO_APICs(void);
|
||||||
#else /* !CONFIG_X86_IO_APIC */
|
#else /* !CONFIG_X86_IO_APIC */
|
||||||
|
|
||||||
|
#define IO_APIC_IRQ(x) 0
|
||||||
#define io_apic_assign_pci_irqs 0
|
#define io_apic_assign_pci_irqs 0
|
||||||
#define setup_ioapic_ids_from_mpc x86_init_noop
|
#define setup_ioapic_ids_from_mpc x86_init_noop
|
||||||
static inline void ioapic_insert_resources(void) { }
|
static inline void ioapic_insert_resources(void) { }
|
||||||
|
static inline void print_IO_APICs(void) {}
|
||||||
#define gsi_top (NR_IRQS_LEGACY)
|
#define gsi_top (NR_IRQS_LEGACY)
|
||||||
static inline int mp_find_ioapic(u32 gsi) { return 0; }
|
static inline int mp_find_ioapic(u32 gsi) { return 0; }
|
||||||
static inline u32 mp_pin_to_gsi(int ioapic, int pin) { return UINT_MAX; }
|
static inline u32 mp_pin_to_gsi(int ioapic, int pin) { return UINT_MAX; }
|
||||||
|
|
|
@ -3023,6 +3023,16 @@ int mp_ioapic_registered(u32 gsi_base)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr,
|
||||||
|
int ioapic, int ioapic_pin,
|
||||||
|
int trigger, int polarity)
|
||||||
|
{
|
||||||
|
irq_attr->ioapic = ioapic;
|
||||||
|
irq_attr->ioapic_pin = ioapic_pin;
|
||||||
|
irq_attr->trigger = trigger;
|
||||||
|
irq_attr->polarity = polarity;
|
||||||
|
}
|
||||||
|
|
||||||
int mp_irqdomain_map(struct irq_domain *domain, unsigned int virq,
|
int mp_irqdomain_map(struct irq_domain *domain, unsigned int virq,
|
||||||
irq_hw_number_t hwirq)
|
irq_hw_number_t hwirq)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include <asm/nmi.h>
|
#include <asm/nmi.h>
|
||||||
#include <asm/hw_irq.h>
|
#include <asm/hw_irq.h>
|
||||||
#include <asm/apic.h>
|
#include <asm/apic.h>
|
||||||
|
#include <asm/io_apic.h>
|
||||||
#include <asm/hpet.h>
|
#include <asm/hpet.h>
|
||||||
#include <linux/kdebug.h>
|
#include <linux/kdebug.h>
|
||||||
#include <asm/cpu.h>
|
#include <asm/cpu.h>
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include <asm/tlbflush.h>
|
#include <asm/tlbflush.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/apic.h>
|
#include <asm/apic.h>
|
||||||
|
#include <asm/io_apic.h>
|
||||||
#include <asm/cpufeature.h>
|
#include <asm/cpufeature.h>
|
||||||
#include <asm/desc.h>
|
#include <asm/desc.h>
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
#include <asm/tlbflush.h>
|
#include <asm/tlbflush.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
|
#include <asm/io_apic.h>
|
||||||
#include <asm/debugreg.h>
|
#include <asm/debugreg.h>
|
||||||
#include <asm/kexec-bzimage64.h>
|
#include <asm/kexec-bzimage64.h>
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <acpi/reboot.h>
|
#include <acpi/reboot.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/apic.h>
|
#include <asm/apic.h>
|
||||||
|
#include <asm/io_apic.h>
|
||||||
#include <asm/desc.h>
|
#include <asm/desc.h>
|
||||||
#include <asm/hpet.h>
|
#include <asm/hpet.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include <linux/wait.h>
|
#include <linux/wait.h>
|
||||||
#include "../pci.h"
|
#include "../pci.h"
|
||||||
#include <asm/pci_x86.h> /* for struct irq_routing_table */
|
#include <asm/pci_x86.h> /* for struct irq_routing_table */
|
||||||
|
#include <asm/io_apic.h>
|
||||||
#include "ibmphp.h"
|
#include "ibmphp.h"
|
||||||
|
|
||||||
#define attn_on(sl) ibmphp_hpc_writeslot (sl, HPC_SLOT_ATTNON)
|
#define attn_on(sl) ibmphp_hpc_writeslot (sl, HPC_SLOT_ATTNON)
|
||||||
|
|
Loading…
Reference in New Issue