Commit 8eba3651 authored by Manuel Lauss's avatar Manuel Lauss Committed by Ralf Baechle

MIPS: PCI: fix pcibios_map_irq section mismatch

Drop  the __init from pcibios_map_irq() to make this section mis-
match go away:

WARNING: vmlinux.o(.text+0x56acd4): Section mismatch in reference from the function pcibios_scanbus() to the function .init.text:pcibios_map_irq()
The function pcibios_scanbus() references
the function __init pcibios_map_irq().
This is often because pcibios_scanbus lacks a __init
annotation or the annotation of pcibios_map_irq is wrong.

Run-Tested only on Alchemy.
Signed-off-by: default avatarManuel Lauss <manuel.lauss@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/17267/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent c22c8043
...@@ -38,7 +38,7 @@ static char irq_tab_capcella[][5] __initdata = { ...@@ -38,7 +38,7 @@ static char irq_tab_capcella[][5] __initdata = {
[14] = { -1, INTA, INTB, INTC, INTD } [14] = { -1, INTA, INTB, INTC, INTD }
}; };
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
return irq_tab_capcella[slot][pin]; return irq_tab_capcella[slot][pin];
} }
......
...@@ -174,7 +174,7 @@ static char irq_tab_raq2[] __initdata = { ...@@ -174,7 +174,7 @@ static char irq_tab_raq2[] __initdata = {
[COBALT_PCICONF_ETH1] = ETH1_IRQ [COBALT_PCICONF_ETH1] = ETH1_IRQ
}; };
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
if (cobalt_board_id <= COBALT_BRD_ID_QUBE1) if (cobalt_board_id <= COBALT_BRD_ID_QUBE1)
return irq_tab_qube1[slot]; return irq_tab_qube1[slot];
......
...@@ -85,7 +85,7 @@ static void emma2rh_pci_host_fixup(struct pci_dev *dev) ...@@ -85,7 +85,7 @@ static void emma2rh_pci_host_fixup(struct pci_dev *dev)
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_EMMA2RH, DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_EMMA2RH,
emma2rh_pci_host_fixup); emma2rh_pci_host_fixup);
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
return irq_map[slot][pin]; return irq_map[slot][pin];
} }
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
/* South bridge slot number is set by the pci probe process */ /* South bridge slot number is set by the pci probe process */
static u8 sb_slot = 5; static u8 sb_slot = 5;
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
int irq = 0; int irq = 0;
......
...@@ -39,7 +39,7 @@ static char irq_tab_mace[][5] __initdata = { ...@@ -39,7 +39,7 @@ static char irq_tab_mace[][5] __initdata = {
* irqs. I suppose a device without a pin A will thank us for doing it * irqs. I suppose a device without a pin A will thank us for doing it
* right if there exists such a broken piece of crap. * right if there exists such a broken piece of crap.
*/ */
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
return irq_tab_mace[slot][pin]; return irq_tab_mace[slot][pin];
} }
......
...@@ -23,7 +23,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev) ...@@ -23,7 +23,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev)
return 0; return 0;
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
return of_irq_parse_and_map_pci(dev, slot, pin); return of_irq_parse_and_map_pci(dev, slot, pin);
} }
...@@ -51,7 +51,7 @@ static char irq_tab[][5] __initdata = { ...@@ -51,7 +51,7 @@ static char irq_tab[][5] __initdata = {
{0, 0, 0, 0, 0}, /* 27: Unused */ {0, 0, 0, 0, 0}, /* 27: Unused */
}; };
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
int virq; int virq;
......
...@@ -32,7 +32,7 @@ static void print_fixup_info(const struct pci_dev *pdev) ...@@ -32,7 +32,7 @@ static void print_fixup_info(const struct pci_dev *pdev)
pdev->vendor, pdev->device, pdev->irq); pdev->vendor, pdev->device, pdev->irq);
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
print_fixup_info(dev); print_fixup_info(dev);
return dev->irq; return dev->irq;
......
...@@ -38,7 +38,7 @@ static char irq_tab[][5] __initdata = { ...@@ -38,7 +38,7 @@ static char irq_tab[][5] __initdata = {
{0, PCID, PCIA, PCIB, PCIC } /* 21: PCI Slot 4 */ {0, PCID, PCIA, PCIB, PCIC } /* 21: PCI Slot 4 */
}; };
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
int virq; int virq;
virq = irq_tab[slot][pin]; virq = irq_tab[slot][pin];
......
...@@ -34,7 +34,7 @@ static const int irq_tab_mpc30x[] __initconst = { ...@@ -34,7 +34,7 @@ static const int irq_tab_mpc30x[] __initconst = {
[29] = MQ200_IRQ, [29] = MQ200_IRQ,
}; };
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
if (slot == 30) if (slot == 30)
return internal_func_irqs[PCI_FUNC(dev->devfn)]; return internal_func_irqs[PCI_FUNC(dev->devfn)];
......
...@@ -202,7 +202,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev) ...@@ -202,7 +202,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev)
* RETURNS: IRQ number * RETURNS: IRQ number
* *
****************************************************************************/ ****************************************************************************/
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
#if !defined(CONFIG_PMC_MSP7120_GW) && !defined(CONFIG_PMC_MSP7120_EVAL) #if !defined(CONFIG_PMC_MSP7120_GW) && !defined(CONFIG_PMC_MSP7120_EVAL)
printk(KERN_WARNING "PCI: unknown board, no PCI IRQs assigned.\n"); printk(KERN_WARNING "PCI: unknown board, no PCI IRQs assigned.\n");
......
...@@ -130,7 +130,7 @@ static inline int is_rm300_revd(void) ...@@ -130,7 +130,7 @@ static inline int is_rm300_revd(void)
return (csmsr & 0xa0) == 0x20; return (csmsr & 0xa0) == 0x20;
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
switch (sni_brd_type) { switch (sni_brd_type) {
case SNI_BRD_PCI_TOWER_CPLUS: case SNI_BRD_PCI_TOWER_CPLUS:
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include <asm/vr41xx/tb0219.h> #include <asm/vr41xx/tb0219.h>
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
int irq = -1; int irq = -1;
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include <asm/vr41xx/giu.h> #include <asm/vr41xx/giu.h>
#include <asm/vr41xx/tb0226.h> #include <asm/vr41xx/tb0226.h>
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
int irq = -1; int irq = -1;
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#include <asm/vr41xx/tb0287.h> #include <asm/vr41xx/tb0287.h>
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
unsigned char bus; unsigned char bus;
int irq = -1; int irq = -1;
......
...@@ -522,7 +522,7 @@ static int __init alchemy_pci_init(void) ...@@ -522,7 +522,7 @@ static int __init alchemy_pci_init(void)
arch_initcall(alchemy_pci_init); arch_initcall(alchemy_pci_init);
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
struct alchemy_pci_context *ctx = dev->sysdata; struct alchemy_pci_context *ctx = dev->sysdata;
if (ctx && ctx->board_map_irq) if (ctx && ctx->board_map_irq)
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include <linux/bcma/bcma.h> #include <linux/bcma/bcma.h>
#include <bcm47xx.h> #include <bcm47xx.h>
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
return 0; return 0;
} }
......
...@@ -61,7 +61,7 @@ arch_initcall(lasat_pci_setup); ...@@ -61,7 +61,7 @@ arch_initcall(lasat_pci_setup);
#define LASAT_IRQ_PCIC (LASAT_IRQ_BASE + 7) #define LASAT_IRQ_PCIC (LASAT_IRQ_BASE + 7)
#define LASAT_IRQ_PCID (LASAT_IRQ_BASE + 8) #define LASAT_IRQ_PCID (LASAT_IRQ_BASE + 8)
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
switch (slot) { switch (slot) {
case 1: case 1:
......
...@@ -361,7 +361,7 @@ static int mt7620_pci_probe(struct platform_device *pdev) ...@@ -361,7 +361,7 @@ static int mt7620_pci_probe(struct platform_device *pdev)
return 0; return 0;
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
u16 cmd; u16 cmd;
u32 val; u32 val;
......
...@@ -59,7 +59,7 @@ union octeon_pci_address { ...@@ -59,7 +59,7 @@ union octeon_pci_address {
} s; } s;
}; };
int __initconst (*octeon_pcibios_map_irq)(const struct pci_dev *dev, int (*octeon_pcibios_map_irq)(const struct pci_dev *dev,
u8 slot, u8 pin); u8 slot, u8 pin);
enum octeon_dma_bar_type octeon_dma_bar_type = OCTEON_DMA_BAR_TYPE_INVALID; enum octeon_dma_bar_type octeon_dma_bar_type = OCTEON_DMA_BAR_TYPE_INVALID;
...@@ -74,7 +74,7 @@ enum octeon_dma_bar_type octeon_dma_bar_type = OCTEON_DMA_BAR_TYPE_INVALID; ...@@ -74,7 +74,7 @@ enum octeon_dma_bar_type octeon_dma_bar_type = OCTEON_DMA_BAR_TYPE_INVALID;
* as it goes through each bridge. * as it goes through each bridge.
* Returns Interrupt number for the device * Returns Interrupt number for the device
*/ */
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
if (octeon_pcibios_map_irq) if (octeon_pcibios_map_irq)
return octeon_pcibios_map_irq(dev, slot, pin); return octeon_pcibios_map_irq(dev, slot, pin);
......
...@@ -181,7 +181,7 @@ static inline void rt2880_pci_write_u32(unsigned long reg, u32 val) ...@@ -181,7 +181,7 @@ static inline void rt2880_pci_write_u32(unsigned long reg, u32 val)
spin_unlock_irqrestore(&rt2880_pci_lock, flags); spin_unlock_irqrestore(&rt2880_pci_lock, flags);
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
u16 cmd; u16 cmd;
int irq = -1; int irq = -1;
......
...@@ -564,7 +564,7 @@ static int rt3883_pci_probe(struct platform_device *pdev) ...@@ -564,7 +564,7 @@ static int rt3883_pci_probe(struct platform_device *pdev)
return err; return err;
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
return of_irq_parse_and_map_pci(dev, slot, pin); return of_irq_parse_and_map_pci(dev, slot, pin);
} }
......
...@@ -205,7 +205,7 @@ int xlp_socdev_to_node(const struct pci_dev *lnkdev) ...@@ -205,7 +205,7 @@ int xlp_socdev_to_node(const struct pci_dev *lnkdev)
return PCI_SLOT(lnkdev->devfn) / 8; return PCI_SLOT(lnkdev->devfn) / 8;
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
struct pci_dev *lnkdev; struct pci_dev *lnkdev;
int lnkfunc, node; int lnkfunc, node;
......
...@@ -315,7 +315,7 @@ static void xls_pcie_ack_b(struct irq_data *d) ...@@ -315,7 +315,7 @@ static void xls_pcie_ack_b(struct irq_data *d)
} }
} }
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{ {
return get_irq_vector(dev); return get_irq_vector(dev);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment