diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2006-04-04 16:10:34 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2006-04-04 16:10:34 -0500 |
commit | 12df7556705aae97f24a397377e17898700d7192 (patch) | |
tree | 5adc6b1c2aa940263ee2e88fc6645918533da539 /arch/arm/mach-ixp23xx/pci.c | |
parent | 34ddf733c415a8e336c996a4303d9f336e0c81b5 (diff) | |
parent | 6246b6128bbe34d0752f119cf7c5111c85fe481d (diff) | |
download | op-kernel-dev-12df7556705aae97f24a397377e17898700d7192.zip op-kernel-dev-12df7556705aae97f24a397377e17898700d7192.tar.gz |
Merge branch 'master'
Diffstat (limited to 'arch/arm/mach-ixp23xx/pci.c')
-rw-r--r-- | arch/arm/mach-ixp23xx/pci.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/arch/arm/mach-ixp23xx/pci.c b/arch/arm/mach-ixp23xx/pci.c index 5330ad7..ac72f94 100644 --- a/arch/arm/mach-ixp23xx/pci.c +++ b/arch/arm/mach-ixp23xx/pci.c @@ -201,7 +201,7 @@ int clear_master_aborts(void) return 0; } -void __init ixp23xx_pci_preinit(void) +static void __init ixp23xx_pci_common_init(void) { #ifdef __ARMEB__ *IXP23XX_PCI_CONTROL |= 0x20000; /* set I/O swapping */ @@ -219,7 +219,18 @@ void __init ixp23xx_pci_preinit(void) *IXP23XX_PCI_CPP_ADDR_BITS &= ~(1 << 1); } else { *IXP23XX_PCI_CPP_ADDR_BITS |= (1 << 1); + + /* + * Enable coherency on A2 silicon. + */ + if (arch_is_coherent()) + *IXP23XX_CPP2XSI_CURR_XFER_REG3 &= ~IXP23XX_CPP2XSI_COH_OFF; } +} + +void __init ixp23xx_pci_preinit(void) +{ + ixp23xx_pci_common_init(); hook_fault_code(16+6, ixp23xx_pci_abort_handler, SIGBUS, "PCI config cycle to non-existent device"); @@ -273,3 +284,8 @@ int ixp23xx_pci_setup(int nr, struct pci_sys_data *sys) return 1; } + +void ixp23xx_pci_slave_init(void) +{ + ixp23xx_pci_common_init(); +} |