On Sun, Jun 3, 2012 at 12:48 PM, Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> wrote: > The fixups are executed once the pci-device is found which is during > boot process so __init seems fine as long as the platform does not > support hotplug. > However it is possible to remove the PCI bus at run time and have it > rediscovered again via "echo 1 > /sys/bus/pci/rescan" and this will call > the fixups again. > > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Signed-off-by: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> > --- > arch/mips/mti-malta/malta-pci.c | 2 +- > arch/mips/pci/fixup-fuloong2e.c | 12 ++++++------ > arch/mips/pci/fixup-lemote2f.c | 12 ++++++------ > arch/mips/pci/fixup-malta.c | 4 ++-- > arch/mips/pci/fixup-sb1250.c | 6 +++--- > arch/mips/pci/ops-tx4927.c | 2 +- > arch/mips/pci/pci-ip27.c | 2 +- > arch/mips/txx9/generic/pci.c | 2 +- > 8 files changed, 21 insertions(+), 21 deletions(-) > > diff --git a/arch/mips/mti-malta/malta-pci.c b/arch/mips/mti-malta/malta-pci.c > index bf80921..b663402 100644 > --- a/arch/mips/mti-malta/malta-pci.c > +++ b/arch/mips/mti-malta/malta-pci.c > @@ -253,7 +253,7 @@ void __init mips_pcibios_init(void) > } > > /* Enable PCI 2.1 compatibility in PIIX4 */ > -static void __init quirk_dlcsetup(struct pci_dev *dev) > +static void __devinit quirk_dlcsetup(struct pci_dev *dev) > { > u8 odlc, ndlc; > (void) pci_read_config_byte(dev, 0x82, &odlc); > diff --git a/arch/mips/pci/fixup-fuloong2e.c b/arch/mips/pci/fixup-fuloong2e.c > index d5d4c01..0857ab8 100644 > --- a/arch/mips/pci/fixup-fuloong2e.c > +++ b/arch/mips/pci/fixup-fuloong2e.c > @@ -48,7 +48,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev) > return 0; > } > > -static void __init loongson2e_nec_fixup(struct pci_dev *pdev) > +static void __devinit loongson2e_nec_fixup(struct pci_dev *pdev) > { > unsigned int val; > > @@ -60,7 +60,7 @@ static void __init loongson2e_nec_fixup(struct pci_dev *pdev) > pci_write_config_dword(pdev, 0xe4, 1 << 5); > } > > -static void __init loongson2e_686b_func0_fixup(struct pci_dev *pdev) > +static void __devinit loongson2e_686b_func0_fixup(struct pci_dev *pdev) > { > unsigned char c; > > @@ -135,7 +135,7 @@ static void __init loongson2e_686b_func0_fixup(struct pci_dev *pdev) > printk(KERN_INFO"via686b fix: ISA bridge done\n"); > } > > -static void __init loongson2e_686b_func1_fixup(struct pci_dev *pdev) > +static void __devinit loongson2e_686b_func1_fixup(struct pci_dev *pdev) > { > printk(KERN_INFO"via686b fix: IDE\n"); > > @@ -168,19 +168,19 @@ static void __init loongson2e_686b_func1_fixup(struct pci_dev *pdev) > printk(KERN_INFO"via686b fix: IDE done\n"); > } > > -static void __init loongson2e_686b_func2_fixup(struct pci_dev *pdev) > +static void __devinit loongson2e_686b_func2_fixup(struct pci_dev *pdev) > { > /* irq routing */ > pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 10); > } > > -static void __init loongson2e_686b_func3_fixup(struct pci_dev *pdev) > +static void __devinit loongson2e_686b_func3_fixup(struct pci_dev *pdev) > { > /* irq routing */ > pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 11); > } > > -static void __init loongson2e_686b_func5_fixup(struct pci_dev *pdev) > +static void __devinit loongson2e_686b_func5_fixup(struct pci_dev *pdev) > { > unsigned int val; > unsigned char c; > diff --git a/arch/mips/pci/fixup-lemote2f.c b/arch/mips/pci/fixup-lemote2f.c > index 4b9768d..a7b917dcf 100644 > --- a/arch/mips/pci/fixup-lemote2f.c > +++ b/arch/mips/pci/fixup-lemote2f.c > @@ -96,21 +96,21 @@ int pcibios_plat_dev_init(struct pci_dev *dev) > } > > /* CS5536 SPEC. fixup */ > -static void __init loongson_cs5536_isa_fixup(struct pci_dev *pdev) > +static void __devinit loongson_cs5536_isa_fixup(struct pci_dev *pdev) > { > /* the uart1 and uart2 interrupt in PIC is enabled as default */ > pci_write_config_dword(pdev, PCI_UART1_INT_REG, 1); > pci_write_config_dword(pdev, PCI_UART2_INT_REG, 1); > } > > -static void __init loongson_cs5536_ide_fixup(struct pci_dev *pdev) > +static void __devinit loongson_cs5536_ide_fixup(struct pci_dev *pdev) > { > /* setting the mutex pin as IDE function */ > pci_write_config_dword(pdev, PCI_IDE_CFG_REG, > CS5536_IDE_FLASH_SIGNATURE); > } > > -static void __init loongson_cs5536_acc_fixup(struct pci_dev *pdev) > +static void __devinit loongson_cs5536_acc_fixup(struct pci_dev *pdev) > { > /* enable the AUDIO interrupt in PIC */ > pci_write_config_dword(pdev, PCI_ACC_INT_REG, 1); > @@ -118,14 +118,14 @@ static void __init loongson_cs5536_acc_fixup(struct pci_dev *pdev) > pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0xc0); > } > > -static void __init loongson_cs5536_ohci_fixup(struct pci_dev *pdev) > +static void __devinit loongson_cs5536_ohci_fixup(struct pci_dev *pdev) > { > /* enable the OHCI interrupt in PIC */ > /* THE OHCI, EHCI, UDC, OTG are shared with interrupt in PIC */ > pci_write_config_dword(pdev, PCI_OHCI_INT_REG, 1); > } > > -static void __init loongson_cs5536_ehci_fixup(struct pci_dev *pdev) > +static void __devinit loongson_cs5536_ehci_fixup(struct pci_dev *pdev) > { > u32 hi, lo; > > @@ -137,7 +137,7 @@ static void __init loongson_cs5536_ehci_fixup(struct pci_dev *pdev) > pci_write_config_dword(pdev, PCI_EHCI_FLADJ_REG, 0x2000); > } > > -static void __init loongson_nec_fixup(struct pci_dev *pdev) > +static void __devinit loongson_nec_fixup(struct pci_dev *pdev) > { > unsigned int val; > > diff --git a/arch/mips/pci/fixup-malta.c b/arch/mips/pci/fixup-malta.c > index 0f48498..59cfbc8 100644 > --- a/arch/mips/pci/fixup-malta.c > +++ b/arch/mips/pci/fixup-malta.c > @@ -49,7 +49,7 @@ int pcibios_plat_dev_init(struct pci_dev *dev) > return 0; > } > > -static void __init malta_piix_func0_fixup(struct pci_dev *pdev) > +static void __devinit malta_piix_func0_fixup(struct pci_dev *pdev) > { > unsigned char reg_val; > static int piixirqmap[16] __initdata = { /* PIIX PIRQC[A:D] irq mappings */ Doesn't the above line also need changed to __devinitdata if the function itself is being changed from __init to __devinit? > @@ -83,7 +83,7 @@ static void __init malta_piix_func0_fixup(struct pci_dev *pdev) > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0, > malta_piix_func0_fixup); > > -static void __init malta_piix_func1_fixup(struct pci_dev *pdev) > +static void __devinit malta_piix_func1_fixup(struct pci_dev *pdev) > { > unsigned char reg_val; > > diff --git a/arch/mips/pci/fixup-sb1250.c b/arch/mips/pci/fixup-sb1250.c > index f0bb914..d02900a 100644 > --- a/arch/mips/pci/fixup-sb1250.c > +++ b/arch/mips/pci/fixup-sb1250.c > @@ -15,7 +15,7 @@ > * Set the BCM1250, etc. PCI host bridge's TRDY timeout > * to the finite max. > */ > -static void __init quirk_sb1250_pci(struct pci_dev *dev) > +static void __devinit quirk_sb1250_pci(struct pci_dev *dev) > { > pci_write_config_byte(dev, 0x40, 0xff); > } > @@ -25,7 +25,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SIBYTE, PCI_DEVICE_ID_BCM1250_PCI, > /* > * The BCM1250, etc. PCI/HT bridge reports as a host bridge. > */ > -static void __init quirk_sb1250_ht(struct pci_dev *dev) > +static void __devinit quirk_sb1250_ht(struct pci_dev *dev) > { > dev->class = PCI_CLASS_BRIDGE_PCI << 8; > } > @@ -35,7 +35,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SIBYTE, PCI_DEVICE_ID_BCM1250_HT, > /* > * Set the SP1011 HT/PCI bridge's TRDY timeout to the finite max. > */ > -static void __init quirk_sp1011(struct pci_dev *dev) > +static void __devinit quirk_sp1011(struct pci_dev *dev) > { > pci_write_config_byte(dev, 0x64, 0xff); > } > diff --git a/arch/mips/pci/ops-tx4927.c b/arch/mips/pci/ops-tx4927.c > index a1e7e6d..bc13e29 100644 > --- a/arch/mips/pci/ops-tx4927.c > +++ b/arch/mips/pci/ops-tx4927.c > @@ -495,7 +495,7 @@ irqreturn_t tx4927_pcierr_interrupt(int irq, void *dev_id) > } > > #ifdef CONFIG_TOSHIBA_FPCIB0 > -static void __init tx4927_quirk_slc90e66_bridge(struct pci_dev *dev) > +static void __devinit tx4927_quirk_slc90e66_bridge(struct pci_dev *dev) > { > struct tx4927_pcic_reg __iomem *pcicptr = pci_bus_to_pcicptr(dev->bus); > > diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c > index 0fbe4c0..fdc2444 100644 > --- a/arch/mips/pci/pci-ip27.c > +++ b/arch/mips/pci/pci-ip27.c > @@ -212,7 +212,7 @@ static inline void pci_enable_swapping(struct pci_dev *dev) > bridge->b_widget.w_tflush; /* Flush */ > } > > -static void __init pci_fixup_ioc3(struct pci_dev *d) > +static void __devinit pci_fixup_ioc3(struct pci_dev *d) > { > pci_disable_swapping(d); > } > diff --git a/arch/mips/txx9/generic/pci.c b/arch/mips/txx9/generic/pci.c > index 682efb0..64eb71b 100644 > --- a/arch/mips/txx9/generic/pci.c > +++ b/arch/mips/txx9/generic/pci.c > @@ -269,7 +269,7 @@ txx9_i8259_irq_setup(int irq) > return err; > } > > -static void __init quirk_slc90e66_bridge(struct pci_dev *dev) > +static void __devinit quirk_slc90e66_bridge(struct pci_dev *dev) > { > int irq; /* PCI/ISA Bridge interrupt */ > u8 reg_64; > -- > 1.7.10 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html