]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ENGR00262815-1 MX6SL-Add support for SDMA buffers in IRAM
authorRanjani Vaidyanathan <ra5478@freescale.com>
Wed, 15 May 2013 21:45:39 +0000 (16:45 -0500)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:14:03 +0000 (14:14 +0200)
Store SDMA channel and buffer descriptors in IRAM for MX6SL.
This will improve the audio playback power when both the
SDMA and audio buffers are all in IRAM. The DDR will be
self-refresh for longer periods of time.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
arch/arm/configs/imx6s_defconfig
arch/arm/mach-mx6/Kconfig
arch/arm/mach-mx6/clock_mx6sl.c

index 17440cee691150abe0146b61443950c78f9e62eb..1cae0463855ed7fde7e742d533e20749cd327d67 100644 (file)
@@ -1,3 +1,4 @@
+
 #
 # Automatically generated make config: don't edit
 # Linux/arm 3.0.35 Kernel Configuration
@@ -316,6 +317,7 @@ CONFIG_MACH_MX6SL_EVK=y
 # CONFIG_MACH_MX6Q_SABRELITE is not set
 CONFIG_MACH_MX6Q_SABRESD=y
 # CONFIG_MACH_MX6Q_SABREAUTO is not set
+CONFIG_SDMA_IRAM=y
 
 #
 # MX6 Options:
index faf68abba594104fdf827ea7a268593e5d759f0f..e567f67fa901424737a76fdc259b1bf8f1c953c5 100644 (file)
@@ -339,4 +339,11 @@ config MX6_ENET_IRQ_TO_GPIO
           Enabling this will direct all the ENET interrupts to a board specific GPIO.
           This will allow the system to enter WAIT mode when ENET is active.
 
+config SDMA_IRAM
+       bool "Use Internal RAM for SDMA data structures"
+       depends on IMX_SDMA && SOC_IMX6SL
+       help
+         SDMA buffer or control structures are stored in the IRAM/OCRAM
+
+
 endif
index 65ea38f6d872510689ce2c5c1e731f2e2fa4ba86..fc42925d2a426cb71159a185682062fdd2d16302 100755 (executable)
@@ -1701,6 +1701,7 @@ static struct clk mmdc_ch1_axi_clk[] = {
        .secondary = &tzasc2_clk,
        },
 };
+
 #if defined(CONFIG_SDMA_IRAM) || defined(CONFIG_SND_MXC_SOC_IRAM)
 static struct clk ocram_clk = {
        __INIT_CLK_DEBUG(ocram_clk)
@@ -1712,6 +1713,7 @@ static struct clk ocram_clk = {
        .disable = _clk_disable_inwait,
 };
 #endif
+
 static unsigned long _clk_ipg_perclk_get_rate(struct clk *clk)
 {
        u32 reg, div;