[ARM] 3206/1: Modifications to the bus arbiter controller for the Intel PXA27x
authorJared Hulbert <jaredeh@gmail.com>
Thu, 5 Jan 2006 21:12:26 +0000 (21:12 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 5 Jan 2006 21:12:26 +0000 (21:12 +0000)
Patch from Jared Hulbert

The following patch changes the bus arbiter controller settings
for the Intel PXA27x Application Processor Family.  Up to 5%
better video performance.  It parks the bus on the core while not
in use and sets the arbitration for other bus items.  The patch
only applies changes to the Intel Mainstone development platform.

This patch is not compatible with preproduction Intel PXA27x
silicon.

This patch is based on the Intel Linux Preview Kit released to the
public on 25 Feb. 2005 found at
ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/xscale/mainstone/02-25-2005/.

Signed-off-by: Justin A Treon <justin_treon@yahoo.com>
Signed-off-by: Jared Hulbert <jaredeh@gmail.com>
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-pxa/mainstone.c
include/asm-arm/arch-pxa/pxa-regs.h

index 07892f4012d8a2cd5d2bbddddc9ab203d78207f0..fe7404318aa845d2cb253a0386c9df56bd74b065 100644 (file)
@@ -407,6 +407,12 @@ static void __init mainstone_init(void)
        printk(KERN_NOTICE "Mainstone configured to boot from %s\n",
               mst_flash_data[0].name);
 
+       /* system bus arbiter setting
+        * - Core_Park
+        * - LCD_wt:DMA_wt:CORE_Wt = 2:3:4
+        */
+       ARB_CNTRL = ARB_CORE_PARK | 0x234;
+
        /*
         * On Mainstone, we route AC97_SYSCLK via GPIO45 to
         * the audio daughter card
index a75a2470f4f59a1e2f23bc5d9e8a5b7707b016f9..dae138b9cac5033470efe6284a3fa6d51b34db1b 100644 (file)
 
 #ifdef CONFIG_PXA27x
 
+#define ARB_CNTRL      __REG(0x48000048)  /* Arbiter Control Register */
+
+#define ARB_DMA_SLV_PARK       (1<<31)    /* Be parked with DMA slave when idle */
+#define ARB_CI_PARK            (1<<30)    /* Be parked with Camera Interface when idle */
+#define ARB_EX_MEM_PARK        (1<<29)    /* Be parked with external MEMC when idle */
+#define ARB_INT_MEM_PARK       (1<<28)    /* Be parked with internal MEMC when idle */
+#define ARB_USB_PARK           (1<<27)    /* Be parked with USB when idle */
+#define ARB_LCD_PARK           (1<<26)    /* Be parked with LCD when idle */
+#define ARB_DMA_PARK           (1<<25)    /* Be parked with DMA when idle */
+#define ARB_CORE_PARK          (1<<24)    /* Be parked with core when idle */
+#define ARB_LOCK_FLAG          (1<<23)    /* Only Locking masters gain access to the bus */
+
 /*
  * Keypad
  */