ARM: 5597/1: [PCI] reset all internal hardware prior PCI initialization
authorYegor Yefremov <yegorslists@googlemail.com>
Thu, 9 Jul 2009 07:48:03 +0000 (08:48 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 30 Jul 2009 09:51:36 +0000 (10:51 +0100)
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>
arch/arm/mach-ks8695/pci.c

index f5ebcc0fcab9f9c36eaaf5dcbcc6b350393fbb2a..78499667eb7b3241c3a5c1dfbbc69df4840a3991 100644 (file)
@@ -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);