diff options
author | 2009-07-09 08:48:03 +0100 | |
---|---|---|
committer | 2009-07-30 10:51:36 +0100 | |
commit | 320145fac91955ee35a6af7e1c2b42388a17b3d8 (patch) | |
tree | 71777358f4c4f0b0a090c09a1753d0ed06726f2e | |
parent | Merge branch 's3c-fixes-rc4' of git://aeryn.fluff.org.uk/bjdooks/linux (diff) | |
download | linux-320145fac91955ee35a6af7e1c2b42388a17b3d8.tar.gz linux-320145fac91955ee35a6af7e1c2b42388a17b3d8.tar.bz2 linux-320145fac91955ee35a6af7e1c2b42388a17b3d8.zip |
ARM: 5597/1: [PCI] reset all internal hardware prior PCI initialization
Make software reset to avoid freeze if PCI bus was messed up
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/mach-ks8695/pci.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-ks8695/pci.c b/arch/arm/mach-ks8695/pci.c index f5ebcc0fcab9..78499667eb7b 100644 --- a/arch/arm/mach-ks8695/pci.c +++ b/arch/arm/mach-ks8695/pci.c @@ -245,6 +245,9 @@ static int ks8695_pci_fault(unsigned long addr, unsigned int fsr, struct pt_regs static void __init ks8695_pci_preinit(void) { + /* make software reset to avoid freeze if PCI bus was messed up */ + __raw_writel(0x80000000, KS8695_PCI_VA + KS8695_PBCS); + /* stage 1 initialization, subid, subdevice = 0x0001 */ __raw_writel(0x00010001, KS8695_PCI_VA + KS8695_CRCSID); |