All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration
@ 2011-06-22 14:41 Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 1/6] ARM: mxc: imx-sdma device gets 16K iosize than 4K Shawn Guo
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Shawn Guo @ 2011-06-22 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

The patch set makes some small fixes on imx-dma device registration
code, and then cleans up the code by breaking the concentrated
imx-dma device registration into soc specific setup function.
This is basically what gpio-mxc device registration is doing.
In this way, we can avoid the churn of "#ifdef" and the cpu_is_mx
checking on such a long list of soc family, which makes no sense,
considering more soc supports need to be added and we need to
support single image for multiple socs in the long run.

Changes since v1:
 * Drop the patch #5 in v1 and add another one to pass firmware
   name as a string via platform data
 * Rebase it on Sascha's tree

Shawn Guo (6):
      ARM: mxc: imx-sdma device gets 16K iosize than 4K
      ARM: mxc: sdma on imx25 is a V2 block
      ARM: mxc: change imx-dma default to_version to 1
      ARM: mxc: imx-dma on imx25 has no other TO version but TO1
      ARM: mxc: clean up imx-dma device registration
      dmaengine: imx-sdma: pass sdma firmware name via platform data

 arch/arm/mach-imx/mm-imx21.c                    |    3 +
 arch/arm/mach-imx/mm-imx25.c                    |   25 +++
 arch/arm/mach-imx/mm-imx27.c                    |    3 +
 arch/arm/mach-imx/mm-imx31.c                    |   27 +++
 arch/arm/mach-imx/mm-imx35.c                    |   47 +++++
 arch/arm/mach-mx5/mm.c                          |   44 +++++
 arch/arm/plat-mxc/devices.c                     |   16 ++-
 arch/arm/plat-mxc/devices/platform-imx-dma.c    |  232 ++---------------------
 arch/arm/plat-mxc/include/mach/devices-common.h |    6 +
 arch/arm/plat-mxc/include/mach/sdma.h           |    6 +-
 drivers/dma/imx-sdma.c                          |    6 +-
 11 files changed, 188 insertions(+), 227 deletions(-)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/6] ARM: mxc: imx-sdma device gets 16K iosize than 4K
  2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
@ 2011-06-22 14:41 ` Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 2/6] ARM: mxc: sdma on imx25 is a V2 block Shawn Guo
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Shawn Guo @ 2011-06-22 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

The sdma on all imx soc gets 16K IO space not 4K.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
---
 arch/arm/plat-mxc/devices/platform-imx-dma.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index 4e7fbc2..1c737db 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -62,7 +62,7 @@ static struct platform_device __init __maybe_unused *imx_add_imx_sdma(
 	struct resource res[] = {
 		{
 			.start = data->iobase,
-			.end = data->iobase + SZ_4K - 1,
+			.end = data->iobase + SZ_16K - 1,
 			.flags = IORESOURCE_MEM,
 		}, {
 			.start = data->irq,
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/6] ARM: mxc: sdma on imx25 is a V2 block
  2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 1/6] ARM: mxc: imx-sdma device gets 16K iosize than 4K Shawn Guo
@ 2011-06-22 14:41 ` Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 3/6] ARM: mxc: change imx-dma default to_version to 1 Shawn Guo
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Shawn Guo @ 2011-06-22 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

The sdma on soc imx25 is not a V1 but V2 block.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
---
 arch/arm/plat-mxc/devices/platform-imx-dma.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index 1c737db..1fc3522 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -33,7 +33,7 @@ struct imx_imx_sdma_data {
 
 #ifdef CONFIG_SOC_IMX25
 struct imx_imx_sdma_data imx25_imx_sdma_data __initconst =
-	imx_imx_sdma_data_entry_single(MX25, 1, "imx25", 0);
+	imx_imx_sdma_data_entry_single(MX25, 2, "imx25", 0);
 #endif /* ifdef CONFIG_SOC_IMX25 */
 
 #ifdef CONFIG_SOC_IMX31
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/6] ARM: mxc: change imx-dma default to_version to 1
  2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 1/6] ARM: mxc: imx-sdma device gets 16K iosize than 4K Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 2/6] ARM: mxc: sdma on imx25 is a V2 block Shawn Guo
@ 2011-06-22 14:41 ` Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 4/6] ARM: mxc: imx-dma on imx25 has no other TO version but TO1 Shawn Guo
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Shawn Guo @ 2011-06-22 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

The value 0 is not a valid TO version number.  With the current
code, imx-sdma driver will try to load firmware sdma-imx25-to0.bin,
which is obviously not a good name.  Instead, sdma-imx25-to1.bin
makes much more sense.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
---
 arch/arm/plat-mxc/devices/platform-imx-dma.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index 1fc3522..f25a41c 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -33,22 +33,22 @@ struct imx_imx_sdma_data {
 
 #ifdef CONFIG_SOC_IMX25
 struct imx_imx_sdma_data imx25_imx_sdma_data __initconst =
-	imx_imx_sdma_data_entry_single(MX25, 2, "imx25", 0);
+	imx_imx_sdma_data_entry_single(MX25, 2, "imx25", 1);
 #endif /* ifdef CONFIG_SOC_IMX25 */
 
 #ifdef CONFIG_SOC_IMX31
 struct imx_imx_sdma_data imx31_imx_sdma_data __initdata =
-	imx_imx_sdma_data_entry_single(MX31, 1, "imx31", 0);
+	imx_imx_sdma_data_entry_single(MX31, 1, "imx31", 1);
 #endif /* ifdef CONFIG_SOC_IMX31 */
 
 #ifdef CONFIG_SOC_IMX35
 struct imx_imx_sdma_data imx35_imx_sdma_data __initdata =
-	imx_imx_sdma_data_entry_single(MX35, 2, "imx35", 0);
+	imx_imx_sdma_data_entry_single(MX35, 2, "imx35", 1);
 #endif /* ifdef CONFIG_SOC_IMX35 */
 
 #ifdef CONFIG_SOC_IMX51
 struct imx_imx_sdma_data imx51_imx_sdma_data __initconst =
-	imx_imx_sdma_data_entry_single(MX51, 2, "imx51", 0);
+	imx_imx_sdma_data_entry_single(MX51, 2, "imx51", 1);
 #endif /* ifdef CONFIG_SOC_IMX51 */
 
 #ifdef CONFIG_SOC_IMX53
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 4/6] ARM: mxc: imx-dma on imx25 has no other TO version but TO1
  2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
                   ` (2 preceding siblings ...)
  2011-06-22 14:41 ` [PATCH v2 3/6] ARM: mxc: change imx-dma default to_version to 1 Shawn Guo
@ 2011-06-22 14:41 ` Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 5/6] ARM: mxc: clean up imx-dma device registration Shawn Guo
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Shawn Guo @ 2011-06-22 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

The imx25 sdma script only gets TO1 version, so there is no need
to encode "to1" in the variable name.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
---
 arch/arm/plat-mxc/devices/platform-imx-dma.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index f25a41c..27104f5 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -82,7 +82,7 @@ static struct platform_device __init __maybe_unused *imx_add_imx_dma(void)
 }
 
 #ifdef CONFIG_ARCH_MX25
