Message ID | 1399346992-6584-1-git-send-email-hanjun.guo@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tuesday 06 May 2014 11:29:52 Hanjun Guo wrote: > pcibios_penalize_isa_irq() is only useful for x86 now, and > legacy ISA is not used by some architectures, so make > pcibios_penalize_isa_irq() as __weak function to simplify > the code, this will prevent new platform from introducing > dummy stub function for pcibios_penalize_isa_irq() too. > > Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Acked-by: Arnd Bergmann <arnd@arndb.de>
On 2014-5-6 15:26, Arnd Bergmann wrote: > On Tuesday 06 May 2014 11:29:52 Hanjun Guo wrote: >> pcibios_penalize_isa_irq() is only useful for x86 now, and >> legacy ISA is not used by some architectures, so make >> pcibios_penalize_isa_irq() as __weak function to simplify >> the code, this will prevent new platform from introducing >> dummy stub function for pcibios_penalize_isa_irq() too. >> >> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> > > Acked-by: Arnd Bergmann <arnd@arndb.de> > Hi Bjorn, Any comments on this patch? Thanks Hanjun
On Tue, May 06, 2014 at 11:29:52AM +0800, Hanjun Guo wrote: > pcibios_penalize_isa_irq() is only useful for x86 now, and > legacy ISA is not used by some architectures, so make > pcibios_penalize_isa_irq() as __weak function to simplify > the code, this will prevent new platform from introducing > dummy stub function for pcibios_penalize_isa_irq() too. > > Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Applied with Arnd's ack to pci/misc for v3.16, thanks. > --- > arch/alpha/include/asm/pci.h | 5 ----- > arch/arm/include/asm/pci.h | 5 ----- > arch/blackfin/include/asm/pci.h | 5 ----- > arch/cris/include/asm/pci.h | 1 - > arch/frv/include/asm/pci.h | 2 -- > arch/frv/mb93090-mb00/pci-irq.c | 4 ---- > arch/ia64/include/asm/pci.h | 6 ------ > arch/microblaze/include/asm/pci.h | 5 ----- > arch/mips/include/asm/pci.h | 5 ----- > arch/mn10300/include/asm/pci.h | 1 - > arch/mn10300/unit-asb2305/pci-irq.c | 4 ---- > arch/parisc/include/asm/pci.h | 5 ----- > arch/powerpc/include/asm/pci.h | 5 ----- > arch/sh/include/asm/pci.h | 5 ----- > arch/sparc/include/asm/pci_32.h | 5 ----- > arch/sparc/include/asm/pci_64.h | 5 ----- > arch/unicore32/include/asm/pci.h | 5 ----- > arch/x86/include/asm/pci.h | 1 - > arch/xtensa/include/asm/pci.h | 5 ----- > drivers/pci/pci.c | 11 +++++++++++ > include/linux/pci.h | 1 + > 21 files changed, 12 insertions(+), 79 deletions(-) > > diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h > index d01afb7..f7f680f 100644 > --- a/arch/alpha/include/asm/pci.h > +++ b/arch/alpha/include/asm/pci.h > @@ -59,11 +59,6 @@ struct pci_controller { > > extern void pcibios_set_master(struct pci_dev *dev); > > -extern inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > /* IOMMU controls. */ > > /* The PCI address space does not equal the physical memory address space. > diff --git a/arch/arm/include/asm/pci.h b/arch/arm/include/asm/pci.h > index 680a83e..7e95d85 100644 > --- a/arch/arm/include/asm/pci.h > +++ b/arch/arm/include/asm/pci.h > @@ -31,11 +31,6 @@ static inline int pci_proc_domain(struct pci_bus *bus) > } > #endif /* CONFIG_PCI_DOMAINS */ > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > /* > * The PCI address space does equal the physical memory address space. > * The networking and block device layers use this boolean for bounce > diff --git a/arch/blackfin/include/asm/pci.h b/arch/blackfin/include/asm/pci.h > index 74352c4..c737909 100644 > --- a/arch/blackfin/include/asm/pci.h > +++ b/arch/blackfin/include/asm/pci.h > @@ -10,9 +10,4 @@ > #define PCIBIOS_MIN_IO 0x00001000 > #define PCIBIOS_MIN_MEM 0x10000000 > > -static inline void pcibios_penalize_isa_irq(int irq) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > #endif /* _ASM_BFIN_PCI_H */ > diff --git a/arch/cris/include/asm/pci.h b/arch/cris/include/asm/pci.h > index f666734..cc2399c 100644 > --- a/arch/cris/include/asm/pci.h > +++ b/arch/cris/include/asm/pci.h > @@ -20,7 +20,6 @@ void pcibios_config_init(void); > struct pci_bus * pcibios_scan_root(int bus); > > void pcibios_set_master(struct pci_dev *dev); > -void pcibios_penalize_isa_irq(int irq); > struct irq_routing_table *pcibios_get_irq_routing_table(void); > int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); > > diff --git a/arch/frv/include/asm/pci.h b/arch/frv/include/asm/pci.h > index ef03baf..2035a4d 100644 > --- a/arch/frv/include/asm/pci.h > +++ b/arch/frv/include/asm/pci.h > @@ -24,8 +24,6 @@ struct pci_dev; > > extern void pcibios_set_master(struct pci_dev *dev); > > -extern void pcibios_penalize_isa_irq(int irq); > - > #ifdef CONFIG_MMU > extern void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *dma_handle); > extern void consistent_free(void *vaddr); > diff --git a/arch/frv/mb93090-mb00/pci-irq.c b/arch/frv/mb93090-mb00/pci-irq.c > index c677b9d..1c35c93 100644 > --- a/arch/frv/mb93090-mb00/pci-irq.c > +++ b/arch/frv/mb93090-mb00/pci-irq.c > @@ -55,10 +55,6 @@ void __init pcibios_fixup_irqs(void) > } > } > > -void __init pcibios_penalize_isa_irq(int irq) > -{ > -} > - > void pcibios_enable_irq(struct pci_dev *dev) > { > pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); > diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h > index 7d41cc0..52af5ed 100644 > --- a/arch/ia64/include/asm/pci.h > +++ b/arch/ia64/include/asm/pci.h > @@ -50,12 +50,6 @@ struct pci_dev; > extern unsigned long ia64_max_iommu_merge_mask; > #define PCI_DMA_BUS_IS_PHYS (ia64_max_iommu_merge_mask == ~0UL) > > -static inline void > -pcibios_penalize_isa_irq (int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > #include <asm-generic/pci-dma-compat.h> > > #ifdef CONFIG_PCI > diff --git a/arch/microblaze/include/asm/pci.h b/arch/microblaze/include/asm/pci.h > index 935f9be..3355240 100644 > --- a/arch/microblaze/include/asm/pci.h > +++ b/arch/microblaze/include/asm/pci.h > @@ -44,11 +44,6 @@ struct pci_dev; > */ > #define pcibios_assign_all_busses() 0 > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > #ifdef CONFIG_PCI > extern void set_pci_dma_ops(struct dma_map_ops *dma_ops); > extern struct dma_map_ops *get_pci_dma_ops(void); > diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h > index 12d6842..974b0e3 100644 > --- a/arch/mips/include/asm/pci.h > +++ b/arch/mips/include/asm/pci.h > @@ -73,11 +73,6 @@ extern unsigned long PCIBIOS_MIN_MEM; > > extern void pcibios_set_master(struct pci_dev *dev); > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > #define HAVE_PCI_MMAP > > extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, > diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h > index 1663238..5f70af2 100644 > --- a/arch/mn10300/include/asm/pci.h > +++ b/arch/mn10300/include/asm/pci.h > @@ -48,7 +48,6 @@ extern void unit_pci_init(void); > #define PCIBIOS_MIN_MEM 0xB8000000 > > void pcibios_set_master(struct pci_dev *dev); > -void pcibios_penalize_isa_irq(int irq); > > /* Dynamic DMA mapping stuff. > * i386 has everything mapped statically. > diff --git a/arch/mn10300/unit-asb2305/pci-irq.c b/arch/mn10300/unit-asb2305/pci-irq.c > index 77439da..fcb28ce 100644 > --- a/arch/mn10300/unit-asb2305/pci-irq.c > +++ b/arch/mn10300/unit-asb2305/pci-irq.c > @@ -40,10 +40,6 @@ void __init pcibios_fixup_irqs(void) > } > } > > -void __init pcibios_penalize_isa_irq(int irq) > -{ > -} > - > void pcibios_enable_irq(struct pci_dev *dev) > { > pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); > diff --git a/arch/parisc/include/asm/pci.h b/arch/parisc/include/asm/pci.h > index 4651540..20df2b0 100644 > --- a/arch/parisc/include/asm/pci.h > +++ b/arch/parisc/include/asm/pci.h > @@ -215,11 +215,6 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev, > } > #endif > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't need to penalize isa irq's */ > -} > - > static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) > { > return channel ? 15 : 14; > diff --git a/arch/powerpc/include/asm/pci.h b/arch/powerpc/include/asm/pci.h > index 95145a1..1b0739b 100644 > --- a/arch/powerpc/include/asm/pci.h > +++ b/arch/powerpc/include/asm/pci.h > @@ -46,11 +46,6 @@ struct pci_dev; > #define pcibios_assign_all_busses() \ > (pci_has_flag(PCI_REASSIGN_ALL_BUS)) > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ > static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) > { > diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h > index bff96c2..5b45115 100644 > --- a/arch/sh/include/asm/pci.h > +++ b/arch/sh/include/asm/pci.h > @@ -70,11 +70,6 @@ extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, > enum pci_mmap_state mmap_state, int write_combine); > extern void pcibios_set_master(struct pci_dev *dev); > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > /* Dynamic DMA mapping stuff. > * SuperH has everything mapped statically like x86. > */ > diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h > index dc50329..53e9b49 100644 > --- a/arch/sparc/include/asm/pci_32.h > +++ b/arch/sparc/include/asm/pci_32.h > @@ -16,11 +16,6 @@ > > #define PCI_IRQ_NONE 0xffffffff > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > /* Dynamic DMA mapping stuff. > */ > #define PCI_DMA_BUS_IS_PHYS (0) > diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h > index 1633b71..c6c7396 100644 > --- a/arch/sparc/include/asm/pci_64.h > +++ b/arch/sparc/include/asm/pci_64.h > @@ -16,11 +16,6 @@ > > #define PCI_IRQ_NONE 0xffffffff > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > /* The PCI address space does not equal the physical memory > * address space. The networking and block device layers use > * this boolean for bounce buffer decisions. > diff --git a/arch/unicore32/include/asm/pci.h b/arch/unicore32/include/asm/pci.h > index f5e108f..654407e 100644 > --- a/arch/unicore32/include/asm/pci.h > +++ b/arch/unicore32/include/asm/pci.h > @@ -18,11 +18,6 @@ > #include <asm-generic/pci.h> > #include <mach/hardware.h> /* for PCIBIOS_MIN_* */ > > -static inline void pcibios_penalize_isa_irq(int irq, int active) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > #ifdef CONFIG_PCI > static inline void pci_dma_burst_advice(struct pci_dev *pdev, > enum pci_dma_burst_strategy *strat, > diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h > index 96ae4f4..0892ea0 100644 > --- a/arch/x86/include/asm/pci.h > +++ b/arch/x86/include/asm/pci.h > @@ -68,7 +68,6 @@ void pcibios_config_init(void); > void pcibios_scan_root(int bus); > > void pcibios_set_master(struct pci_dev *dev); > -void pcibios_penalize_isa_irq(int irq, int active); > struct irq_routing_table *pcibios_get_irq_routing_table(void); > int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); > > diff --git a/arch/xtensa/include/asm/pci.h b/arch/xtensa/include/asm/pci.h > index 614be03..5d52dc4 100644 > --- a/arch/xtensa/include/asm/pci.h > +++ b/arch/xtensa/include/asm/pci.h > @@ -22,11 +22,6 @@ > > extern struct pci_controller* pcibios_alloc_controller(void); > > -static inline void pcibios_penalize_isa_irq(int irq) > -{ > - /* We don't do dynamic PCI IRQ allocation */ > -} > - > /* Assume some values. (We should revise them, if necessary) */ > > #define PCIBIOS_MIN_IO 0x2000 > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > index 7325d43..57c330f 100644 > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -1468,6 +1468,17 @@ void __weak pcibios_release_device(struct pci_dev *dev) {} > */ > void __weak pcibios_disable_device (struct pci_dev *dev) {} > > +/** > + * pcibios_penalize_isa_irq - provide arch specific hooks when penalize isa irq > + * @irq: isa irq to penalize > + * @active: irq active or not > + * > + * Permits the platform to provide architecture specific functionality when > + * penalize isa irq. This is the default implementation. Architecture > + * implementations can override this. > + */ > +void __weak pcibios_penalize_isa_irq(int irq, int active) {} > + > static void do_pci_disable_device(struct pci_dev *dev) > { > u16 pci_command; > diff --git a/include/linux/pci.h b/include/linux/pci.h > index aab57b4..da8f7d5 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -1579,6 +1579,7 @@ int pcibios_set_pcie_reset_state(struct pci_dev *dev, > enum pcie_reset_state state); > int pcibios_add_device(struct pci_dev *dev); > void pcibios_release_device(struct pci_dev *dev); > +void pcibios_penalize_isa_irq(int irq, int active); > > #ifdef CONFIG_HIBERNATE_CALLBACKS > extern struct dev_pm_ops pcibios_pm_ops; > -- > 1.7.9.5 >
diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h index d01afb7..f7f680f 100644 --- a/arch/alpha/include/asm/pci.h +++ b/arch/alpha/include/asm/pci.h @@ -59,11 +59,6 @@ struct pci_controller { extern void pcibios_set_master(struct pci_dev *dev); -extern inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - /* IOMMU controls. */ /* The PCI address space does not equal the physical memory address space. diff --git a/arch/arm/include/asm/pci.h b/arch/arm/include/asm/pci.h index 680a83e..7e95d85 100644 --- a/arch/arm/include/asm/pci.h +++ b/arch/arm/include/asm/pci.h @@ -31,11 +31,6 @@ static inline int pci_proc_domain(struct pci_bus *bus) } #endif /* CONFIG_PCI_DOMAINS */ -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - /* * The PCI address space does equal the physical memory address space. * The networking and block device layers use this boolean for bounce diff --git a/arch/blackfin/include/asm/pci.h b/arch/blackfin/include/asm/pci.h index 74352c4..c737909 100644 --- a/arch/blackfin/include/asm/pci.h +++ b/arch/blackfin/include/asm/pci.h @@ -10,9 +10,4 @@ #define PCIBIOS_MIN_IO 0x00001000 #define PCIBIOS_MIN_MEM 0x10000000 -static inline void pcibios_penalize_isa_irq(int irq) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - #endif /* _ASM_BFIN_PCI_H */ diff --git a/arch/cris/include/asm/pci.h b/arch/cris/include/asm/pci.h index f666734..cc2399c 100644 --- a/arch/cris/include/asm/pci.h +++ b/arch/cris/include/asm/pci.h @@ -20,7 +20,6 @@ void pcibios_config_init(void); struct pci_bus * pcibios_scan_root(int bus); void pcibios_set_master(struct pci_dev *dev); -void pcibios_penalize_isa_irq(int irq); struct irq_routing_table *pcibios_get_irq_routing_table(void); int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); diff --git a/arch/frv/include/asm/pci.h b/arch/frv/include/asm/pci.h index ef03baf..2035a4d 100644 --- a/arch/frv/include/asm/pci.h +++ b/arch/frv/include/asm/pci.h @@ -24,8 +24,6 @@ struct pci_dev; extern void pcibios_set_master(struct pci_dev *dev); -extern void pcibios_penalize_isa_irq(int irq); - #ifdef CONFIG_MMU extern void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *dma_handle); extern void consistent_free(void *vaddr); diff --git a/arch/frv/mb93090-mb00/pci-irq.c b/arch/frv/mb93090-mb00/pci-irq.c index c677b9d..1c35c93 100644 --- a/arch/frv/mb93090-mb00/pci-irq.c +++ b/arch/frv/mb93090-mb00/pci-irq.c @@ -55,10 +55,6 @@ void __init pcibios_fixup_irqs(void) } } -void __init pcibios_penalize_isa_irq(int irq) -{ -} - void pcibios_enable_irq(struct pci_dev *dev) { pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h index 7d41cc0..52af5ed 100644 --- a/arch/ia64/include/asm/pci.h +++ b/arch/ia64/include/asm/pci.h @@ -50,12 +50,6 @@ struct pci_dev; extern unsigned long ia64_max_iommu_merge_mask; #define PCI_DMA_BUS_IS_PHYS (ia64_max_iommu_merge_mask == ~0UL) -static inline void -pcibios_penalize_isa_irq (int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - #include <asm-generic/pci-dma-compat.h> #ifdef CONFIG_PCI diff --git a/arch/microblaze/include/asm/pci.h b/arch/microblaze/include/asm/pci.h index 935f9be..3355240 100644 --- a/arch/microblaze/include/asm/pci.h +++ b/arch/microblaze/include/asm/pci.h @@ -44,11 +44,6 @@ struct pci_dev; */ #define pcibios_assign_all_busses() 0 -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - #ifdef CONFIG_PCI extern void set_pci_dma_ops(struct dma_map_ops *dma_ops); extern struct dma_map_ops *get_pci_dma_ops(void); diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h index 12d6842..974b0e3 100644 --- a/arch/mips/include/asm/pci.h +++ b/arch/mips/include/asm/pci.h @@ -73,11 +73,6 @@ extern unsigned long PCIBIOS_MIN_MEM; extern void pcibios_set_master(struct pci_dev *dev); -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - #define HAVE_PCI_MMAP extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h index 1663238..5f70af2 100644 --- a/arch/mn10300/include/asm/pci.h +++ b/arch/mn10300/include/asm/pci.h @@ -48,7 +48,6 @@ extern void unit_pci_init(void); #define PCIBIOS_MIN_MEM 0xB8000000 void pcibios_set_master(struct pci_dev *dev); -void pcibios_penalize_isa_irq(int irq); /* Dynamic DMA mapping stuff. * i386 has everything mapped statically. diff --git a/arch/mn10300/unit-asb2305/pci-irq.c b/arch/mn10300/unit-asb2305/pci-irq.c index 77439da..fcb28ce 100644 --- a/arch/mn10300/unit-asb2305/pci-irq.c +++ b/arch/mn10300/unit-asb2305/pci-irq.c @@ -40,10 +40,6 @@ void __init pcibios_fixup_irqs(void) } } -void __init pcibios_penalize_isa_irq(int irq) -{ -} - void pcibios_enable_irq(struct pci_dev *dev) { pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); diff --git a/arch/parisc/include/asm/pci.h b/arch/parisc/include/asm/pci.h index 4651540..20df2b0 100644 --- a/arch/parisc/include/asm/pci.h +++ b/arch/parisc/include/asm/pci.h @@ -215,11 +215,6 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev, } #endif -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't need to penalize isa irq's */ -} - static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { return channel ? 15 : 14; diff --git a/arch/powerpc/include/asm/pci.h b/arch/powerpc/include/asm/pci.h index 95145a1..1b0739b 100644 --- a/arch/powerpc/include/asm/pci.h +++ b/arch/powerpc/include/asm/pci.h @@ -46,11 +46,6 @@ struct pci_dev; #define pcibios_assign_all_busses() \ (pci_has_flag(PCI_REASSIGN_ALL_BUS)) -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h index bff96c2..5b45115 100644 --- a/arch/sh/include/asm/pci.h +++ b/arch/sh/include/asm/pci.h @@ -70,11 +70,6 @@ extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, enum pci_mmap_state mmap_state, int write_combine); extern void pcibios_set_master(struct pci_dev *dev); -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - /* Dynamic DMA mapping stuff. * SuperH has everything mapped statically like x86. */ diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h index dc50329..53e9b49 100644 --- a/arch/sparc/include/asm/pci_32.h +++ b/arch/sparc/include/asm/pci_32.h @@ -16,11 +16,6 @@ #define PCI_IRQ_NONE 0xffffffff -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - /* Dynamic DMA mapping stuff. */ #define PCI_DMA_BUS_IS_PHYS (0) diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h index 1633b71..c6c7396 100644 --- a/arch/sparc/include/asm/pci_64.h +++ b/arch/sparc/include/asm/pci_64.h @@ -16,11 +16,6 @@ #define PCI_IRQ_NONE 0xffffffff -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - /* The PCI address space does not equal the physical memory * address space. The networking and block device layers use * this boolean for bounce buffer decisions. diff --git a/arch/unicore32/include/asm/pci.h b/arch/unicore32/include/asm/pci.h index f5e108f..654407e 100644 --- a/arch/unicore32/include/asm/pci.h +++ b/arch/unicore32/include/asm/pci.h @@ -18,11 +18,6 @@ #include <asm-generic/pci.h> #include <mach/hardware.h> /* for PCIBIOS_MIN_* */ -static inline void pcibios_penalize_isa_irq(int irq, int active) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - #ifdef CONFIG_PCI static inline void pci_dma_burst_advice(struct pci_dev *pdev, enum pci_dma_burst_strategy *strat, diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index 96ae4f4..0892ea0 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -68,7 +68,6 @@ void pcibios_config_init(void); void pcibios_scan_root(int bus); void pcibios_set_master(struct pci_dev *dev); -void pcibios_penalize_isa_irq(int irq, int active); struct irq_routing_table *pcibios_get_irq_routing_table(void); int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); diff --git a/arch/xtensa/include/asm/pci.h b/arch/xtensa/include/asm/pci.h index 614be03..5d52dc4 100644 --- a/arch/xtensa/include/asm/pci.h +++ b/arch/xtensa/include/asm/pci.h @@ -22,11 +22,6 @@ extern struct pci_controller* pcibios_alloc_controller(void); -static inline void pcibios_penalize_isa_irq(int irq) -{ - /* We don't do dynamic PCI IRQ allocation */ -} - /* Assume some values. (We should revise them, if necessary) */ #define PCIBIOS_MIN_IO 0x2000 diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 7325d43..57c330f 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -1468,6 +1468,17 @@ void __weak pcibios_release_device(struct pci_dev *dev) {} */ void __weak pcibios_disable_device (struct pci_dev *dev) {} +/** + * pcibios_penalize_isa_irq - provide arch specific hooks when penalize isa irq + * @irq: isa irq to penalize + * @active: irq active or not + * + * Permits the platform to provide architecture specific functionality when + * penalize isa irq. This is the default implementation. Architecture + * implementations can override this. + */ +void __weak pcibios_penalize_isa_irq(int irq, int active) {} + static void do_pci_disable_device(struct pci_dev *dev) { u16 pci_command; diff --git a/include/linux/pci.h b/include/linux/pci.h index aab57b4..da8f7d5 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1579,6 +1579,7 @@ int pcibios_set_pcie_reset_state(struct pci_dev *dev, enum pcie_reset_state state); int pcibios_add_device(struct pci_dev *dev); void pcibios_release_device(struct pci_dev *dev); +void pcibios_penalize_isa_irq(int irq, int active); #ifdef CONFIG_HIBERNATE_CALLBACKS extern struct dev_pm_ops pcibios_pm_ops;
pcibios_penalize_isa_irq() is only useful for x86 now, and legacy ISA is not used by some architectures, so make pcibios_penalize_isa_irq() as __weak function to simplify the code, this will prevent new platform from introducing dummy stub function for pcibios_penalize_isa_irq() too. Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> --- arch/alpha/include/asm/pci.h | 5 ----- arch/arm/include/asm/pci.h | 5 ----- arch/blackfin/include/asm/pci.h | 5 ----- arch/cris/include/asm/pci.h | 1 - arch/frv/include/asm/pci.h | 2 -- arch/frv/mb93090-mb00/pci-irq.c | 4 ---- arch/ia64/include/asm/pci.h | 6 ------ arch/microblaze/include/asm/pci.h | 5 ----- arch/mips/include/asm/pci.h | 5 ----- arch/mn10300/include/asm/pci.h | 1 - arch/mn10300/unit-asb2305/pci-irq.c | 4 ---- arch/parisc/include/asm/pci.h | 5 ----- arch/powerpc/include/asm/pci.h | 5 ----- arch/sh/include/asm/pci.h | 5 ----- arch/sparc/include/asm/pci_32.h | 5 ----- arch/sparc/include/asm/pci_64.h | 5 ----- arch/unicore32/include/asm/pci.h | 5 ----- arch/x86/include/asm/pci.h | 1 - arch/xtensa/include/asm/pci.h | 5 ----- drivers/pci/pci.c | 11 +++++++++++ include/linux/pci.h | 1 + 21 files changed, 12 insertions(+), 79 deletions(-)