* [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-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-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: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.