mirror of https://gitee.com/openkylin/linux.git
[PATCH] htirq: tidy up the htirq code
This moves the declarations for the architecture helpers into include/linux/htirq.h from the generic include/linux/pci.h. Hopefully this will make this distinction clearer. htirq.h is included where it is needed. The dependency on the msi code is fixed and removed. The Makefile is tidied up. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Tony Luck <tony.luck@intel.com> Cc: Andi Kleen <ak@suse.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Greg KH <greg@kroah.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
03571e11c4
commit
95d77884c7
|
@ -33,6 +33,7 @@
|
|||
#include <linux/sysdev.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/htirq.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/smp.h>
|
||||
|
@ -2409,9 +2410,8 @@ static int __init ioapic_init_sysfs(void)
|
|||
|
||||
device_initcall(ioapic_init_sysfs);
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
/*
|
||||
* Dynamic irq allocate and deallocation for MSI
|
||||
* Dynamic irq allocate and deallocation
|
||||
*/
|
||||
int create_irq(void)
|
||||
{
|
||||
|
@ -2450,7 +2450,6 @@ void destroy_irq(unsigned int irq)
|
|||
irq_vector[irq] = 0;
|
||||
spin_unlock_irqrestore(&vector_lock, flags);
|
||||
}
|
||||
#endif /* CONFIG_PCI_MSI */
|
||||
|
||||
/*
|
||||
* MSI mesage composition
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <linux/acpi.h>
|
||||
#include <linux/sysdev.h>
|
||||
#include <linux/msi.h>
|
||||
#include <linux/htirq.h>
|
||||
#ifdef CONFIG_ACPI
|
||||
#include <acpi/acpi_bus.h>
|
||||
#endif
|
||||
|
|
|
@ -55,7 +55,6 @@ config PCI_DEBUG
|
|||
config HT_IRQ
|
||||
bool "Interrupts on hypertransport devices"
|
||||
default y
|
||||
depends on PCI_MSI
|
||||
depends on X86_LOCAL_APIC && X86_IO_APIC
|
||||
help
|
||||
This allows native hypertransport devices to use interrupts.
|
||||
|
|
|
@ -17,6 +17,9 @@ obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
|
|||
# Build the PCI MSI interrupt support
|
||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||
|
||||
# Build the Hypertransport interrupt support
|
||||
obj-$(CONFIG_HT_IRQ) += htirq.o
|
||||
|
||||
#
|
||||
# Some architectures use the generic PCI setup functions
|
||||
#
|
||||
|
@ -29,7 +32,6 @@ obj-$(CONFIG_PPC32) += setup-irq.o
|
|||
obj-$(CONFIG_PPC64) += setup-bus.o
|
||||
obj-$(CONFIG_MIPS) += setup-bus.o setup-irq.o
|
||||
obj-$(CONFIG_X86_VISWS) += setup-irq.o
|
||||
obj-$(CONFIG_HT_IRQ) += htirq.o
|
||||
|
||||
#
|
||||
# ACPI Related PCI FW Functions
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/spinlock.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/gfp.h>
|
||||
#include <linux/htirq.h>
|
||||
|
||||
/* Global ht irq lock.
|
||||
*
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef LINUX_HTIRQ_H
|
||||
#define LINUX_HTIRQ_H
|
||||
|
||||
/* Helper functions.. */
|
||||
void write_ht_irq_low(unsigned int irq, u32 data);
|
||||
void write_ht_irq_high(unsigned int irq, u32 data);
|
||||
u32 read_ht_irq_low(unsigned int irq);
|
||||
u32 read_ht_irq_high(unsigned int irq);
|
||||
void mask_ht_irq(unsigned int irq);
|
||||
void unmask_ht_irq(unsigned int irq);
|
||||
|
||||
/* The arch hook for getting things started */
|
||||
int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev);
|
||||
|
||||
#endif /* LINUX_HTIRQ_H */
|
|
@ -615,20 +615,9 @@ extern void msi_remove_pci_irq_vectors(struct pci_dev *dev);
|
|||
#endif
|
||||
|
||||
#ifdef CONFIG_HT_IRQ
|
||||
/* Helper functions.. */
|
||||
void write_ht_irq_low(unsigned int irq, u32 data);
|
||||
void write_ht_irq_high(unsigned int irq, u32 data);
|
||||
u32 read_ht_irq_low(unsigned int irq);
|
||||
u32 read_ht_irq_high(unsigned int irq);
|
||||
void mask_ht_irq(unsigned int irq);
|
||||
void unmask_ht_irq(unsigned int irq);
|
||||
|
||||
/* The functions a driver should call */
|
||||
int ht_create_irq(struct pci_dev *dev, int idx);
|
||||
void ht_destroy_irq(unsigned int irq);
|
||||
|
||||
/* The arch hook for getting things started */
|
||||
int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev);
|
||||
#endif /* CONFIG_HT_IRQ */
|
||||
|
||||
extern void pci_block_user_cfg_access(struct pci_dev *dev);
|
||||
|
|
Loading…
Reference in New Issue