aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ks8695/pci.c
diff options
context:
space:
mode:
authorYegor Yefremov <yegorslists@googlemail.com>2009-07-09 03:48:03 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-07-30 05:51:36 -0400
commit320145fac91955ee35a6af7e1c2b42388a17b3d8 (patch)
tree71777358f4c4f0b0a090c09a1753d0ed06726f2e /arch/arm/mach-ks8695/pci.c
parent0a52ac8d181e938d640c2da70cad6d1301abe775 (diff)
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>
Diffstat (limited to 'arch/arm/mach-ks8695/pci.c')
-rw-r--r--arch/arm/mach-ks8695/pci.c3
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
245 245
246static void __init ks8695_pci_preinit(void) 246static void __init ks8695_pci_preinit(void)
247{ 247{
248 /* make software reset to avoid freeze if PCI bus was messed up */
249 __raw_writel(0x80000000, KS8695_PCI_VA + KS8695_PBCS);
250
248 /* stage 1 initialization, subid, subdevice = 0x0001 */ 251 /* stage 1 initialization, subid, subdevice = 0x0001 */
249 __raw_writel(0x00010001, KS8695_PCI_VA + KS8695_CRCSID); 252 __raw_writel(0x00010001, KS8695_PCI_VA + KS8695_CRCSID);
250 253