Re: [PATCH] PCI and I2C fixes for 2.6.8

Greg KH
2004-08-23T19:26:30Z

ChangeSet 1.1807.56.10, 2004/08/04 08:01:20-04:00, dsaxena@plexity.net

[5/3][ARM] PCI quirks update for ARM

Good idea. Following is ARM patch.

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>

arch/arm/kernel/bios32.c | 39 +++++++--------------------------------
1 files changed, 7 insertions(+), 32 deletions(-)

diff -Nru a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
--- a/arch/arm/kernel/bios32.c 2004-08-23 11:06:23 -07:00
+++ b/arch/arm/kernel/bios32.c 2004-08-23 11:06:23 -07:00
@@ -128,12 +128,14 @@
pci_write_config_word(dev, 0x44, 0xb000);
outb(0x08, 0x4d1);
}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_83C553, pci_fixup_83c553);

static void __devinit pci_fixup_unassign(struct pci_dev *dev)
{
dev->resource[0].end -= dev->resource[0].start;
dev->resource[0].start = 0;
}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940F, pci_fixup_unassign);

/*
* Prevent the PCI layer from seeing the resources allocated to this device
@@ -154,6 +156,7 @@
}
}
}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285, pci_fixup_dec21285);

/*
* Same as above. The PrPMC800 carrier board for the PrPMC1100
@@ -178,6 +181,7 @@
}
}
}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IXP4XX, pci_fixup_prpmc1100);

/*
* PCI IDE controllers use non-standard I/O port decoding, respect it.
@@ -198,6 +202,7 @@
}
}
}
+DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases);

/*
* Put the DEC21142 to sleep
@@ -206,6 +211,7 @@
{
pci_write_config_dword(dev, 0x40, 0x80000000);
}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, pci_fixup_dec21142);

/*
* The CY82C693 needs some rather major fixups to ensure that it does
@@ -271,38 +277,7 @@
pci_write_config_byte(dev, 0x45, 0x03);
}
}
-
-struct pci_fixup pcibios_fixups[] = {
- {
- PCI_FIXUP_HEADER,
- PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693,
- pci_fixup_cy82c693
- }, {
- PCI_FIXUP_HEADER,
- PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142,
- pci_fixup_dec21142
- }, {
- PCI_FIXUP_HEADER,
- PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285,
- pci_fixup_dec21285
- }, {
- PCI_FIXUP_HEADER,
- PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_83C553,
- pci_fixup_83c553
- }, {
- PCI_FIXUP_HEADER,
- PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940F,
- pci_fixup_unassign
- }, {
- PCI_FIXUP_HEADER,
- PCI_ANY_ID, PCI_ANY_ID,
- pci_fixup_ide_bases
- }, {
- PCI_FIXUP_HEADER,
- PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IXP4XX,
- pci_fixup_prpmc1100
- }, { 0 }
-};
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693);

void __devinit pcibios_update_irq(struct pci_dev *dev, int irq)
{