-static struct sdma_script_start_addrs addr_imx25_to1 = {
+static struct sdma_script_start_addrs addr_imx25 = {
 	.ap_2_ap_addr = 729,
 	.uart_2_mcu_addr = 904,
 	.per_2_app_addr = 1255,
@@ -186,7 +186,7 @@ static int __init imxXX_add_imx_dma(void)
 
 #if defined(CONFIG_SOC_IMX25)
 	if (cpu_is_mx25()) {
-		imx25_imx_sdma_data.pdata.script_addrs = &addr_imx25_to1;
+		imx25_imx_sdma_data.pdata.script_addrs = &addr_imx25;
 		ret = imx_add_imx_sdma(&imx25_imx_sdma_data);
 	} else
 #endif
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 5/6] ARM: mxc: clean up imx-dma device registration
  2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
                   ` (3 preceding siblings ...)
  2011-06-22 14:41 ` [PATCH v2 4/6] ARM: mxc: imx-dma on imx25 has no other TO version but TO1 Shawn Guo
@ 2011-06-22 14:41 ` Shawn Guo
  2011-06-22 14:41 ` [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data Shawn Guo
  2011-06-27  9:51 ` [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Sascha Hauer
  6 siblings, 0 replies; 10+ messages in thread
From: Shawn Guo @ 2011-06-22 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

The patch follows the implementation of gpio-mxc device registration
to break the concentrated imx-dma device registration into soc
specific setup function.  Then we can avoid the churn of "#ifdef"
and the cpu_is_mx checking on such a long list, which makes no sense,
considering more soc supports need to be added and we need to support
single image for multiple socs in the long run.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
---
 arch/arm/mach-imx/mm-imx21.c                    |    3 +
 arch/arm/mach-imx/mm-imx25.c                    |   26 +++
 arch/arm/mach-imx/mm-imx27.c                    |    3 +
 arch/arm/mach-imx/mm-imx31.c                    |   24 +++
 arch/arm/mach-imx/mm-imx35.c                    |   44 +++++
 arch/arm/mach-mx5/mm.c                          |   49 +++++
 arch/arm/plat-mxc/devices.c                     |   16 ++-
 arch/arm/plat-mxc/devices/platform-imx-dma.c    |  232 ++---------------------
 arch/arm/plat-mxc/include/mach/devices-common.h |    6 +
 9 files changed, 183 insertions(+), 220 deletions(-)

diff --git a/arch/arm/mach-imx/mm-imx21.c b/arch/arm/mach-imx/mm-imx21.c
index f8fb41c..4f32a8a 100644
--- a/arch/arm/mach-imx/mm-imx21.c
+++ b/arch/arm/mach-imx/mm-imx21.c
@@ -22,6 +22,7 @@
 #include <linux/init.h>
 #include <mach/hardware.h>
 #include <mach/common.h>
+#include <mach/devices-common.h>
 #include <asm/pgtable.h>
 #include <asm/mach/map.h>
 #include <mach/irqs.h>
@@ -82,4 +83,6 @@ void __init imx21_soc_init(void)
 	mxc_register_gpio(3, MX21_GPIO4_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0);
 	mxc_register_gpio(4, MX21_GPIO5_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0);
 	mxc_register_gpio(5, MX21_GPIO6_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0);
+
+	imx_add_imx_dma();
 }
diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c
index 1b6d583..0c54520 100644
--- a/arch/arm/mach-imx/mm-imx25.c
+++ b/arch/arm/mach-imx/mm-imx25.c
@@ -24,6 +24,7 @@
 #include <asm/mach/map.h>
 
 #include <mach/common.h>
+#include <mach/devices-common.h>
 #include <mach/hardware.h>
 #include <mach/mx25.h>
 #include <mach/iomux-v3.h>
@@ -61,10 +62,35 @@ void __init mx25_init_irq(void)
 	mxc_init_irq(MX25_IO_ADDRESS(MX25_AVIC_BASE_ADDR));
 }
 
+static struct sdma_script_start_addrs imx25_sdma_script __initdata = {
+	.ap_2_ap_addr = 729,
+	.uart_2_mcu_addr = 904,
+	.per_2_app_addr = 1255,
+	.mcu_2_app_addr = 834,
+	.uartsh_2_mcu_addr = 1120,
+	.per_2_shp_addr = 1329,
+	.mcu_2_shp_addr = 1048,
+	.ata_2_mcu_addr = 1560,
+	.mcu_2_ata_addr = 1479,
+	.app_2_per_addr = 1189,
+	.app_2_mcu_addr = 770,
+	.shp_2_per_addr = 1407,
+	.shp_2_mcu_addr = 979,
+};
+
+static struct sdma_platform_data imx25_sdma_pdata __initdata = {
+	.sdma_version = 2,
+	.cpu_name = "imx25",
+	.to_version = 1,
+	.script_addrs = &imx25_sdma_script,
+};
+
 void __init imx25_soc_init(void)
 {
 	mxc_register_gpio(0, MX25_GPIO1_BASE_ADDR, SZ_16K, MX25_INT_GPIO1, 0);
 	mxc_register_gpio(1, MX25_GPIO2_BASE_ADDR, SZ_16K, MX25_INT_GPIO2, 0);
 	mxc_register_gpio(2, MX25_GPIO3_BASE_ADDR, SZ_16K, MX25_INT_GPIO3, 0);
 	mxc_register_gpio(3, MX25_GPIO4_BASE_ADDR, SZ_16K, MX25_INT_GPIO4, 0);
+
+	imx_add_imx_sdma(MX25_SDMA_BASE_ADDR, MX25_INT_SDMA, &imx25_sdma_pdata);
 }
diff --git a/arch/arm/mach-imx/mm-imx27.c b/arch/arm/mach-imx/mm-imx27.c
index acc6db4..944e02d 100644
--- a/arch/arm/mach-imx/mm-imx27.c
+++ b/arch/arm/mach-imx/mm-imx27.c
@@ -22,6 +22,7 @@
 #include <linux/init.h>
 #include <mach/hardware.h>
 #include <mach/common.h>
+#include <mach/devices-common.h>
 #include <asm/pgtable.h>
 #include <asm/mach/map.h>
 #include <mach/irqs.h>
@@ -82,4 +83,6 @@ void __init imx27_soc_init(void)
 	mxc_register_gpio(3, MX27_GPIO4_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0);
 	mxc_register_gpio(4, MX27_GPIO5_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0);
 	mxc_register_gpio(5, MX27_GPIO6_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0);
+
+	imx_add_imx_dma();
 }
diff --git a/arch/arm/mach-imx/mm-imx31.c b/arch/arm/mach-imx/mm-imx31.c
index cb16ac6..6af8519 100644
--- a/arch/arm/mach-imx/mm-imx31.c
+++ b/arch/arm/mach-imx/mm-imx31.c
@@ -24,6 +24,7 @@
 #include <asm/mach/map.h>
 
 #include <mach/common.h>
+#include <mach/devices-common.h>
 #include <mach/hardware.h>
 #include <mach/iomux-v3.h>
 #include <mach/irqs.h>
@@ -57,9 +58,32 @@ void __init mx31_init_irq(void)
 	mxc_init_irq(MX31_IO_ADDRESS(MX31_AVIC_BASE_ADDR));
 }
 
+static struct sdma_script_start_addrs imx31_to1_sdma_script __initdata = {
+	.per_2_per_addr = 1677,
+};
+
+static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = {
+	.ap_2_ap_addr = 423,
+	.ap_2_bp_addr = 829,
+	.bp_2_ap_addr = 1029,
+};
+
+static struct sdma_platform_data imx31_sdma_pdata __initdata = {
+	.sdma_version = 1,
+	.cpu_name = "imx31",
+	.script_addrs = &imx31_to2_sdma_script,
+};
+
 void __init imx31_soc_init(void)
 {
+	int to_version = mx31_revision() >> 4;
+
 	mxc_register_gpio(0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0);
 	mxc_register_gpio(1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0);
 	mxc_register_gpio(2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0);
+
+	imx31_sdma_pdata.to_version = to_version;
+	if (to_version == 1)
+		imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script;
+	imx_add_imx_sdma(MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata);
 }
diff --git a/arch/arm/mach-imx/mm-imx35.c b/arch/arm/mach-imx/mm-imx35.c
index 648bfca..9891adb 100644
--- a/arch/arm/mach-imx/mm-imx35.c
+++ b/arch/arm/mach-imx/mm-imx35.c
@@ -25,6 +25,7 @@
 #include <asm/hardware/cache-l2x0.h>
 
 #include <mach/common.h>
+#include <mach/devices-common.h>
 #include <mach/hardware.h>
 #include <mach/iomux-v3.h>
 #include <mach/irqs.h>
@@ -54,9 +55,52 @@ void __init mx35_init_irq(void)
 	mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR));
 }
 
+static struct sdma_script_start_addrs imx35_to1_sdma_script __initdata = {
+	.ap_2_ap_addr = 642,
+	.uart_2_mcu_addr = 817,
+	.mcu_2_app_addr = 747,
+	.uartsh_2_mcu_addr = 1183,
+	.per_2_shp_addr = 1033,
+	.mcu_2_shp_addr = 961,
+	.ata_2_mcu_addr = 1333,
+	.mcu_2_ata_addr = 1252,
+	.app_2_mcu_addr = 683,
+	.shp_2_per_addr = 1111,
+	.shp_2_mcu_addr = 892,
+};
+
+static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = {
+	.ap_2_ap_addr = 729,
+	.uart_2_mcu_addr = 904,
+	.per_2_app_addr = 1597,
+	.mcu_2_app_addr = 834,
+	.uartsh_2_mcu_addr = 1270,
+	.per_2_shp_addr = 1120,
+	.mcu_2_shp_addr = 1048,
+	.ata_2_mcu_addr = 1429,
+	.mcu_2_ata_addr = 1339,
+	.app_2_per_addr = 1531,
+	.app_2_mcu_addr = 770,
+	.shp_2_per_addr = 1198,
+	.shp_2_mcu_addr = 979,
+};
+
+static struct sdma_platform_data imx35_sdma_pdata __initdata = {
+	.sdma_version = 2,
+	.cpu_name = "imx35",
+	.script_addrs = &imx35_to2_sdma_script,
+};
+
 void __init imx35_soc_init(void)
 {
+	int to_version = mx35_revision() >> 4;
+
 	mxc_register_gpio(0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0);
 	mxc_register_gpio(1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0);
 	mxc_register_gpio(2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0);
+
+	imx35_sdma_pdata.to_version = to_version;
+	if (to_version == 1)
+		imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script;
+	imx_add_imx_sdma(MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata);
 }
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
index 800bb8b2..aa848ea 100644
--- a/arch/arm/mach-mx5/mm.c
+++ b/arch/arm/mach-mx5/mm.c
@@ -18,6 +18,7 @@
 
 #include <mach/hardware.h>
 #include <mach/common.h>
+#include <mach/devices-common.h>
 #include <mach/iomux-v3.h>
 
 /*
@@ -100,12 +101,58 @@ void __init mx53_init_irq(void)
 	tzic_init_irq(tzic_virt);
 }
 
+static struct sdma_script_start_addrs imx51_sdma_script __initdata = {
+	.ap_2_ap_addr = 642,
+	.uart_2_mcu_addr = 817,
+	.mcu_2_app_addr = 747,
+	.mcu_2_shp_addr = 961,
+	.ata_2_mcu_addr = 1473,
+	.mcu_2_ata_addr = 1392,
+	.app_2_per_addr = 1033,
+	.app_2_mcu_addr = 683,
+	.shp_2_per_addr = 1251,
+	.shp_2_mcu_addr = 892,
+};
+
+static struct sdma_platform_data imx51_sdma_pdata __initdata = {
+	.sdma_version = 2,
+	.cpu_name = "imx51",
+	.to_version = 1,
+	.script_addrs = &imx51_sdma_script,
+};
+
+static struct sdma_script_start_addrs imx53_sdma_script __initdata = {
+	.ap_2_ap_addr = 642,
+	.app_2_mcu_addr = 683,
+	.mcu_2_app_addr = 747,
+	.uart_2_mcu_addr = 817,
+	.shp_2_mcu_addr = 891,
+	.mcu_2_shp_addr = 960,
+	.uartsh_2_mcu_addr = 1032,
+	.spdif_2_mcu_addr = 1100,
+	.mcu_2_spdif_addr = 1134,
+	.firi_2_mcu_addr = 1193,
+	.mcu_2_firi_addr = 1290,
+};
+
+static struct sdma_platform_data imx53_sdma_pdata __initdata = {
+	.sdma_version = 2,
+	.cpu_name = "imx53",
+	.to_version = 1,
+	.script_addrs = &imx53_sdma_script,
+};
+
 void __init imx51_soc_init(void)
 {
+	int to_version = mx51_revision() >> 4;
+
 	mxc_register_gpio(0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO1_LOW, MX51_MXC_INT_GPIO1_HIGH);
 	mxc_register_gpio(1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO2_LOW, MX51_MXC_INT_GPIO2_HIGH);
 	mxc_register_gpio(2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO3_LOW, MX51_MXC_INT_GPIO3_HIGH);
 	mxc_register_gpio(3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO4_LOW, MX51_MXC_INT_GPIO4_HIGH);
+
+	imx51_sdma_pdata.to_version = to_version;
+	imx_add_imx_sdma(MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata);
 }
 
 void __init imx53_soc_init(void)
@@ -117,4 +164,6 @@ void __init imx53_soc_init(void)
 	mxc_register_gpio(4, MX53_GPIO5_BASE_ADDR, SZ_16K, MX53_INT_GPIO5_LOW, MX53_INT_GPIO5_HIGH);
 	mxc_register_gpio(5, MX53_GPIO6_BASE_ADDR, SZ_16K, MX53_INT_GPIO6_LOW, MX53_INT_GPIO6_HIGH);
 	mxc_register_gpio(6, MX53_GPIO7_BASE_ADDR, SZ_16K, MX53_INT_GPIO7_LOW, MX53_INT_GPIO7_HIGH);
+
+	imx_add_imx_sdma(MX53_SDMA_BASE_ADDR, MX53_INT_SDMA, &imx53_sdma_pdata);
 }
diff --git a/arch/arm/plat-mxc/devices.c b/arch/arm/plat-mxc/devices.c
index fb166b2..0d6ed31 100644
--- a/arch/arm/plat-mxc/devices.c
+++ b/arch/arm/plat-mxc/devices.c
@@ -95,8 +95,22 @@ struct device mxc_aips_bus = {
 	.parent		= &platform_bus,
 };
 
+struct device mxc_ahb_bus = {
+	.init_name	= "mxc_ahb",
+	.parent		= &platform_bus,
+};
+
 static int __init mxc_device_init(void)
 {
-	return device_register(&mxc_aips_bus);
+	int ret;
+
+	ret = device_register(&mxc_aips_bus);
+	if (IS_ERR_VALUE(ret))
+		goto done;
+
+	ret = device_register(&mxc_ahb_bus);
+
+done:
+	return ret;
 }
 core_initcall(mxc_device_init);
diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index 27104f5..2b0fdb2 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -6,235 +6,29 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
-#include <linux/compiler.h>
-#include <linux/err.h>
-#include <linux/init.h>
-
-#include <mach/hardware.h>
 #include <mach/devices-common.h>
-#include <mach/sdma.h>
-
-struct imx_imx_sdma_data {
-	resource_size_t iobase;
-	resource_size_t irq;
-	struct sdma_platform_data pdata;
-};
-
-#define imx_imx_sdma_data_entry_single(soc, _sdma_version, _cpu_name, _to_version)\
-	{								\
-		.iobase = soc ## _SDMA ## _BASE_ADDR,			\
-		.irq = soc ## _INT_SDMA,				\
-		.pdata = {						\
-			.sdma_version = _sdma_version,			\
-			.cpu_name = _cpu_name,				\
-			.to_version = _to_version,			\
-		},							\
-	}
-
-#ifdef CONFIG_SOC_IMX25
-struct imx_imx_sdma_data imx25_imx_sdma_data __initconst =
-	imx_imx_sdma_data_entry_single(MX25, 2, "imx25", 1);
-#endif /* ifdef CONFIG_SOC_IMX25 */
 
-#ifdef CONFIG_SOC_IMX31
-struct imx_imx_sdma_data imx31_imx_sdma_data __initdata =
-	imx_imx_sdma_data_entry_single(MX31, 1, "imx31", 1);
-#endif /* ifdef CONFIG_SOC_IMX31 */
-
-#ifdef CONFIG_SOC_IMX35
-struct imx_imx_sdma_data imx35_imx_sdma_data __initdata =
-	imx_imx_sdma_data_entry_single(MX35, 2, "imx35", 1);
-#endif /* ifdef CONFIG_SOC_IMX35 */
-
-#ifdef CONFIG_SOC_IMX51
-struct imx_imx_sdma_data imx51_imx_sdma_data __initconst =
-	imx_imx_sdma_data_entry_single(MX51, 2, "imx51", 1);
-#endif /* ifdef CONFIG_SOC_IMX51 */
-
-#ifdef CONFIG_SOC_IMX53
-struct imx_imx_sdma_data imx53_imx_sdma_data __initconst =
-	imx_imx_sdma_data_entry_single(MX53, 2, "imx53", 0);
-#endif /* ifdef CONFIG_SOC_IMX53 */
+struct platform_device __init __maybe_unused *imx_add_imx_dma(void)
+{
+	return platform_device_register_resndata(&mxc_ahb_bus,
+			"imx-dma", -1, NULL, 0, NULL, 0);
+}
 
-static struct platform_device __init __maybe_unused *imx_add_imx_sdma(
-		const struct imx_imx_sdma_data *data)
+struct platform_device __init __maybe_unused *imx_add_imx_sdma(
+	resource_size_t iobase, int irq, struct sdma_platform_data *pdata)
 {
 	struct resource res[] = {
 		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_16K - 1,
+			.start = iobase,
+			.end = iobase + SZ_16K - 1,
 			.flags = IORESOURCE_MEM,
 		}, {
-			.start = data->irq,
-			.end = data->irq,
+			.start = irq,
+			.end = irq,
 			.flags = IORESOURCE_IRQ,
 		},
 	};
 
-	return imx_add_platform_device("imx-sdma", -1,
-			res, ARRAY_SIZE(res),
-			&data->pdata, sizeof(data->pdata));
-}
-
-static struct platform_device __init __maybe_unused *imx_add_imx_dma(void)
-{
-	return imx_add_platform_device("imx-dma", -1, NULL, 0, NULL, 0);
-}
-
-#ifdef CONFIG_ARCH_MX25
-static struct sdma_script_start_addrs addr_imx25 = {
-	.ap_2_ap_addr = 729,
-	.uart_2_mcu_addr = 904,
-	.per_2_app_addr = 1255,
-	.mcu_2_app_addr = 834,
-	.uartsh_2_mcu_addr = 1120,
-	.per_2_shp_addr = 1329,
-	.mcu_2_shp_addr = 1048,
-	.ata_2_mcu_addr = 1560,
-	.mcu_2_ata_addr = 1479,
-	.app_2_per_addr = 1189,
-	.app_2_mcu_addr = 770,
-	.shp_2_per_addr = 1407,
-	.shp_2_mcu_addr = 979,
-};
-#endif
-
-#ifdef CONFIG_SOC_IMX31
-static struct sdma_script_start_addrs addr_imx31_to1 = {
-	.per_2_per_addr = 1677,
-};
-
-static struct sdma_script_start_addrs addr_imx31_to2 = {
-	.ap_2_ap_addr = 423,
-	.ap_2_bp_addr = 829,
-	.bp_2_ap_addr = 1029,
-};
-#endif
-
-#ifdef CONFIG_SOC_IMX35
-static struct sdma_script_start_addrs addr_imx35_to1 = {
-	.ap_2_ap_addr = 642,
-	.uart_2_mcu_addr = 817,
-	.mcu_2_app_addr = 747,
-	.uartsh_2_mcu_addr = 1183,
-	.per_2_shp_addr = 1033,
-	.mcu_2_shp_addr = 961,
-	.ata_2_mcu_addr = 1333,
-	.mcu_2_ata_addr = 1252,
-	.app_2_mcu_addr = 683,
-	.shp_2_per_addr = 1111,
-	.shp_2_mcu_addr = 892,
-};
-
-static struct sdma_script_start_addrs addr_imx35_to2 = {
-	.ap_2_ap_addr = 729,
-	.uart_2_mcu_addr = 904,
-	.per_2_app_addr = 1597,
-	.mcu_2_app_addr = 834,
-	.uartsh_2_mcu_addr = 1270,
-	.per_2_shp_addr = 1120,
-	.mcu_2_shp_addr = 1048,
-	.ata_2_mcu_addr = 1429,
-	.mcu_2_ata_addr = 1339,
-	.app_2_per_addr = 1531,
-	.app_2_mcu_addr = 770,
-	.shp_2_per_addr = 1198,
-	.shp_2_mcu_addr = 979,
-};
-#endif
-
-#ifdef CONFIG_SOC_IMX51
-static struct sdma_script_start_addrs addr_imx51 = {
-	.ap_2_ap_addr = 642,
-	.uart_2_mcu_addr = 817,
-	.mcu_2_app_addr = 747,
-	.mcu_2_shp_addr = 961,
-	.ata_2_mcu_addr = 1473,
-	.mcu_2_ata_addr = 1392,
-	.app_2_per_addr = 1033,
-	.app_2_mcu_addr = 683,
-	.shp_2_per_addr = 1251,
-	.shp_2_mcu_addr = 892,
-};
-#endif
-
-#ifdef CONFIG_SOC_IMX53
-static struct sdma_script_start_addrs addr_imx53 = {
-	.ap_2_ap_addr = 642,
-	.app_2_mcu_addr = 683,
-	.mcu_2_app_addr = 747,
-	.uart_2_mcu_addr = 817,
-	.shp_2_mcu_addr = 891,
-	.mcu_2_shp_addr = 960,
-	.uartsh_2_mcu_addr = 1032,
-	.spdif_2_mcu_addr = 1100,
-	.mcu_2_spdif_addr = 1134,
-	.firi_2_mcu_addr = 1193,
-	.mcu_2_firi_addr = 1290,
-};
-#endif
-
-static int __init imxXX_add_imx_dma(void)
-{
-	struct platform_device *ret;
-
-#if defined(CONFIG_SOC_IMX21) || defined(CONFIG_SOC_IMX27)
-	if (cpu_is_mx21() || cpu_is_mx27())
-		ret = imx_add_imx_dma();
-	else
-#endif
-
-#if defined(CONFIG_SOC_IMX25)
-	if (cpu_is_mx25()) {
-		imx25_imx_sdma_data.pdata.script_addrs = &addr_imx25;
-		ret = imx_add_imx_sdma(&imx25_imx_sdma_data);
-	} else
-#endif
-
-#if defined(CONFIG_SOC_IMX31)
-	if (cpu_is_mx31()) {
-		int to_version = mx31_revision() >> 4;
-		imx31_imx_sdma_data.pdata.to_version = to_version;
-		if (to_version == 1)
-			imx31_imx_sdma_data.pdata.script_addrs = &addr_imx31_to1;
-		else
-			imx31_imx_sdma_data.pdata.script_addrs = &addr_imx31_to2;
-		ret = imx_add_imx_sdma(&imx31_imx_sdma_data);
-	} else
-#endif
-
-#if defined(CONFIG_SOC_IMX35)
-	if (cpu_is_mx35()) {
-		int to_version = mx35_revision() >> 4;
-		imx35_imx_sdma_data.pdata.to_version = to_version;
-		if (to_version == 1)
-			imx35_imx_sdma_data.pdata.script_addrs = &addr_imx35_to1;
-		else
-			imx35_imx_sdma_data.pdata.script_addrs = &addr_imx35_to2;
-		ret = imx_add_imx_sdma(&imx35_imx_sdma_data);
-	} else
-#endif
-
-#if defined(CONFIG_SOC_IMX51)
-	if (cpu_is_mx51()) {
-		int to_version = mx51_revision() >> 4;
-		imx51_imx_sdma_data.pdata.to_version = to_version;
-		imx51_imx_sdma_data.pdata.script_addrs = &addr_imx51;
-		ret = imx_add_imx_sdma(&imx51_imx_sdma_data);
-	} else
-#endif
-
-#if defined(CONFIG_SOC_IMX53)
-	if (cpu_is_mx53()) {
-		imx53_imx_sdma_data.pdata.script_addrs = &addr_imx53;
-		ret = imx_add_imx_sdma(&imx53_imx_sdma_data);
-	} else
-#endif
-		ret = ERR_PTR(-ENODEV);
-
-	if (IS_ERR(ret))
-		return PTR_ERR(ret);
-
-	return 0;
+	return platform_device_register_resndata(&mxc_ahb_bus, "imx-sdma",
+			-1, res, ARRAY_SIZE(res), pdata, sizeof(*pdata));
 }
-arch_initcall(imxXX_add_imx_dma);
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 03f6266..bf93820 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -9,8 +9,10 @@
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/init.h>
+#include <mach/sdma.h>
 
 extern struct device mxc_aips_bus;
+extern struct device mxc_ahb_bus;
 
 struct platform_device *imx_add_platform_device_dmamask(
 		const char *name, int id,
@@ -293,3 +295,7 @@ struct imx_spi_imx_data {
 struct platform_device *__init imx_add_spi_imx(
 		const struct imx_spi_imx_data *data,
 		const struct spi_imx_master *pdata);
+
+struct platform_device *imx_add_imx_dma(void);
+struct platform_device *imx_add_imx_sdma(
+	resource_size_t iobase, int irq, struct sdma_platform_data *pdata);
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data
  2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
                   ` (4 preceding siblings ...)
  2011-06-22 14:41 ` [PATCH v2 5/6] ARM: mxc: clean up imx-dma device registration Shawn Guo
@ 2011-06-22 14:41 ` Shawn Guo
  2011-06-23  7:45   ` Sascha Hauer
  2011-06-24 10:50   ` Vinod Koul
  2011-06-27  9:51 ` [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Sascha Hauer
  6 siblings, 2 replies; 10+ messages in thread
From: Shawn Guo @ 2011-06-22 14:41 UTC (permalink / raw)
  To: linux-arm-kernel

It is not good to have cpu_name and to_version encoded into sdma
firmware name as variables.  For example, there are three TOs of
imx51 soc, the sdma script never changes since TO1, which means
all three TOs of imx51 uses TO1 version of sdma script.  But we
have to prepare three identical firmwares, sdma-imx51-to1.bin
sdma-imx51-to2.bin and sdma-imx51-to3.bin, to have the kernel
capable of running on all three TOs.

The patch removes cpu_name and to_version from sdma platform data,
and instead uses fw_name to pass the firmware name, so that we can
pass the TO version where it's relevant and skip it where only one
firmware exists.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Vinod Koul <vinod.koul@intel.com>
---
 arch/arm/mach-imx/mm-imx25.c          |    3 +--
 arch/arm/mach-imx/mm-imx31.c          |    9 ++++++---
 arch/arm/mach-imx/mm-imx35.c          |    9 ++++++---
 arch/arm/mach-mx5/mm.c                |    9 ++-------
 arch/arm/plat-mxc/include/mach/sdma.h |    6 ++----
 drivers/dma/imx-sdma.c                |    6 +++---
 6 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c
index 0c54520..1e0c956 100644
--- a/arch/arm/mach-imx/mm-imx25.c
+++ b/arch/arm/mach-imx/mm-imx25.c
@@ -80,8 +80,7 @@ static struct sdma_script_start_addrs imx25_sdma_script __initdata = {
 
 static struct sdma_platform_data imx25_sdma_pdata __initdata = {
 	.sdma_version = 2,
-	.cpu_name = "imx25",
-	.to_version = 1,
+	.fw_name = "sdma-imx25.bin",
 	.script_addrs = &imx25_sdma_script,
 };
 
diff --git a/arch/arm/mach-imx/mm-imx31.c b/arch/arm/mach-imx/mm-imx31.c
index 6af8519..a1ff96f 100644
--- a/arch/arm/mach-imx/mm-imx31.c
+++ b/arch/arm/mach-imx/mm-imx31.c
@@ -70,7 +70,7 @@ static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = {
 
 static struct sdma_platform_data imx31_sdma_pdata __initdata = {
 	.sdma_version = 1,
-	.cpu_name = "imx31",
+	.fw_name = "sdma-imx31-to2.bin",
 	.script_addrs = &imx31_to2_sdma_script,
 };
 
@@ -82,8 +82,11 @@ void __init imx31_soc_init(void)
 	mxc_register_gpio(1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0);
 	mxc_register_gpio(2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0);
 
-	imx31_sdma_pdata.to_version = to_version;
-	if (to_version == 1)
+	if (to_version == 1) {
+		strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin",
+			strlen(imx31_sdma_pdata.fw_name));
 		imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script;
+	}
+
 	imx_add_imx_sdma(MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata);
 }
diff --git a/arch/arm/mach-imx/mm-imx35.c b/arch/arm/mach-imx/mm-imx35.c
index 9891adb..da530ca 100644
--- a/arch/arm/mach-imx/mm-imx35.c
+++ b/arch/arm/mach-imx/mm-imx35.c
@@ -87,7 +87,7 @@ static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = {
 
 static struct sdma_platform_data imx35_sdma_pdata __initdata = {
 	.sdma_version = 2,
-	.cpu_name = "imx35",
+	.fw_name = "sdma-imx35-to2.bin",
 	.script_addrs = &imx35_to2_sdma_script,
 };
 
@@ -99,8 +99,11 @@ void __init imx35_soc_init(void)
 	mxc_register_gpio(1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0);
 	mxc_register_gpio(2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0);
 
-	imx35_sdma_pdata.to_version = to_version;
-	if (to_version == 1)
+	if (to_version == 1) {
+		strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin",
+			strlen(imx35_sdma_pdata.fw_name));
 		imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script;
+	}
+
 	imx_add_imx_sdma(MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata);
 }
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
index aa848ea..1b7059f 100644
--- a/arch/arm/mach-mx5/mm.c
+++ b/arch/arm/mach-mx5/mm.c
@@ -116,8 +116,7 @@ static struct sdma_script_start_addrs imx51_sdma_script __initdata = {
 
 static struct sdma_platform_data imx51_sdma_pdata __initdata = {
 	.sdma_version = 2,
-	.cpu_name = "imx51",
-	.to_version = 1,
+	.fw_name = "sdma-imx51.bin",
 	.script_addrs = &imx51_sdma_script,
 };
 
@@ -137,21 +136,17 @@ static struct sdma_script_start_addrs imx53_sdma_script __initdata = {
 
 static struct sdma_platform_data imx53_sdma_pdata __initdata = {
 	.sdma_version = 2,
-	.cpu_name = "imx53",
-	.to_version = 1,
+	.fw_name = "sdma-imx53.bin",
 	.script_addrs = &imx53_sdma_script,
 };
 
 void __init imx51_soc_init(void)
 {
-	int to_version = mx51_revision() >> 4;
-
 	mxc_register_gpio(0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO1_LOW, MX51_MXC_INT_GPIO1_HIGH);
 	mxc_register_gpio(1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO2_LOW, MX51_MXC_INT_GPIO2_HIGH);
 	mxc_register_gpio(2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO3_LOW, MX51_MXC_INT_GPIO3_HIGH);
 	mxc_register_gpio(3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO4_LOW, MX51_MXC_INT_GPIO4_HIGH);
 
-	imx51_sdma_pdata.to_version = to_version;
 	imx_add_imx_sdma(MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata);
 }
 
diff --git a/arch/arm/plat-mxc/include/mach/sdma.h b/arch/arm/plat-mxc/include/mach/sdma.h
index 913e043..f495c87 100644
--- a/arch/arm/plat-mxc/include/mach/sdma.h
+++ b/arch/arm/plat-mxc/include/mach/sdma.h
@@ -49,14 +49,12 @@ struct sdma_script_start_addrs {
  * struct sdma_platform_data - platform specific data for SDMA engine
  *
  * @sdma_version	The version of this SDMA engine
- * @cpu_name		used to generate the firmware name
- * @to_version		CPU Tape out version
+ * @fw_name		The firmware name
  * @script_addrs	SDMA scripts addresses in SDMA ROM
  */
 struct sdma_platform_data {
 	int sdma_version;
-	char *cpu_name;
-	int to_version;
+	char *fw_name;
 	struct sdma_script_start_addrs *script_addrs;
 };
 
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index b6d1455..1ea47db 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -1105,7 +1105,7 @@ static void sdma_add_scripts(struct sdma_engine *sdma,
 }
 
 static int __init sdma_get_firmware(struct sdma_engine *sdma,
-		const char *cpu_name, int to_version)
+		const char *fw_name)
 {
 	const struct firmware *fw;
 	char *fwname;
@@ -1114,7 +1114,7 @@ static int __init sdma_get_firmware(struct sdma_engine *sdma,
 	const struct sdma_script_start_addrs *addr;
 	unsigned short *ram_code;
 
-	fwname = kasprintf(GFP_KERNEL, "sdma-%s-to%d.bin", cpu_name, to_version);
+	fwname = kasprintf(GFP_KERNEL, "%s", fw_name);
 	if (!fwname)
 		return -ENOMEM;
 
@@ -1317,7 +1317,7 @@ static int __init sdma_probe(struct platform_device *pdev)
 	if (pdata->script_addrs)
 		sdma_add_scripts(sdma, pdata->script_addrs);
 
-	sdma_get_firmware(sdma, pdata->cpu_name, pdata->to_version);
+	sdma_get_firmware(sdma, pdata->fw_name);
 
 	sdma->dma_device.dev = &pdev->dev;
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data
  2011-06-22 14:41 ` [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data Shawn Guo
@ 2011-06-23  7:45   ` Sascha Hauer
  2011-06-24 10:50   ` Vinod Koul
  1 sibling, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-06-23  7:45 UTC (permalink / raw)
  To: linux-arm-kernel

Vinod,

Can I have your ack for this? It depends on the other patches in this
series and should go via the i.MX tree rather than the DMA tree.

Sascha

On Wed, Jun 22, 2011 at 10:41:31PM +0800, Shawn Guo wrote:
> It is not good to have cpu_name and to_version encoded into sdma
> firmware name as variables.  For example, there are three TOs of
> imx51 soc, the sdma script never changes since TO1, which means
> all three TOs of imx51 uses TO1 version of sdma script.  But we
> have to prepare three identical firmwares, sdma-imx51-to1.bin
> sdma-imx51-to2.bin and sdma-imx51-to3.bin, to have the kernel
> capable of running on all three TOs.
> 
> The patch removes cpu_name and to_version from sdma platform data,
> and instead uses fw_name to pass the firmware name, so that we can
> pass the TO version where it's relevant and skip it where only one
> firmware exists.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Vinod Koul <vinod.koul@intel.com>
> ---
>  arch/arm/mach-imx/mm-imx25.c          |    3 +--
>  arch/arm/mach-imx/mm-imx31.c          |    9 ++++++---
>  arch/arm/mach-imx/mm-imx35.c          |    9 ++++++---
>  arch/arm/mach-mx5/mm.c                |    9 ++-------
>  arch/arm/plat-mxc/include/mach/sdma.h |    6 ++----
>  drivers/dma/imx-sdma.c                |    6 +++---
>  6 files changed, 20 insertions(+), 22 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c
> index 0c54520..1e0c956 100644
> --- a/arch/arm/mach-imx/mm-imx25.c
> +++ b/arch/arm/mach-imx/mm-imx25.c
> @@ -80,8 +80,7 @@ static struct sdma_script_start_addrs imx25_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx25_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx25",
> -	.to_version = 1,
> +	.fw_name = "sdma-imx25.bin",
>  	.script_addrs = &imx25_sdma_script,
>  };
>  
> diff --git a/arch/arm/mach-imx/mm-imx31.c b/arch/arm/mach-imx/mm-imx31.c
> index 6af8519..a1ff96f 100644
> --- a/arch/arm/mach-imx/mm-imx31.c
> +++ b/arch/arm/mach-imx/mm-imx31.c
> @@ -70,7 +70,7 @@ static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx31_sdma_pdata __initdata = {
>  	.sdma_version = 1,
> -	.cpu_name = "imx31",
> +	.fw_name = "sdma-imx31-to2.bin",
>  	.script_addrs = &imx31_to2_sdma_script,
>  };
>  
> @@ -82,8 +82,11 @@ void __init imx31_soc_init(void)
>  	mxc_register_gpio(1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0);
>  	mxc_register_gpio(2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0);
>  
> -	imx31_sdma_pdata.to_version = to_version;
> -	if (to_version == 1)
> +	if (to_version == 1) {
> +		strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin",
> +			strlen(imx31_sdma_pdata.fw_name));
>  		imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script;
> +	}
> +
>  	imx_add_imx_sdma(MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata);
>  }
> diff --git a/arch/arm/mach-imx/mm-imx35.c b/arch/arm/mach-imx/mm-imx35.c
> index 9891adb..da530ca 100644
> --- a/arch/arm/mach-imx/mm-imx35.c
> +++ b/arch/arm/mach-imx/mm-imx35.c
> @@ -87,7 +87,7 @@ static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx35_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx35",
> +	.fw_name = "sdma-imx35-to2.bin",
>  	.script_addrs = &imx35_to2_sdma_script,
>  };
>  
> @@ -99,8 +99,11 @@ void __init imx35_soc_init(void)
>  	mxc_register_gpio(1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0);
>  	mxc_register_gpio(2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0);
>  
> -	imx35_sdma_pdata.to_version = to_version;
> -	if (to_version == 1)
> +	if (to_version == 1) {
> +		strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin",
> +			strlen(imx35_sdma_pdata.fw_name));
>  		imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script;
> +	}
> +
>  	imx_add_imx_sdma(MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata);
>  }
> diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
> index aa848ea..1b7059f 100644
> --- a/arch/arm/mach-mx5/mm.c
> +++ b/arch/arm/mach-mx5/mm.c
> @@ -116,8 +116,7 @@ static struct sdma_script_start_addrs imx51_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx51_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx51",
> -	.to_version = 1,
> +	.fw_name = "sdma-imx51.bin",
>  	.script_addrs = &imx51_sdma_script,
>  };
>  
> @@ -137,21 +136,17 @@ static struct sdma_script_start_addrs imx53_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx53_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx53",
> -	.to_version = 1,
> +	.fw_name = "sdma-imx53.bin",
>  	.script_addrs = &imx53_sdma_script,
>  };
>  
>  void __init imx51_soc_init(void)
>  {
> -	int to_version = mx51_revision() >> 4;
> -
>  	mxc_register_gpio(0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO1_LOW, MX51_MXC_INT_GPIO1_HIGH);
>  	mxc_register_gpio(1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO2_LOW, MX51_MXC_INT_GPIO2_HIGH);
>  	mxc_register_gpio(2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO3_LOW, MX51_MXC_INT_GPIO3_HIGH);
>  	mxc_register_gpio(3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO4_LOW, MX51_MXC_INT_GPIO4_HIGH);
>  
> -	imx51_sdma_pdata.to_version = to_version;
>  	imx_add_imx_sdma(MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata);
>  }
>  
> diff --git a/arch/arm/plat-mxc/include/mach/sdma.h b/arch/arm/plat-mxc/include/mach/sdma.h
> index 913e043..f495c87 100644
> --- a/arch/arm/plat-mxc/include/mach/sdma.h
> +++ b/arch/arm/plat-mxc/include/mach/sdma.h
> @@ -49,14 +49,12 @@ struct sdma_script_start_addrs {
>   * struct sdma_platform_data - platform specific data for SDMA engine
>   *
>   * @sdma_version	The version of this SDMA engine
> - * @cpu_name		used to generate the firmware name
> - * @to_version		CPU Tape out version
> + * @fw_name		The firmware name
>   * @script_addrs	SDMA scripts addresses in SDMA ROM
>   */
>  struct sdma_platform_data {
>  	int sdma_version;
> -	char *cpu_name;
> -	int to_version;
> +	char *fw_name;
>  	struct sdma_script_start_addrs *script_addrs;
>  };
>  
> diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
> index b6d1455..1ea47db 100644
> --- a/drivers/dma/imx-sdma.c
> +++ b/drivers/dma/imx-sdma.c
> @@ -1105,7 +1105,7 @@ static void sdma_add_scripts(struct sdma_engine *sdma,
>  }
>  
>  static int __init sdma_get_firmware(struct sdma_engine *sdma,
> -		const char *cpu_name, int to_version)
> +		const char *fw_name)
>  {
>  	const struct firmware *fw;
>  	char *fwname;
> @@ -1114,7 +1114,7 @@ static int __init sdma_get_firmware(struct sdma_engine *sdma,
>  	const struct sdma_script_start_addrs *addr;
>  	unsigned short *ram_code;
>  
> -	fwname = kasprintf(GFP_KERNEL, "sdma-%s-to%d.bin", cpu_name, to_version);
> +	fwname = kasprintf(GFP_KERNEL, "%s", fw_name);
>  	if (!fwname)
>  		return -ENOMEM;
>  
> @@ -1317,7 +1317,7 @@ static int __init sdma_probe(struct platform_device *pdev)
>  	if (pdata->script_addrs)
>  		sdma_add_scripts(sdma, pdata->script_addrs);
>  
> -	sdma_get_firmware(sdma, pdata->cpu_name, pdata->to_version);
> +	sdma_get_firmware(sdma, pdata->fw_name);
>  
>  	sdma->dma_device.dev = &pdev->dev;
>  
> -- 
> 1.7.4.1
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data
  2011-06-22 14:41 ` [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data Shawn Guo
  2011-06-23  7:45   ` Sascha Hauer
@ 2011-06-24 10:50   ` Vinod Koul
  1 sibling, 0 replies; 10+ messages in thread
From: Vinod Koul @ 2011-06-24 10:50 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2011-06-22 at 22:41 +0800, Shawn Guo wrote:
> It is not good to have cpu_name and to_version encoded into sdma
> firmware name as variables.  For example, there are three TOs of
> imx51 soc, the sdma script never changes since TO1, which means
> all three TOs of imx51 uses TO1 version of sdma script.  But we
> have to prepare three identical firmwares, sdma-imx51-to1.bin
> sdma-imx51-to2.bin and sdma-imx51-to3.bin, to have the kernel
> capable of running on all three TOs.
> 
> The patch removes cpu_name and to_version from sdma platform data,
> and instead uses fw_name to pass the firmware name, so that we can
> pass the TO version where it's relevant and skip it where only one
> firmware exists.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Vinod Koul <vinod.koul@intel.com>

Acked-by: Vinod Koul <vinod.koul@intel.com>
> ---
>  arch/arm/mach-imx/mm-imx25.c          |    3 +--
>  arch/arm/mach-imx/mm-imx31.c          |    9 ++++++---
>  arch/arm/mach-imx/mm-imx35.c          |    9 ++++++---
>  arch/arm/mach-mx5/mm.c                |    9 ++-------
>  arch/arm/plat-mxc/include/mach/sdma.h |    6 ++----
>  drivers/dma/imx-sdma.c                |    6 +++---
>  6 files changed, 20 insertions(+), 22 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c
> index 0c54520..1e0c956 100644
> --- a/arch/arm/mach-imx/mm-imx25.c
> +++ b/arch/arm/mach-imx/mm-imx25.c
> @@ -80,8 +80,7 @@ static struct sdma_script_start_addrs imx25_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx25_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx25",
> -	.to_version = 1,
> +	.fw_name = "sdma-imx25.bin",
>  	.script_addrs = &imx25_sdma_script,
>  };
>  
> diff --git a/arch/arm/mach-imx/mm-imx31.c b/arch/arm/mach-imx/mm-imx31.c
> index 6af8519..a1ff96f 100644
> --- a/arch/arm/mach-imx/mm-imx31.c
> +++ b/arch/arm/mach-imx/mm-imx31.c
> @@ -70,7 +70,7 @@ static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx31_sdma_pdata __initdata = {
>  	.sdma_version = 1,
> -	.cpu_name = "imx31",
> +	.fw_name = "sdma-imx31-to2.bin",
>  	.script_addrs = &imx31_to2_sdma_script,
>  };
>  
> @@ -82,8 +82,11 @@ void __init imx31_soc_init(void)
>  	mxc_register_gpio(1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0);
>  	mxc_register_gpio(2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0);
>  
> -	imx31_sdma_pdata.to_version = to_version;
> -	if (to_version == 1)
> +	if (to_version == 1) {
> +		strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin",
> +			strlen(imx31_sdma_pdata.fw_name));
>  		imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script;
> +	}
> +
>  	imx_add_imx_sdma(MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata);
>  }
> diff --git a/arch/arm/mach-imx/mm-imx35.c b/arch/arm/mach-imx/mm-imx35.c
> index 9891adb..da530ca 100644
> --- a/arch/arm/mach-imx/mm-imx35.c
> +++ b/arch/arm/mach-imx/mm-imx35.c
> @@ -87,7 +87,7 @@ static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx35_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx35",
> +	.fw_name = "sdma-imx35-to2.bin",
>  	.script_addrs = &imx35_to2_sdma_script,
>  };
>  
> @@ -99,8 +99,11 @@ void __init imx35_soc_init(void)
>  	mxc_register_gpio(1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0);
>  	mxc_register_gpio(2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0);
>  
> -	imx35_sdma_pdata.to_version = to_version;
> -	if (to_version == 1)
> +	if (to_version == 1) {
> +		strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin",
> +			strlen(imx35_sdma_pdata.fw_name));
>  		imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script;
> +	}
> +
>  	imx_add_imx_sdma(MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata);
>  }
> diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
> index aa848ea..1b7059f 100644
> --- a/arch/arm/mach-mx5/mm.c
> +++ b/arch/arm/mach-mx5/mm.c
> @@ -116,8 +116,7 @@ static struct sdma_script_start_addrs imx51_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx51_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx51",
> -	.to_version = 1,
> +	.fw_name = "sdma-imx51.bin",
>  	.script_addrs = &imx51_sdma_script,
>  };
>  
> @@ -137,21 +136,17 @@ static struct sdma_script_start_addrs imx53_sdma_script __initdata = {
>  
>  static struct sdma_platform_data imx53_sdma_pdata __initdata = {
>  	.sdma_version = 2,
> -	.cpu_name = "imx53",
> -	.to_version = 1,
> +	.fw_name = "sdma-imx53.bin",
>  	.script_addrs = &imx53_sdma_script,
>  };
>  
>  void __init imx51_soc_init(void)
>  {
> -	int to_version = mx51_revision() >> 4;
> -
>  	mxc_register_gpio(0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO1_LOW, MX51_MXC_INT_GPIO1_HIGH);
>  	mxc_register_gpio(1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO2_LOW, MX51_MXC_INT_GPIO2_HIGH);
>  	mxc_register_gpio(2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO3_LOW, MX51_MXC_INT_GPIO3_HIGH);
>  	mxc_register_gpio(3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO4_LOW, MX51_MXC_INT_GPIO4_HIGH);
>  
> -	imx51_sdma_pdata.to_version = to_version;
>  	imx_add_imx_sdma(MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata);
>  }
>  
> diff --git a/arch/arm/plat-mxc/include/mach/sdma.h b/arch/arm/plat-mxc/include/mach/sdma.h
> index 913e043..f495c87 100644
> --- a/arch/arm/plat-mxc/include/mach/sdma.h
> +++ b/arch/arm/plat-mxc/include/mach/sdma.h
> @@ -49,14 +49,12 @@ struct sdma_script_start_addrs {
>   * struct sdma_platform_data - platform specific data for SDMA engine
>   *
>   * @sdma_version	The version of this SDMA engine
> - * @cpu_name		used to generate the firmware name
> - * @to_version		CPU Tape out version
> + * @fw_name		The firmware name
>   * @script_addrs	SDMA scripts addresses in SDMA ROM
>   */
>  struct sdma_platform_data {
>  	int sdma_version;
> -	char *cpu_name;
> -	int to_version;
> +	char *fw_name;
>  	struct sdma_script_start_addrs *script_addrs;
>  };
>  
> diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
> index b6d1455..1ea47db 100644
> --- a/drivers/dma/imx-sdma.c
> +++ b/drivers/dma/imx-sdma.c
> @@ -1105,7 +1105,7 @@ static void sdma_add_scripts(struct sdma_engine *sdma,
>  }
>  
>  static int __init sdma_get_firmware(struct sdma_engine *sdma,
> -		const char *cpu_name, int to_version)
> +		const char *fw_name)
>  {
>  	const struct firmware *fw;
>  	char *fwname;
> @@ -1114,7 +1114,7 @@ static int __init sdma_get_firmware(struct sdma_engine *sdma,
>  	const struct sdma_script_start_addrs *addr;
>  	unsigned short *ram_code;
>  
> -	fwname = kasprintf(GFP_KERNEL, "sdma-%s-to%d.bin", cpu_name, to_version);
> +	fwname = kasprintf(GFP_KERNEL, "%s", fw_name);
>  	if (!fwname)
>  		return -ENOMEM;
>  
> @@ -1317,7 +1317,7 @@ static int __init sdma_probe(struct platform_device *pdev)
>  	if (pdata->script_addrs)
>  		sdma_add_scripts(sdma, pdata->script_addrs);
>  
> -	sdma_get_firmware(sdma, pdata->cpu_name, pdata->to_version);
> +	sdma_get_firmware(sdma, pdata->fw_name);
>  
>  	sdma->dma_device.dev = &pdev->dev;
>  

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration
  2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
                   ` (5 preceding siblings ...)
  2011-06-22 14:41 ` [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data Shawn Guo
@ 2011-06-27  9:51 ` Sascha Hauer
  6 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2011-06-27  9:51 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jun 22, 2011 at 10:41:25PM +0800, Shawn Guo wrote:
> The patch set makes some small fixes on imx-dma device registration
> code, and then cleans up the code by breaking the concentrated
> imx-dma device registration into soc specific setup function.
> This is basically what gpio-mxc device registration is doing.
> In this way, we can avoid the churn of "#ifdef" and the cpu_is_mx
> checking on such a long list of soc family, which makes no sense,
> considering more soc supports need to be added and we need to
> support single image for multiple socs in the long run.
> 
> Changes since v1:
>  * Drop the patch #5 in v1 and add another one to pass firmware
>    name as a string via platform data
>  * Rebase it on Sascha's tree
> 
> Shawn Guo (6):
>       ARM: mxc: imx-sdma device gets 16K iosize than 4K
>       ARM: mxc: sdma on imx25 is a V2 block
>       ARM: mxc: change imx-dma default to_version to 1
>       ARM: mxc: imx-dma on imx25 has no other TO version but TO1
>       ARM: mxc: clean up imx-dma device registration
>       dmaengine: imx-sdma: pass sdma firmware name via platform data

Applied to -next.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2011-06-27  9:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-22 14:41 [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Shawn Guo
2011-06-22 14:41 ` [PATCH v2 1/6] ARM: mxc: imx-sdma device gets 16K iosize than 4K Shawn Guo
2011-06-22 14:41 ` [PATCH v2 2/6] ARM: mxc: sdma on imx25 is a V2 block Shawn Guo
2011-06-22 14:41 ` [PATCH v2 3/6] ARM: mxc: change imx-dma default to_version to 1 Shawn Guo
2011-06-22 14:41 ` [PATCH v2 4/6] ARM: mxc: imx-dma on imx25 has no other TO version but TO1 Shawn Guo
2011-06-22 14:41 ` [PATCH v2 5/6] ARM: mxc: clean up imx-dma device registration Shawn Guo
2011-06-22 14:41 ` [PATCH v2 6/6] dmaengine: imx-sdma: pass sdma firmware name via platform data Shawn Guo
2011-06-23  7:45   ` Sascha Hauer
2011-06-24 10:50   ` Vinod Koul
2011-06-27  9:51 ` [PATCH v2 0/6] Some fixes and cleanup on imx-dma device registration Sascha Hauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.