diff options
Diffstat (limited to 'arch/arm/mach-ixp4xx/common-pci.c')
| -rw-r--r-- | arch/arm/mach-ixp4xx/common-pci.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c index 192538a04575..d816c51320c7 100644 --- a/arch/arm/mach-ixp4xx/common-pci.c +++ b/arch/arm/mach-ixp4xx/common-pci.c | |||
| @@ -25,9 +25,10 @@ | |||
| 25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
| 26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
| 27 | #include <linux/device.h> | 27 | #include <linux/device.h> |
| 28 | #include <linux/io.h> | ||
| 28 | #include <asm/dma-mapping.h> | 29 | #include <asm/dma-mapping.h> |
| 29 | 30 | ||
| 30 | #include <asm/io.h> | 31 | #include <asm/cputype.h> |
| 31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
| 32 | #include <asm/sizes.h> | 33 | #include <asm/sizes.h> |
| 33 | #include <asm/system.h> | 34 | #include <asm/system.h> |
| @@ -366,15 +367,13 @@ void __init ixp4xx_adjust_zones(int node, unsigned long *zone_size, | |||
| 366 | 367 | ||
| 367 | void __init ixp4xx_pci_preinit(void) | 368 | void __init ixp4xx_pci_preinit(void) |
| 368 | { | 369 | { |
| 369 | unsigned long processor_id; | 370 | unsigned long cpuid = read_cpuid_id(); |
| 370 | |||
| 371 | asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :); | ||
| 372 | 371 | ||
| 373 | /* | 372 | /* |
| 374 | * Determine which PCI read method to use. | 373 | * Determine which PCI read method to use. |
| 375 | * Rev 0 IXP425 requires workaround. | 374 | * Rev 0 IXP425 requires workaround. |
| 376 | */ | 375 | */ |
| 377 | if (!(processor_id & 0xf) && cpu_is_ixp42x()) { | 376 | if (!(cpuid & 0xf) && cpu_is_ixp42x()) { |
| 378 | printk("PCI: IXP42x A0 silicon detected - " | 377 | printk("PCI: IXP42x A0 silicon detected - " |
| 379 | "PCI Non-Prefetch Workaround Enabled\n"); | 378 | "PCI Non-Prefetch Workaround Enabled\n"); |
| 380 | ixp4xx_pci_read = ixp4xx_pci_read_errata; | 379 | ixp4xx_pci_read = ixp4xx_pci_read_errata; |
