FRV: Enable the MB86943 PCI arbiter correctly
authorDavid Howells <dhowells@redhat.com>
Wed, 1 Aug 2007 18:04:51 +0000 (19:04 +0100)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 2 Aug 2007 03:48:17 +0000 (20:48 -0700)
Enable the MB93090 motherboard's MB86943 PCI arbiter correctly by assigning to
the register rather than comparing against it.  This is required to support
bus mastering.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/frv/mb93090-mb00/pci-vdk.c
include/asm-frv/mb86943a.h

index 0b581e3cf7c75602cfc122d9f58098620dccecdc..6d51f133fb23285793adc4bebb0f2adbb3c105bd 100644 (file)
@@ -400,7 +400,8 @@ int __init pcibios_init(void)
        __reg_MB86943_pci_sl_mem_base   = __region_CS2 + 0x08000000;
        mb();
 
-       *(volatile unsigned long *)(__region_CS2+0x01300014) == 1;
+       /* enable PCI arbitration */
+       __reg_MB86943_pci_arbiter       = MB86943_PCIARB_EN;
 
        ioport_resource.start   = (__reg_MB86943_sl_pci_io_base << 9) & 0xfffffc00;
        ioport_resource.end     = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff;
index b89fd0b56bb30d66abaa6f479781d2ca5998a6cd..e87ef924bfb484224792ab04eb80eb4a7fb52b91 100644 (file)
@@ -36,4 +36,7 @@
 #define __reg_MB86943_pci_sl_io_base   *(volatile uint32_t *) (__region_CS1 + 0x70)
 #define __reg_MB86943_pci_sl_mem_base  *(volatile uint32_t *) (__region_CS1 + 0x78)
 
+#define __reg_MB86943_pci_arbiter      *(volatile uint32_t *) (__region_CS2 + 0x01300014)
+#define MB86943_PCIARB_EN              0x00000001
+
 #endif /* _ASM_MB86943A_H */