diff options
author | Mike Rapoport <mike@compulab.co.il> | 2007-09-23 10:59:52 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-10-15 13:53:59 -0400 |
commit | a8fc0789558d81d2898b87473404b71b7f7cd0fc (patch) | |
tree | 90294fc683be115d5c7bae3c7aed5916d0ad7db7 /arch/arm/kernel/bios32.c | |
parent | 3696a8a426f8caebd97463e9b5cf9f06c1c36759 (diff) |
[ARM] 4577/1: ITE 8152 PCI bridge support
This patch provides driver for ITE 8152 PCI bridge.
Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/bios32.c')
-rw-r--r-- | arch/arm/kernel/bios32.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index a2dd930d11ef..e5747547b44c 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c | |||
@@ -279,6 +279,25 @@ static void __devinit pci_fixup_cy82c693(struct pci_dev *dev) | |||
279 | } | 279 | } |
280 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693); | 280 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693); |
281 | 281 | ||
282 | static void __init pci_fixup_it8152(struct pci_dev *dev) | ||
283 | { | ||
284 | int i; | ||
285 | /* fixup for ITE 8152 devices */ | ||
286 | /* FIXME: add defines for class 0x68000 and 0x80103 */ | ||
287 | if ((dev->class >> 8) == PCI_CLASS_BRIDGE_HOST || | ||
288 | dev->class == 0x68000 || | ||
289 | dev->class == 0x80103) { | ||
290 | for (i = 0; i < PCI_NUM_RESOURCES; i++) { | ||
291 | dev->resource[i].start = 0; | ||
292 | dev->resource[i].end = 0; | ||
293 | dev->resource[i].flags = 0; | ||
294 | } | ||
295 | } | ||
296 | } | ||
297 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8152, pci_fixup_it8152); | ||
298 | |||
299 | |||
300 | |||
282 | void __devinit pcibios_update_irq(struct pci_dev *dev, int irq) | 301 | void __devinit pcibios_update_irq(struct pci_dev *dev, int irq) |
283 | { | 302 | { |
284 | if (debug_pci) | 303 | if (debug_pci) |
@@ -292,9 +311,12 @@ void __devinit pcibios_update_irq(struct pci_dev *dev, int irq) | |||
292 | */ | 311 | */ |
293 | static inline int pdev_bad_for_parity(struct pci_dev *dev) | 312 | static inline int pdev_bad_for_parity(struct pci_dev *dev) |
294 | { | 313 | { |
295 | return (dev->vendor == PCI_VENDOR_ID_INTERG && | 314 | return ((dev->vendor == PCI_VENDOR_ID_INTERG && |
296 | (dev->device == PCI_DEVICE_ID_INTERG_2000 || | 315 | (dev->device == PCI_DEVICE_ID_INTERG_2000 || |
297 | dev->device == PCI_DEVICE_ID_INTERG_2010)); | 316 | dev->device == PCI_DEVICE_ID_INTERG_2010)) || |
317 | (dev->vendor == PCI_VENDOR_ID_ITE && | ||
318 | dev->device == PCI_DEVICE_ID_ITE_8152)); | ||
319 | |||
298 | } | 320 | } |
299 | 321 | ||
300 | /* | 322 | /* |