* [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
@ 2016-09-15 19:41 ` Sam Van Den Berge
0 siblings, 0 replies; 10+ messages in thread
From: Sam Van Den Berge @ 2016-09-15 19:41 UTC (permalink / raw)
To: vinod.koul, dmaengine
Cc: k.kozlowski, kgene, linux-arm-kernel, linux-samsung-soc,
linux-kernel, Sam Van Den Berge
This patch updates the s3c24xx dma driver to be able to pass a
dma_slave_map array via the platform data. This is needed to
be able to use the new, simpler dmaengine API [1].
I used the virtual DMA channels as a parameter for the dma_filter
function. By doing that, I could reuse the existing filter function in
drivers/dma/s3c24xx-dma.c.
I have tested this on my mini2440 board with the audio driver.
(I first applied the audio fixes from Sylwester Nawrocki [2])
According to my observations, dma_request_slave_channel in the
function dmaengine_pcm_new in the file
sound/soc/soc-generic-dmaengine-pcm.c now returns a valid DMA channel
whereas before no DMA channel was returned at that point.
Entries for DMACH_XD0, DMACH_XD1 and DMACH_TIMER are missing because I
don't realy know which driver to use for these.
[1]
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/393635.html
[2] http://www.spinics.net/lists/arm-kernel/msg521918.html
Signed-off-by: Sam Van Den Berge <sam.van.den.berge@telenet.be>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---
Changes since v1:
- rename arm into dmaengine in title
- one channel for s3c2440-sdi named "rx-tx"
arch/arm/mach-s3c24xx/common.c | 35 +++++++++++++++++++++++++++++++
drivers/dma/s3c24xx-dma.c | 3 +++
include/linux/platform_data/dma-s3c24xx.h | 6 ++++++
3 files changed, 44 insertions(+)
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
index fe7485d..13785c9 100644
--- a/arch/arm/mach-s3c24xx/common.c
+++ b/arch/arm/mach-s3c24xx/common.c
@@ -33,6 +33,7 @@
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/platform_data/dma-s3c24xx.h>
+#include <linux/dmaengine.h>
#include <mach/hardware.h>
#include <mach/regs-clock.h>
@@ -445,10 +446,44 @@ static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
[DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
};
+static const struct dma_slave_map s3c2440_dma_slave_map[] = {
+ /* TODO: DMACH_XD0 */
+ /* TODO: DMACH_XD1 */
+ { "3c2440-sdi", "rx-tx", (void *)DMACH_SDI },
+ { "s3c2410-spi.0", "rx", (void *)DMACH_SPI0 },
+ { "s3c2410-spi.0", "tx", (void *)DMACH_SPI0 },
+ { "s3c2410-spi.1", "rx", (void *)DMACH_SPI1 },
+ { "s3c2410-spi.1", "tx", (void *)DMACH_SPI1 },
+ { "s3c2440-uart.0", "rx", (void *)DMACH_UART0 },
+ { "s3c2440-uart.0", "tx", (void *)DMACH_UART0 },
+ { "s3c2440-uart.1", "rx", (void *)DMACH_UART1 },
+ { "s3c2440-uart.1", "tx", (void *)DMACH_UART1 },
+ { "s3c2440-uart.2", "rx", (void *)DMACH_UART2 },
+ { "s3c2440-uart.2", "tx", (void *)DMACH_UART2 },
+ { "s3c2440-uart.3", "rx", (void *)DMACH_UART3 },
+ { "s3c2440-uart.3", "tx", (void *)DMACH_UART3 },
+ /* TODO: DMACH_TIMER */
+ { "s3c24xx-iis", "rx", (void *)DMACH_I2S_IN },
+ { "s3c24xx-iis", "tx", (void *)DMACH_I2S_OUT },
+ { "samsung-ac97", "rx", (void *)DMACH_PCM_IN },
+ { "samsung-ac97", "tx", (void *)DMACH_PCM_OUT },
+ { "samsung-ac97", "rx", (void *)DMACH_MIC_IN },
+ { "s3c-hsudc", "rx0", (void *)DMACH_USB_EP1 },
+ { "s3c-hsudc", "rx1", (void *)DMACH_USB_EP2 },
+ { "s3c-hsudc", "rx2", (void *)DMACH_USB_EP3 },
+ { "s3c-hsudc", "rx3", (void *)DMACH_USB_EP4 },
+ { "s3c-hsudc", "tx0", (void *)DMACH_USB_EP1 },
+ { "s3c-hsudc", "tx1", (void *)DMACH_USB_EP2 },
+ { "s3c-hsudc", "tx2", (void *)DMACH_USB_EP3 },
+ { "s3c-hsudc", "tx3", (void *)DMACH_USB_EP4 }
+};
+
static struct s3c24xx_dma_platdata s3c2440_dma_platdata = {
.num_phy_channels = 4,
.channels = s3c2440_dma_channels,
.num_channels = DMACH_MAX,
+ .slave_map = s3c2440_dma_slave_map,
+ .slavecnt = ARRAY_SIZE(s3c2440_dma_slave_map),
};
struct platform_device s3c2440_device_dma = {
diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index ce67075..d5c85e7 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -1301,6 +1301,9 @@ static int s3c24xx_dma_probe(struct platform_device *pdev)
s3cdma->slave.device_prep_dma_cyclic = s3c24xx_dma_prep_dma_cyclic;
s3cdma->slave.device_config = s3c24xx_dma_set_runtime_config;
s3cdma->slave.device_terminate_all = s3c24xx_dma_terminate_all;
+ s3cdma->slave.filter.map = pdata->slave_map;
+ s3cdma->slave.filter.mapcnt = pdata->slavecnt;
+ s3cdma->slave.filter.fn = s3c24xx_dma_filter;
/* Register as many memcpy channels as there are physical channels */
ret = s3c24xx_dma_init_virtual_channels(s3cdma, &s3cdma->memcpy,
diff --git a/include/linux/platform_data/dma-s3c24xx.h b/include/linux/platform_data/dma-s3c24xx.h
index 89ba1b0..4f9aba4 100644
--- a/include/linux/platform_data/dma-s3c24xx.h
+++ b/include/linux/platform_data/dma-s3c24xx.h
@@ -30,16 +30,22 @@ struct s3c24xx_dma_channel {
u16 chansel;
};
+struct dma_slave_map;
+
/**
* struct s3c24xx_dma_platdata - platform specific settings
* @num_phy_channels: number of physical channels
* @channels: array of virtual channel descriptions
* @num_channels: number of virtual channels
+ * @slave_map: dma slave map matching table
+ * @slavecnt: number of elements in slave_map
*/
struct s3c24xx_dma_platdata {
int num_phy_channels;
struct s3c24xx_dma_channel *channels;
int num_channels;
+ const struct dma_slave_map *slave_map;
+ int slavecnt;
};
struct dma_chan;
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
@ 2016-09-15 19:41 ` Sam Van Den Berge
0 siblings, 0 replies; 10+ messages in thread
From: Sam Van Den Berge @ 2016-09-15 19:41 UTC (permalink / raw)
To: linux-arm-kernel
This patch updates the s3c24xx dma driver to be able to pass a
dma_slave_map array via the platform data. This is needed to
be able to use the new, simpler dmaengine API [1].
I used the virtual DMA channels as a parameter for the dma_filter
function. By doing that, I could reuse the existing filter function in
drivers/dma/s3c24xx-dma.c.
I have tested this on my mini2440 board with the audio driver.
(I first applied the audio fixes from Sylwester Nawrocki [2])
According to my observations, dma_request_slave_channel in the
function dmaengine_pcm_new in the file
sound/soc/soc-generic-dmaengine-pcm.c now returns a valid DMA channel
whereas before no DMA channel was returned at that point.
Entries for DMACH_XD0, DMACH_XD1 and DMACH_TIMER are missing because I
don't realy know which driver to use for these.
[1]
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/393635.html
[2] http://www.spinics.net/lists/arm-kernel/msg521918.html
Signed-off-by: Sam Van Den Berge <sam.van.den.berge@telenet.be>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---
Changes since v1:
- rename arm into dmaengine in title
- one channel for s3c2440-sdi named "rx-tx"
arch/arm/mach-s3c24xx/common.c | 35 +++++++++++++++++++++++++++++++
drivers/dma/s3c24xx-dma.c | 3 +++
include/linux/platform_data/dma-s3c24xx.h | 6 ++++++
3 files changed, 44 insertions(+)
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
index fe7485d..13785c9 100644
--- a/arch/arm/mach-s3c24xx/common.c
+++ b/arch/arm/mach-s3c24xx/common.c
@@ -33,6 +33,7 @@
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/platform_data/dma-s3c24xx.h>
+#include <linux/dmaengine.h>
#include <mach/hardware.h>
#include <mach/regs-clock.h>
@@ -445,10 +446,44 @@ static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
[DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
};
+static const struct dma_slave_map s3c2440_dma_slave_map[] = {
+ /* TODO: DMACH_XD0 */
+ /* TODO: DMACH_XD1 */
+ { "3c2440-sdi", "rx-tx", (void *)DMACH_SDI },
+ { "s3c2410-spi.0", "rx", (void *)DMACH_SPI0 },
+ { "s3c2410-spi.0", "tx", (void *)DMACH_SPI0 },
+ { "s3c2410-spi.1", "rx", (void *)DMACH_SPI1 },
+ { "s3c2410-spi.1", "tx", (void *)DMACH_SPI1 },
+ { "s3c2440-uart.0", "rx", (void *)DMACH_UART0 },
+ { "s3c2440-uart.0", "tx", (void *)DMACH_UART0 },
+ { "s3c2440-uart.1", "rx", (void *)DMACH_UART1 },
+ { "s3c2440-uart.1", "tx", (void *)DMACH_UART1 },
+ { "s3c2440-uart.2", "rx", (void *)DMACH_UART2 },
+ { "s3c2440-uart.2", "tx", (void *)DMACH_UART2 },
+ { "s3c2440-uart.3", "rx", (void *)DMACH_UART3 },
+ { "s3c2440-uart.3", "tx", (void *)DMACH_UART3 },
+ /* TODO: DMACH_TIMER */
+ { "s3c24xx-iis", "rx", (void *)DMACH_I2S_IN },
+ { "s3c24xx-iis", "tx", (void *)DMACH_I2S_OUT },
+ { "samsung-ac97", "rx", (void *)DMACH_PCM_IN },
+ { "samsung-ac97", "tx", (void *)DMACH_PCM_OUT },
+ { "samsung-ac97", "rx", (void *)DMACH_MIC_IN },
+ { "s3c-hsudc", "rx0", (void *)DMACH_USB_EP1 },
+ { "s3c-hsudc", "rx1", (void *)DMACH_USB_EP2 },
+ { "s3c-hsudc", "rx2", (void *)DMACH_USB_EP3 },
+ { "s3c-hsudc", "rx3", (void *)DMACH_USB_EP4 },
+ { "s3c-hsudc", "tx0", (void *)DMACH_USB_EP1 },
+ { "s3c-hsudc", "tx1", (void *)DMACH_USB_EP2 },
+ { "s3c-hsudc", "tx2", (void *)DMACH_USB_EP3 },
+ { "s3c-hsudc", "tx3", (void *)DMACH_USB_EP4 }
+};
+
static struct s3c24xx_dma_platdata s3c2440_dma_platdata = {
.num_phy_channels = 4,
.channels = s3c2440_dma_channels,
.num_channels = DMACH_MAX,
+ .slave_map = s3c2440_dma_slave_map,
+ .slavecnt = ARRAY_SIZE(s3c2440_dma_slave_map),
};
struct platform_device s3c2440_device_dma = {
diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index ce67075..d5c85e7 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -1301,6 +1301,9 @@ static int s3c24xx_dma_probe(struct platform_device *pdev)
s3cdma->slave.device_prep_dma_cyclic = s3c24xx_dma_prep_dma_cyclic;
s3cdma->slave.device_config = s3c24xx_dma_set_runtime_config;
s3cdma->slave.device_terminate_all = s3c24xx_dma_terminate_all;
+ s3cdma->slave.filter.map = pdata->slave_map;
+ s3cdma->slave.filter.mapcnt = pdata->slavecnt;
+ s3cdma->slave.filter.fn = s3c24xx_dma_filter;
/* Register as many memcpy channels as there are physical channels */
ret = s3c24xx_dma_init_virtual_channels(s3cdma, &s3cdma->memcpy,
diff --git a/include/linux/platform_data/dma-s3c24xx.h b/include/linux/platform_data/dma-s3c24xx.h
index 89ba1b0..4f9aba4 100644
--- a/include/linux/platform_data/dma-s3c24xx.h
+++ b/include/linux/platform_data/dma-s3c24xx.h
@@ -30,16 +30,22 @@ struct s3c24xx_dma_channel {
u16 chansel;
};
+struct dma_slave_map;
+
/**
* struct s3c24xx_dma_platdata - platform specific settings
* @num_phy_channels: number of physical channels
* @channels: array of virtual channel descriptions
* @num_channels: number of virtual channels
+ * @slave_map: dma slave map matching table
+ * @slavecnt: number of elements in slave_map
*/
struct s3c24xx_dma_platdata {
int num_phy_channels;
struct s3c24xx_dma_channel *channels;
int num_channels;
+ const struct dma_slave_map *slave_map;
+ int slavecnt;
};
struct dma_chan;
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
2016-09-15 19:41 ` Sam Van Den Berge
@ 2016-09-16 11:00 ` Sylwester Nawrocki
-1 siblings, 0 replies; 10+ messages in thread
From: Sylwester Nawrocki @ 2016-09-16 11:00 UTC (permalink / raw)
To: Sam Van Den Berge
Cc: vinod.koul, dmaengine, k.kozlowski, kgene, linux-arm-kernel,
linux-samsung-soc, linux-kernel
On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> @@ -445,10 +446,44 @@ static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
> [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
> };
>
> +static const struct dma_slave_map s3c2440_dma_slave_map[] = {
> + /* TODO: DMACH_XD0 */
> + /* TODO: DMACH_XD1 */
> + { "3c2440-sdi", "rx-tx", (void *)DMACH_SDI },
Thanks for the patch, still device name needs to be changed here
to "s3c2440-sdi".
--
Regards,
Sylwester
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
@ 2016-09-16 11:00 ` Sylwester Nawrocki
0 siblings, 0 replies; 10+ messages in thread
From: Sylwester Nawrocki @ 2016-09-16 11:00 UTC (permalink / raw)
To: linux-arm-kernel
On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> @@ -445,10 +446,44 @@ static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
> [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
> };
>
> +static const struct dma_slave_map s3c2440_dma_slave_map[] = {
> + /* TODO: DMACH_XD0 */
> + /* TODO: DMACH_XD1 */
> + { "3c2440-sdi", "rx-tx", (void *)DMACH_SDI },
Thanks for the patch, still device name needs to be changed here
to "s3c2440-sdi".
--
Regards,
Sylwester
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
2016-09-15 19:41 ` Sam Van Den Berge
@ 2016-09-16 11:16 ` Krzysztof Kozlowski
-1 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2016-09-16 11:16 UTC (permalink / raw)
To: Sam Van Den Berge, vinod.koul, dmaengine
Cc: kgene, linux-arm-kernel, linux-samsung-soc, linux-kernel
On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> This patch updates the s3c24xx dma driver to be able to pass a
> dma_slave_map array via the platform data. This is needed to
> be able to use the new, simpler dmaengine API [1].
> I used the virtual DMA channels as a parameter for the dma_filter
> function. By doing that, I could reuse the existing filter function in
> drivers/dma/s3c24xx-dma.c.
>
> I have tested this on my mini2440 board with the audio driver.
> (I first applied the audio fixes from Sylwester Nawrocki [2])
> According to my observations, dma_request_slave_channel in the
> function dmaengine_pcm_new in the file
> sound/soc/soc-generic-dmaengine-pcm.c now returns a valid DMA channel
> whereas before no DMA channel was returned at that point.
>
> Entries for DMACH_XD0, DMACH_XD1 and DMACH_TIMER are missing because I
> don't realy know which driver to use for these.
>
> [1]
> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/393635.html
> [2] http://www.spinics.net/lists/arm-kernel/msg521918.html
>
> Signed-off-by: Sam Van Den Berge <sam.van.den.berge@telenet.be>
> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
>
> ---
>
> Changes since v1:
> - rename arm into dmaengine in title
> - one channel for s3c2440-sdi named "rx-tx"
>
> arch/arm/mach-s3c24xx/common.c | 35 +++++++++++++++++++++++++++++++
> drivers/dma/s3c24xx-dma.c | 3 +++
> include/linux/platform_data/dma-s3c24xx.h | 6 ++++++
> 3 files changed, 44 insertions(+)
Vinod, do you want to take it through your tree? Not much difference for
me, so in such case:
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
@ 2016-09-16 11:16 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2016-09-16 11:16 UTC (permalink / raw)
To: linux-arm-kernel
On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> This patch updates the s3c24xx dma driver to be able to pass a
> dma_slave_map array via the platform data. This is needed to
> be able to use the new, simpler dmaengine API [1].
> I used the virtual DMA channels as a parameter for the dma_filter
> function. By doing that, I could reuse the existing filter function in
> drivers/dma/s3c24xx-dma.c.
>
> I have tested this on my mini2440 board with the audio driver.
> (I first applied the audio fixes from Sylwester Nawrocki [2])
> According to my observations, dma_request_slave_channel in the
> function dmaengine_pcm_new in the file
> sound/soc/soc-generic-dmaengine-pcm.c now returns a valid DMA channel
> whereas before no DMA channel was returned at that point.
>
> Entries for DMACH_XD0, DMACH_XD1 and DMACH_TIMER are missing because I
> don't realy know which driver to use for these.
>
> [1]
> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/393635.html
> [2] http://www.spinics.net/lists/arm-kernel/msg521918.html
>
> Signed-off-by: Sam Van Den Berge <sam.van.den.berge@telenet.be>
> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
>
> ---
>
> Changes since v1:
> - rename arm into dmaengine in title
> - one channel for s3c2440-sdi named "rx-tx"
>
> arch/arm/mach-s3c24xx/common.c | 35 +++++++++++++++++++++++++++++++
> drivers/dma/s3c24xx-dma.c | 3 +++
> include/linux/platform_data/dma-s3c24xx.h | 6 ++++++
> 3 files changed, 44 insertions(+)
Vinod, do you want to take it through your tree? Not much difference for
me, so in such case:
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
2016-09-16 11:00 ` Sylwester Nawrocki
@ 2016-09-18 18:18 ` Sam Van Den Berge
-1 siblings, 0 replies; 10+ messages in thread
From: Sam Van Den Berge @ 2016-09-18 18:18 UTC (permalink / raw)
To: Sylwester Nawrocki
Cc: vinod.koul, dmaengine, k.kozlowski, kgene, linux-arm-kernel,
linux-samsung-soc, linux-kernel
On Fri, Sep 16, 2016 at 01:00:12PM +0200, Sylwester Nawrocki wrote:
> On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> > @@ -445,10 +446,44 @@ static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
> > [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
> > };
> >
> > +static const struct dma_slave_map s3c2440_dma_slave_map[] = {
> > + /* TODO: DMACH_XD0 */
> > + /* TODO: DMACH_XD1 */
> > + { "3c2440-sdi", "rx-tx", (void *)DMACH_SDI },
>
> Thanks for the patch, still device name needs to be changed here
> to "s3c2440-sdi".
Thanks for spotting this! I guess I was too focused on the "rx-tx" part
that I totally missed the missing leading "s". I will fix this in v3.
Sam.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
@ 2016-09-18 18:18 ` Sam Van Den Berge
0 siblings, 0 replies; 10+ messages in thread
From: Sam Van Den Berge @ 2016-09-18 18:18 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Sep 16, 2016 at 01:00:12PM +0200, Sylwester Nawrocki wrote:
> On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> > @@ -445,10 +446,44 @@ static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
> > [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
> > };
> >
> > +static const struct dma_slave_map s3c2440_dma_slave_map[] = {
> > + /* TODO: DMACH_XD0 */
> > + /* TODO: DMACH_XD1 */
> > + { "3c2440-sdi", "rx-tx", (void *)DMACH_SDI },
>
> Thanks for the patch, still device name needs to be changed here
> to "s3c2440-sdi".
Thanks for spotting this! I guess I was too focused on the "rx-tx" part
that I totally missed the missing leading "s". I will fix this in v3.
Sam.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
2016-09-16 11:16 ` Krzysztof Kozlowski
@ 2016-09-22 18:48 ` Sam Van Den Berge
-1 siblings, 0 replies; 10+ messages in thread
From: Sam Van Den Berge @ 2016-09-22 18:48 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: vinod.koul, dmaengine, kgene, linux-arm-kernel, linux-samsung-soc,
linux-kernel, sam.van.den.berge
On Fri, Sep 16, 2016 at 01:16:31PM +0200, Krzysztof Kozlowski wrote:
> On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> > This patch updates the s3c24xx dma driver to be able to pass a
> > dma_slave_map array via the platform data. This is needed to
> > be able to use the new, simpler dmaengine API [1].
> > I used the virtual DMA channels as a parameter for the dma_filter
> > function. By doing that, I could reuse the existing filter function in
> > drivers/dma/s3c24xx-dma.c.
> >
> > I have tested this on my mini2440 board with the audio driver.
> > (I first applied the audio fixes from Sylwester Nawrocki [2])
> > According to my observations, dma_request_slave_channel in the
> > function dmaengine_pcm_new in the file
> > sound/soc/soc-generic-dmaengine-pcm.c now returns a valid DMA channel
> > whereas before no DMA channel was returned at that point.
> >
> > Entries for DMACH_XD0, DMACH_XD1 and DMACH_TIMER are missing because I
> > don't realy know which driver to use for these.
> >
> > [1]
> > http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/393635.html
> > [2] http://www.spinics.net/lists/arm-kernel/msg521918.html
> >
> > Signed-off-by: Sam Van Den Berge <sam.van.den.berge@telenet.be>
> > Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> > Acked-by: Arnd Bergmann <arnd@arndb.de>
> >
> > ---
> >
> > Changes since v1:
> > - rename arm into dmaengine in title
> > - one channel for s3c2440-sdi named "rx-tx"
> >
> > arch/arm/mach-s3c24xx/common.c | 35 +++++++++++++++++++++++++++++++
> > drivers/dma/s3c24xx-dma.c | 3 +++
> > include/linux/platform_data/dma-s3c24xx.h | 6 ++++++
> > 3 files changed, 44 insertions(+)
>
> Vinod, do you want to take it through your tree? Not much difference for
> me, so in such case:
> Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
I was kinda waiting for an answer on this question because I didn't know
if I should add the acked-by or not but I'm going to assume that it's ok
so I'll include it in the third version of this patch.
>
> Best regards,
> Krzysztof
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
@ 2016-09-22 18:48 ` Sam Van Den Berge
0 siblings, 0 replies; 10+ messages in thread
From: Sam Van Den Berge @ 2016-09-22 18:48 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Sep 16, 2016 at 01:16:31PM +0200, Krzysztof Kozlowski wrote:
> On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> > This patch updates the s3c24xx dma driver to be able to pass a
> > dma_slave_map array via the platform data. This is needed to
> > be able to use the new, simpler dmaengine API [1].
> > I used the virtual DMA channels as a parameter for the dma_filter
> > function. By doing that, I could reuse the existing filter function in
> > drivers/dma/s3c24xx-dma.c.
> >
> > I have tested this on my mini2440 board with the audio driver.
> > (I first applied the audio fixes from Sylwester Nawrocki [2])
> > According to my observations, dma_request_slave_channel in the
> > function dmaengine_pcm_new in the file
> > sound/soc/soc-generic-dmaengine-pcm.c now returns a valid DMA channel
> > whereas before no DMA channel was returned at that point.
> >
> > Entries for DMACH_XD0, DMACH_XD1 and DMACH_TIMER are missing because I
> > don't realy know which driver to use for these.
> >
> > [1]
> > http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/393635.html
> > [2] http://www.spinics.net/lists/arm-kernel/msg521918.html
> >
> > Signed-off-by: Sam Van Den Berge <sam.van.den.berge@telenet.be>
> > Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> > Acked-by: Arnd Bergmann <arnd@arndb.de>
> >
> > ---
> >
> > Changes since v1:
> > - rename arm into dmaengine in title
> > - one channel for s3c2440-sdi named "rx-tx"
> >
> > arch/arm/mach-s3c24xx/common.c | 35 +++++++++++++++++++++++++++++++
> > drivers/dma/s3c24xx-dma.c | 3 +++
> > include/linux/platform_data/dma-s3c24xx.h | 6 ++++++
> > 3 files changed, 44 insertions(+)
>
> Vinod, do you want to take it through your tree? Not much difference for
> me, so in such case:
> Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
I was kinda waiting for an answer on this question because I didn't know
if I should add the acked-by or not but I'm going to assume that it's ok
so I'll include it in the third version of this patch.
>
> Best regards,
> Krzysztof
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-09-22 18:48 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20160915194202eucas1p2fa3c4d1c9713e3713f956e1b114e1525@eucas1p2.samsung.com>
2016-09-15 19:41 ` [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices Sam Van Den Berge
2016-09-15 19:41 ` Sam Van Den Berge
2016-09-16 11:00 ` Sylwester Nawrocki
2016-09-16 11:00 ` Sylwester Nawrocki
2016-09-18 18:18 ` Sam Van Den Berge
2016-09-18 18:18 ` Sam Van Den Berge
2016-09-16 11:16 ` Krzysztof Kozlowski
2016-09-16 11:16 ` Krzysztof Kozlowski
2016-09-22 18:48 ` Sam Van Den Berge
2016-09-22 18:48 ` Sam Van Den Berge
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.