* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
@ 2013-10-11 8:59 Heiko Stübner
2013-10-11 9:00 ` [PATCH RESEND 1/3] ARM: S3C24XX: Fix possible dma selection warning Heiko Stübner
` (5 more replies)
0 siblings, 6 replies; 16+ messages in thread
From: Heiko Stübner @ 2013-10-11 8:59 UTC (permalink / raw)
To: linux-arm-kernel
[I messed up the linux-arm-kernel list address yesterday, so I resend it
with a fixed address, sorry for the noise]
When Olof reported the warning about the unused s3c2410_dma_resource, I
thought the best way forward would be to simply implement the missing
pieces and so it has users :-) .
Therefore this series adds the necessary platform-devices for s3c2410,
s3c2440 and s3c2442. This especially also includes the channel-constraints
of those socs.
As I do not have access to any of those socs these changes are of course
compile-tested only.
Heiko Stuebner (3):
ARM: S3C24XX: Fix possible dma selection warning
dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
ARM: S3C24XX: add dma platformdata for s3c2410, s3c2440 and s3c2442
arch/arm/mach-s3c24xx/Kconfig | 3 +-
arch/arm/mach-s3c24xx/common.c | 100 +++++++++++++++++++++++++++++
arch/arm/mach-s3c24xx/common.h | 2 +
drivers/dma/s3c24xx-dma.c | 10 +++
include/linux/platform_data/dma-s3c24xx.h | 3 +
sound/soc/samsung/Kconfig | 2 +-
6 files changed, 118 insertions(+), 2 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 1/3] ARM: S3C24XX: Fix possible dma selection warning
2013-10-11 8:59 [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Heiko Stübner
@ 2013-10-11 9:00 ` Heiko Stübner
2013-10-11 9:01 ` [PATCH RESEND 2/3] dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller Heiko Stübner
` (4 subsequent siblings)
5 siblings, 0 replies; 16+ messages in thread
From: Heiko Stübner @ 2013-10-11 9:00 UTC (permalink / raw)
To: linux-arm-kernel
Currently the s3c sound support selects CONFIG_S3C2410_DMA on s3c24xx
architectures while the generic dma config is enabled by CONFIG_S3C24XX_DMA.
With the way the Kconfig options are layed out currently it is possible
to enable Samsung sound support without enabling the necessary dma support
resulting in warnings like
warning: (SND_SOC_SAMSUNG && SND_S3C24XX_I2S && SND_S3C2412_SOC_I2S &&
SND_SOC_SAMSUNG_SMDK2443_WM9710 && SND_SOC_SAMSUNG_LN2440SBC_ALC650)
selects S3C2410_DMA which has unmet direct dependencies (ARCH_S3C24XX &&
S3C24XX_DMA && (CPU_S3C2410 || CPU_S3C2442))
Therefore bring the s3c2410 dma support in line with the way the other
s3c24xx SoCs handle this by having the SoC dma-support selected if the generic
s3c dma support is enabled and have the sound support depend on S3C24XX_DMA
on these arches. The s3c2442 is using the same dma descriptors and therefore
also selected S3C2410_DMA.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm/mach-s3c24xx/Kconfig | 3 ++-
sound/soc/samsung/Kconfig | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index dba2173..8f1d327 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -28,6 +28,7 @@ config CPU_S3C2410
select CPU_ARM920T
select CPU_LLSERIAL_S3C2410
select S3C2410_CLOCK
+ select S3C2410_DMA if S3C24XX_DMA
select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ
select S3C2410_PM if PM
select SAMSUNG_WDT_RESET
@@ -70,6 +71,7 @@ config CPU_S3C2442
select CPU_ARM920T
select CPU_LLSERIAL_S3C2440
select S3C2410_CLOCK
+ select S3C2410_DMA if S3C24XX_DMA
select S3C2410_PM if PM
help
Support for S3C2442 Samsung Mobile CPU based systems.
@@ -148,7 +150,6 @@ config S3C2410_DMA_DEBUG
config S3C2410_DMA
bool
depends on S3C24XX_DMA && (CPU_S3C2410 || CPU_S3C2442)
- default y if CPU_S3C2410 || CPU_S3C2442
help
DMA device selection for S3C2410 and compatible CPUs
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
index 2eea184..37459df 100644
--- a/sound/soc/samsung/Kconfig
+++ b/sound/soc/samsung/Kconfig
@@ -2,7 +2,7 @@ config SND_SOC_SAMSUNG
tristate "ASoC support for Samsung"
depends on PLAT_SAMSUNG
select S3C64XX_DMA if ARCH_S3C64XX
- select S3C2410_DMA if ARCH_S3C24XX
+ select S3C24XX_DMA if ARCH_S3C24XX
help
Say Y or M if you want to add support for codecs attached to
the Samsung SoCs' Audio interfaces. You will also need to
--
1.7.10.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH RESEND 2/3] dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
2013-10-11 8:59 [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Heiko Stübner
2013-10-11 9:00 ` [PATCH RESEND 1/3] ARM: S3C24XX: Fix possible dma selection warning Heiko Stübner
@ 2013-10-11 9:01 ` Heiko Stübner
2013-10-16 2:04 ` Vinod Koul
2013-10-11 9:01 ` [PATCH RESEND 3/3] ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442 Heiko Stübner
` (3 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Heiko Stübner @ 2013-10-11 9:01 UTC (permalink / raw)
To: linux-arm-kernel
The earliest variants of the dma controller did not contain support for
controlling clocks.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
drivers/dma/s3c24xx-dma.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index 56c9253..4cb1279 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -1078,6 +1078,13 @@ static void s3c24xx_dma_free_virtual_channels(struct dma_device *dmadev)
list_del(&chan->vc.chan.device_node);
}
+/* s3c2410, s3c2440 and s3c2442 have a 0x40 stride without separate clocks */
+static struct soc_data soc_s3c2410 = {
+ .stride = 0x40,
+ .has_reqsel = false,
+ .has_clocks = false,
+};
+
/* s3c2412 and s3c2413 have a 0x40 stride and dmareqsel mechanism */
static struct soc_data soc_s3c2412 = {
.stride = 0x40,
@@ -1094,6 +1101,9 @@ static struct soc_data soc_s3c2443 = {
static struct platform_device_id s3c24xx_dma_driver_ids[] = {
{
+ .name = "s3c2410-dma",
+ .driver_data = (kernel_ulong_t)&soc_s3c2410,
+ }, {
.name = "s3c2412-dma",
.driver_data = (kernel_ulong_t)&soc_s3c2412,
}, {
--
1.7.10.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH RESEND 3/3] ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442
2013-10-11 8:59 [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Heiko Stübner
2013-10-11 9:00 ` [PATCH RESEND 1/3] ARM: S3C24XX: Fix possible dma selection warning Heiko Stübner
2013-10-11 9:01 ` [PATCH RESEND 2/3] dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller Heiko Stübner
@ 2013-10-11 9:01 ` Heiko Stübner
2013-10-13 14:55 ` Vinod Koul
2013-10-12 4:38 ` [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Tomasz Figa
` (2 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Heiko Stübner @ 2013-10-11 9:01 UTC (permalink / raw)
To: linux-arm-kernel
s3c2410 and s3c2442 share the same dma channels while s3c2440 has
slight differences. But on all three the reachable sources per dma
channel has constraints attached and thus encodes the usable
combinations using the S3C24XX_DMA_CHANREQ macro.
This also fixes the warning about s3c2410_dma_resource being unused
as reported by Olof Johansson.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm/mach-s3c24xx/common.c | 100 +++++++++++++++++++++++++++++
arch/arm/mach-s3c24xx/common.h | 2 +
include/linux/platform_data/dma-s3c24xx.h | 3 +
3 files changed, 105 insertions(+)
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
index 16ac669..4cfe7a4 100644
--- a/arch/arm/mach-s3c24xx/common.c
+++ b/arch/arm/mach-s3c24xx/common.c
@@ -343,6 +343,50 @@ static struct resource s3c2410_dma_resource[] = {
};
#endif
+#if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2442)
+static struct s3c24xx_dma_channel s3c2410_dma_channels[DMACH_MAX] = {
+ [DMACH_XD0] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 0), },
+ [DMACH_XD1] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 1), },
+ [DMACH_SDI] = { S3C24XX_DMA_APB, false, S3C24XX_DMA_CHANREQ(2, 0) |
+ S3C24XX_DMA_CHANREQ(2, 2) |
+ S3C24XX_DMA_CHANREQ(1, 3),
+ },
+ [DMACH_SPI0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 1), },
+ [DMACH_SPI1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 3), },
+ [DMACH_UART0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 0), },
+ [DMACH_UART1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 1), },
+ [DMACH_UART2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 3), },
+ [DMACH_TIMER] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 0) |
+ S3C24XX_DMA_CHANREQ(3, 2) |
+ S3C24XX_DMA_CHANREQ(3, 3),
+ },
+ [DMACH_I2S_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 1) |
+ S3C24XX_DMA_CHANREQ(1, 2),
+ },
+ [DMACH_I2S_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 2), },
+ [DMACH_USB_EP1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 0), },
+ [DMACH_USB_EP2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 1), },
+ [DMACH_USB_EP3] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 2), },
+ [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
+};
+
+static struct s3c24xx_dma_platdata s3c2410_dma_platdata = {
+ .num_phy_channels = 4,
+ .channels = s3c2410_dma_channels,
+ .num_channels = DMACH_MAX,
+};
+
+struct platform_device s3c2410_device_dma = {
+ .name = "s3c2410-dma",
+ .id = 0,
+ .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
+ .resource = s3c2410_dma_resource,
+ .dev = {
+ .platform_data = &s3c2410_dma_platdata,
+ },
+};
+#endif
+
#ifdef CONFIG_CPU_S3C2412
static struct s3c24xx_dma_channel s3c2412_dma_channels[DMACH_MAX] = {
[DMACH_XD0] = { S3C24XX_DMA_AHB, true, 17 },
@@ -384,6 +428,62 @@ struct platform_device s3c2412_device_dma = {
};
#endif
+#if defined(CONFIG_CPU_S3C2440)
+static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
+ [DMACH_XD0] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 0), },
+ [DMACH_XD1] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 1), },
+ [DMACH_SDI] = { S3C24XX_DMA_APB, false, S3C24XX_DMA_CHANREQ(2, 0) |
+ S3C24XX_DMA_CHANREQ(6, 1) |
+ S3C24XX_DMA_CHANREQ(2, 2) |
+ S3C24XX_DMA_CHANREQ(1, 3),
+ },
+ [DMACH_SPI0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 1), },
+ [DMACH_SPI1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 3), },
+ [DMACH_UART0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 0), },
+ [DMACH_UART1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 1), },
+ [DMACH_UART2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 3), },
+ [DMACH_TIMER] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 0) |
+ S3C24XX_DMA_CHANREQ(3, 2) |
+ S3C24XX_DMA_CHANREQ(3, 3),
+ },
+ [DMACH_I2S_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 1) |
+ S3C24XX_DMA_CHANREQ(1, 2),
+ },
+ [DMACH_I2S_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(5, 0) |
+ S3C24XX_DMA_CHANREQ(0, 2),
+ },
+ [DMACH_PCM_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(6, 0) |
+ S3C24XX_DMA_CHANREQ(5, 2),
+ },
+ [DMACH_PCM_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(5, 1) |
+ S3C24XX_DMA_CHANREQ(6, 3),
+ },
+ [DMACH_MIC_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(6, 2) |
+ S3C24XX_DMA_CHANREQ(5, 3),
+ },
+ [DMACH_USB_EP1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 0), },
+ [DMACH_USB_EP2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 1), },
+ [DMACH_USB_EP3] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 2), },
+ [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
+};
+
+static struct s3c24xx_dma_platdata s3c2440_dma_platdata = {
+ .num_phy_channels = 4,
+ .channels = s3c2440_dma_channels,
+ .num_channels = DMACH_MAX,
+};
+
+struct platform_device s3c2440_device_dma = {
+ .name = "s3c2410-dma",
+ .id = 0,
+ .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
+ .resource = s3c2410_dma_resource,
+ .dev = {
+ .platform_data = &s3c2440_dma_platdata,
+ },
+};
+#endif
+
#if defined(CONFIG_CPUS_3C2443) || defined(CONFIG_CPU_S3C2416)
static struct resource s3c2443_dma_resource[] = {
[0] = DEFINE_RES_MEM(S3C24XX_PA_DMA, S3C24XX_SZ_DMA),
diff --git a/arch/arm/mach-s3c24xx/common.h b/arch/arm/mach-s3c24xx/common.h
index fe07189..e46c104 100644
--- a/arch/arm/mach-s3c24xx/common.h
+++ b/arch/arm/mach-s3c24xx/common.h
@@ -109,7 +109,9 @@ extern void s3c2443_init_irq(void);
extern struct syscore_ops s3c24xx_irq_syscore_ops;
+extern struct platform_device s3c2410_device_dma;
extern struct platform_device s3c2412_device_dma;
+extern struct platform_device s3c2440_device_dma;
extern struct platform_device s3c2443_device_dma;
#endif /* __ARCH_ARM_MACH_S3C24XX_COMMON_H */
diff --git a/include/linux/platform_data/dma-s3c24xx.h b/include/linux/platform_data/dma-s3c24xx.h
index 5a0cfff..89ba1b0 100644
--- a/include/linux/platform_data/dma-s3c24xx.h
+++ b/include/linux/platform_data/dma-s3c24xx.h
@@ -9,6 +9,9 @@
* any later version.
*/
+/* Helper to encode the source selection constraints for early s3c socs. */
+#define S3C24XX_DMA_CHANREQ(src, chan) ((BIT(3) | src) << chan * 4)
+
enum s3c24xx_dma_bus {
S3C24XX_DMA_APB,
S3C24XX_DMA_AHB,
--
1.7.10.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-11 8:59 [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Heiko Stübner
` (2 preceding siblings ...)
2013-10-11 9:01 ` [PATCH RESEND 3/3] ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442 Heiko Stübner
@ 2013-10-12 4:38 ` Tomasz Figa
[not found] ` <15184009.9QsSDOGPSA@amdn883>
2013-10-13 14:56 ` Vinod Koul
5 siblings, 0 replies; 16+ messages in thread
From: Tomasz Figa @ 2013-10-12 4:38 UTC (permalink / raw)
To: linux-arm-kernel
Hi Heiko,
[Resending, due to my e-mail client enabling HTML formatting.
Sorry for the noise.]
On Friday 11 of October 2013 10:59:19 Heiko St?bner wrote:
> [I messed up the linux-arm-kernel list address yesterday, so I resend it
> with a fixed address, sorry for the noise]
>
> When Olof reported the warning about the unused s3c2410_dma_resource, I
> thought the best way forward would be to simply implement the missing
> pieces and so it has users :-) .
>
> Therefore this series adds the necessary platform-devices for s3c2410,
> s3c2440 and s3c2442. This especially also includes the channel-constraints
> of those socs.
>
> As I do not have access to any of those socs these changes are of course
> compile-tested only.
>
> Heiko Stuebner (3):
> ARM: S3C24XX: Fix possible dma selection warning
> dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
> ARM: S3C24XX: add dma platformdata for s3c2410, s3c2440 and s3c2442
>
> arch/arm/mach-s3c24xx/Kconfig | 3 +-
> arch/arm/mach-s3c24xx/common.c | 100 +++++++++++++++++++++++++++++
> arch/arm/mach-s3c24xx/common.h | 2 +
> drivers/dma/s3c24xx-dma.c | 10 +++
> include/linux/platform_data/dma-s3c24xx.h | 3 +
> sound/soc/samsung/Kconfig | 2 +-
> 6 files changed, 118 insertions(+), 2 deletions(-)
Big thanks for this series and the one adding DMA engine support for
S3C24xx. It would be great if someone could test this on affected
platforms, so we could finally drop the old S3C-DMA nonsense.
Anyway, for the whole series
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
[not found] ` <15184009.9QsSDOGPSA@amdn883>
@ 2013-10-12 12:33 ` Mark Brown
2013-10-13 18:29 ` Tomasz Figa
0 siblings, 1 reply; 16+ messages in thread
From: Mark Brown @ 2013-10-12 12:33 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Oct 12, 2013 at 06:36:36AM +0200, Tomasz Figa wrote:
> Big thanks for this series and the one adding DMA engine support for
> S3C24xx. It would be great if someone could test this on affected
> platforms, so we could finally drop the old S3C-DMA nonsense.
Did the s3c64xx pl08x stuff get merged?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131012/aa9cd86c/attachment.sig>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 3/3] ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442
2013-10-11 9:01 ` [PATCH RESEND 3/3] ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442 Heiko Stübner
@ 2013-10-13 14:55 ` Vinod Koul
2013-10-13 18:15 ` Heiko Stübner
0 siblings, 1 reply; 16+ messages in thread
From: Vinod Koul @ 2013-10-13 14:55 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Oct 11, 2013 at 11:01:33AM +0200, Heiko St?bner wrote:
> s3c2410 and s3c2442 share the same dma channels while s3c2440 has
> slight differences. But on all three the reachable sources per dma
> channel has constraints attached and thus encodes the usable
> combinations using the S3C24XX_DMA_CHANREQ macro.
>
> This also fixes the warning about s3c2410_dma_resource being unused
> as reported by Olof Johansson.
Perhpas you should have used Reported-by tag for that..
~Vinod
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> ---
> arch/arm/mach-s3c24xx/common.c | 100 +++++++++++++++++++++++++++++
> arch/arm/mach-s3c24xx/common.h | 2 +
> include/linux/platform_data/dma-s3c24xx.h | 3 +
> 3 files changed, 105 insertions(+)
>
> diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
> index 16ac669..4cfe7a4 100644
> --- a/arch/arm/mach-s3c24xx/common.c
> +++ b/arch/arm/mach-s3c24xx/common.c
> @@ -343,6 +343,50 @@ static struct resource s3c2410_dma_resource[] = {
> };
> #endif
>
> +#if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2442)
> +static struct s3c24xx_dma_channel s3c2410_dma_channels[DMACH_MAX] = {
> + [DMACH_XD0] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 0), },
> + [DMACH_XD1] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 1), },
> + [DMACH_SDI] = { S3C24XX_DMA_APB, false, S3C24XX_DMA_CHANREQ(2, 0) |
> + S3C24XX_DMA_CHANREQ(2, 2) |
> + S3C24XX_DMA_CHANREQ(1, 3),
> + },
> + [DMACH_SPI0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 1), },
> + [DMACH_SPI1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 3), },
> + [DMACH_UART0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 0), },
> + [DMACH_UART1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 1), },
> + [DMACH_UART2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 3), },
> + [DMACH_TIMER] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 0) |
> + S3C24XX_DMA_CHANREQ(3, 2) |
> + S3C24XX_DMA_CHANREQ(3, 3),
> + },
> + [DMACH_I2S_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 1) |
> + S3C24XX_DMA_CHANREQ(1, 2),
> + },
> + [DMACH_I2S_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 2), },
> + [DMACH_USB_EP1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 0), },
> + [DMACH_USB_EP2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 1), },
> + [DMACH_USB_EP3] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 2), },
> + [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
> +};
> +
> +static struct s3c24xx_dma_platdata s3c2410_dma_platdata = {
> + .num_phy_channels = 4,
> + .channels = s3c2410_dma_channels,
> + .num_channels = DMACH_MAX,
> +};
> +
> +struct platform_device s3c2410_device_dma = {
> + .name = "s3c2410-dma",
> + .id = 0,
> + .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
> + .resource = s3c2410_dma_resource,
> + .dev = {
> + .platform_data = &s3c2410_dma_platdata,
> + },
> +};
> +#endif
> +
> #ifdef CONFIG_CPU_S3C2412
> static struct s3c24xx_dma_channel s3c2412_dma_channels[DMACH_MAX] = {
> [DMACH_XD0] = { S3C24XX_DMA_AHB, true, 17 },
> @@ -384,6 +428,62 @@ struct platform_device s3c2412_device_dma = {
> };
> #endif
>
> +#if defined(CONFIG_CPU_S3C2440)
> +static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
> + [DMACH_XD0] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 0), },
> + [DMACH_XD1] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 1), },
> + [DMACH_SDI] = { S3C24XX_DMA_APB, false, S3C24XX_DMA_CHANREQ(2, 0) |
> + S3C24XX_DMA_CHANREQ(6, 1) |
> + S3C24XX_DMA_CHANREQ(2, 2) |
> + S3C24XX_DMA_CHANREQ(1, 3),
> + },
> + [DMACH_SPI0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 1), },
> + [DMACH_SPI1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 3), },
> + [DMACH_UART0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 0), },
> + [DMACH_UART1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 1), },
> + [DMACH_UART2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 3), },
> + [DMACH_TIMER] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 0) |
> + S3C24XX_DMA_CHANREQ(3, 2) |
> + S3C24XX_DMA_CHANREQ(3, 3),
> + },
> + [DMACH_I2S_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 1) |
> + S3C24XX_DMA_CHANREQ(1, 2),
> + },
> + [DMACH_I2S_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(5, 0) |
> + S3C24XX_DMA_CHANREQ(0, 2),
> + },
> + [DMACH_PCM_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(6, 0) |
> + S3C24XX_DMA_CHANREQ(5, 2),
> + },
> + [DMACH_PCM_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(5, 1) |
> + S3C24XX_DMA_CHANREQ(6, 3),
> + },
> + [DMACH_MIC_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(6, 2) |
> + S3C24XX_DMA_CHANREQ(5, 3),
> + },
> + [DMACH_USB_EP1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 0), },
> + [DMACH_USB_EP2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 1), },
> + [DMACH_USB_EP3] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 2), },
> + [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
> +};
> +
> +static struct s3c24xx_dma_platdata s3c2440_dma_platdata = {
> + .num_phy_channels = 4,
> + .channels = s3c2440_dma_channels,
> + .num_channels = DMACH_MAX,
> +};
> +
> +struct platform_device s3c2440_device_dma = {
> + .name = "s3c2410-dma",
> + .id = 0,
> + .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
> + .resource = s3c2410_dma_resource,
> + .dev = {
> + .platform_data = &s3c2440_dma_platdata,
> + },
> +};
> +#endif
> +
> #if defined(CONFIG_CPUS_3C2443) || defined(CONFIG_CPU_S3C2416)
> static struct resource s3c2443_dma_resource[] = {
> [0] = DEFINE_RES_MEM(S3C24XX_PA_DMA, S3C24XX_SZ_DMA),
> diff --git a/arch/arm/mach-s3c24xx/common.h b/arch/arm/mach-s3c24xx/common.h
> index fe07189..e46c104 100644
> --- a/arch/arm/mach-s3c24xx/common.h
> +++ b/arch/arm/mach-s3c24xx/common.h
> @@ -109,7 +109,9 @@ extern void s3c2443_init_irq(void);
>
> extern struct syscore_ops s3c24xx_irq_syscore_ops;
>
> +extern struct platform_device s3c2410_device_dma;
> extern struct platform_device s3c2412_device_dma;
> +extern struct platform_device s3c2440_device_dma;
> extern struct platform_device s3c2443_device_dma;
>
> #endif /* __ARCH_ARM_MACH_S3C24XX_COMMON_H */
> diff --git a/include/linux/platform_data/dma-s3c24xx.h b/include/linux/platform_data/dma-s3c24xx.h
> index 5a0cfff..89ba1b0 100644
> --- a/include/linux/platform_data/dma-s3c24xx.h
> +++ b/include/linux/platform_data/dma-s3c24xx.h
> @@ -9,6 +9,9 @@
> * any later version.
> */
>
> +/* Helper to encode the source selection constraints for early s3c socs. */
> +#define S3C24XX_DMA_CHANREQ(src, chan) ((BIT(3) | src) << chan * 4)
> +
> enum s3c24xx_dma_bus {
> S3C24XX_DMA_APB,
> S3C24XX_DMA_AHB,
> --
> 1.7.10.4
>
--
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-11 8:59 [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Heiko Stübner
` (4 preceding siblings ...)
[not found] ` <15184009.9QsSDOGPSA@amdn883>
@ 2013-10-13 14:56 ` Vinod Koul
2013-10-13 18:11 ` Heiko Stübner
5 siblings, 1 reply; 16+ messages in thread
From: Vinod Koul @ 2013-10-13 14:56 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Oct 11, 2013 at 10:59:19AM +0200, Heiko St?bner wrote:
> [I messed up the linux-arm-kernel list address yesterday, so I resend it
> with a fixed address, sorry for the noise]
>
> When Olof reported the warning about the unused s3c2410_dma_resource, I
> thought the best way forward would be to simply implement the missing
> pieces and so it has users :-) .
>
> Therefore this series adds the necessary platform-devices for s3c2410,
> s3c2440 and s3c2442. This especially also includes the channel-constraints
> of those socs.
>
> As I do not have access to any of those socs these changes are of course
> compile-tested only.
Do you want this to be applied thru dma or arm tree?
~Vinod
>
> Heiko Stuebner (3):
> ARM: S3C24XX: Fix possible dma selection warning
> dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
> ARM: S3C24XX: add dma platformdata for s3c2410, s3c2440 and s3c2442
>
> arch/arm/mach-s3c24xx/Kconfig | 3 +-
> arch/arm/mach-s3c24xx/common.c | 100 +++++++++++++++++++++++++++++
> arch/arm/mach-s3c24xx/common.h | 2 +
> drivers/dma/s3c24xx-dma.c | 10 +++
> include/linux/platform_data/dma-s3c24xx.h | 3 +
> sound/soc/samsung/Kconfig | 2 +-
> 6 files changed, 118 insertions(+), 2 deletions(-)
>
> --
> 1.7.10.4
>
--
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-13 14:56 ` Vinod Koul
@ 2013-10-13 18:11 ` Heiko Stübner
2013-10-15 22:32 ` Kukjin Kim
0 siblings, 1 reply; 16+ messages in thread
From: Heiko Stübner @ 2013-10-13 18:11 UTC (permalink / raw)
To: linux-arm-kernel
Am Sonntag, 13. Oktober 2013, 16:56:42 schrieb Vinod Koul:
> On Fri, Oct 11, 2013 at 10:59:19AM +0200, Heiko St?bner wrote:
> > [I messed up the linux-arm-kernel list address yesterday, so I resend it
> > with a fixed address, sorry for the noise]
> >
> > When Olof reported the warning about the unused s3c2410_dma_resource, I
> > thought the best way forward would be to simply implement the missing
> > pieces and so it has users :-) .
> >
> > Therefore this series adds the necessary platform-devices for s3c2410,
> > s3c2440 and s3c2442. This especially also includes the
> > channel-constraints of those socs.
> >
> > As I do not have access to any of those socs these changes are of course
> > compile-tested only.
>
> Do you want this to be applied thru dma or arm tree?
hmm, the original series went into the samsung tree for 3.13, so maybe this
addition should go the same way?
Heiko
> ~Vinod
>
> > Heiko Stuebner (3):
> > ARM: S3C24XX: Fix possible dma selection warning
> > dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
> > ARM: S3C24XX: add dma platformdata for s3c2410, s3c2440 and s3c2442
> >
> > arch/arm/mach-s3c24xx/Kconfig | 3 +-
> > arch/arm/mach-s3c24xx/common.c | 100
> > +++++++++++++++++++++++++++++ arch/arm/mach-s3c24xx/common.h
> > | 2 +
> > drivers/dma/s3c24xx-dma.c | 10 +++
> > include/linux/platform_data/dma-s3c24xx.h | 3 +
> > sound/soc/samsung/Kconfig | 2 +-
> > 6 files changed, 118 insertions(+), 2 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 3/3] ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442
2013-10-13 14:55 ` Vinod Koul
@ 2013-10-13 18:15 ` Heiko Stübner
0 siblings, 0 replies; 16+ messages in thread
From: Heiko Stübner @ 2013-10-13 18:15 UTC (permalink / raw)
To: linux-arm-kernel
Am Sonntag, 13. Oktober 2013, 16:55:37 schrieb Vinod Koul:
> On Fri, Oct 11, 2013 at 11:01:33AM +0200, Heiko St?bner wrote:
> > s3c2410 and s3c2442 share the same dma channels while s3c2440 has
> > slight differences. But on all three the reachable sources per dma
> > channel has constraints attached and thus encodes the usable
> > combinations using the S3C24XX_DMA_CHANREQ macro.
> >
> > This also fixes the warning about s3c2410_dma_resource being unused
> > as reported by Olof Johansson.
>
> Perhpas you should have used Reported-by tag for that..
yep, I should've, if I hadn't forgotten.
Maybe Kgene, who will most likely apply the patches, can add a
Reported-by: Olof Johansson <olof@lixom.net>
at the time.
>
> ~Vinod
>
> > Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> > ---
> >
> > arch/arm/mach-s3c24xx/common.c | 100
> > +++++++++++++++++++++++++++++ arch/arm/mach-s3c24xx/common.h
> > | 2 +
> > include/linux/platform_data/dma-s3c24xx.h | 3 +
> > 3 files changed, 105 insertions(+)
> >
> > diff --git a/arch/arm/mach-s3c24xx/common.c
> > b/arch/arm/mach-s3c24xx/common.c index 16ac669..4cfe7a4 100644
> > --- a/arch/arm/mach-s3c24xx/common.c
> > +++ b/arch/arm/mach-s3c24xx/common.c
> > @@ -343,6 +343,50 @@ static struct resource s3c2410_dma_resource[] = {
> >
> > };
> > #endif
> >
> > +#if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2442)
> > +static struct s3c24xx_dma_channel s3c2410_dma_channels[DMACH_MAX] = {
> > + [DMACH_XD0] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 0), },
> > + [DMACH_XD1] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 1), },
> > + [DMACH_SDI] = { S3C24XX_DMA_APB, false, S3C24XX_DMA_CHANREQ(2, 0) |
> > + S3C24XX_DMA_CHANREQ(2, 2) |
> > + S3C24XX_DMA_CHANREQ(1, 3),
> > + },
> > + [DMACH_SPI0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 1), },
> > + [DMACH_SPI1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 3), },
> > + [DMACH_UART0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 0),
},
> > + [DMACH_UART1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 1),
},
> > + [DMACH_UART2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 3),
},
> > + [DMACH_TIMER] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 0) |
> > + S3C24XX_DMA_CHANREQ(3, 2) |
> > + S3C24XX_DMA_CHANREQ(3, 3),
> > + },
> > + [DMACH_I2S_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 1) |
> > + S3C24XX_DMA_CHANREQ(1, 2),
> > + },
> > + [DMACH_I2S_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 2),
> > }, + [DMACH_USB_EP1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4,
> > 0), }, + [DMACH_USB_EP2] = { S3C24XX_DMA_APB, true,
> > S3C24XX_DMA_CHANREQ(4, 1), }, + [DMACH_USB_EP3] = { S3C24XX_DMA_APB,
> > true, S3C24XX_DMA_CHANREQ(4, 2), }, + [DMACH_USB_EP4] = {
> > S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), }, +};
> > +
> > +static struct s3c24xx_dma_platdata s3c2410_dma_platdata = {
> > + .num_phy_channels = 4,
> > + .channels = s3c2410_dma_channels,
> > + .num_channels = DMACH_MAX,
> > +};
> > +
> > +struct platform_device s3c2410_device_dma = {
> > + .name = "s3c2410-dma",
> > + .id = 0,
> > + .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
> > + .resource = s3c2410_dma_resource,
> > + .dev = {
> > + .platform_data = &s3c2410_dma_platdata,
> > + },
> > +};
> > +#endif
> > +
> >
> > #ifdef CONFIG_CPU_S3C2412
> > static struct s3c24xx_dma_channel s3c2412_dma_channels[DMACH_MAX] = {
> >
> > [DMACH_XD0] = { S3C24XX_DMA_AHB, true, 17 },
> >
> > @@ -384,6 +428,62 @@ struct platform_device s3c2412_device_dma = {
> >
> > };
> > #endif
> >
> > +#if defined(CONFIG_CPU_S3C2440)
> > +static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
> > + [DMACH_XD0] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 0), },
> > + [DMACH_XD1] = { S3C24XX_DMA_AHB, true, S3C24XX_DMA_CHANREQ(0, 1), },
> > + [DMACH_SDI] = { S3C24XX_DMA_APB, false, S3C24XX_DMA_CHANREQ(2, 0) |
> > + S3C24XX_DMA_CHANREQ(6, 1) |
> > + S3C24XX_DMA_CHANREQ(2, 2) |
> > + S3C24XX_DMA_CHANREQ(1, 3),
> > + },
> > + [DMACH_SPI0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 1), },
> > + [DMACH_SPI1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 3), },
> > + [DMACH_UART0] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 0),
},
> > + [DMACH_UART1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(1, 1),
},
> > + [DMACH_UART2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(0, 3),
},
> > + [DMACH_TIMER] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(3, 0) |
> > + S3C24XX_DMA_CHANREQ(3, 2) |
> > + S3C24XX_DMA_CHANREQ(3, 3),
> > + },
> > + [DMACH_I2S_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(2, 1) |
> > + S3C24XX_DMA_CHANREQ(1, 2),
> > + },
> > + [DMACH_I2S_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(5, 0)
|
> > + S3C24XX_DMA_CHANREQ(0, 2),
> > + },
> > + [DMACH_PCM_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(6, 0) |
> > + S3C24XX_DMA_CHANREQ(5, 2),
> > + },
> > + [DMACH_PCM_OUT] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(5, 1)
|
> > + S3C24XX_DMA_CHANREQ(6, 3),
> > + },
> > + [DMACH_MIC_IN] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(6, 2) |
> > + S3C24XX_DMA_CHANREQ(5, 3),
> > + },
> > + [DMACH_USB_EP1] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 0),
> > }, + [DMACH_USB_EP2] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4,
> > 1), }, + [DMACH_USB_EP3] = { S3C24XX_DMA_APB, true,
> > S3C24XX_DMA_CHANREQ(4, 2), }, + [DMACH_USB_EP4] = { S3C24XX_DMA_APB,
> > true, S3C24XX_DMA_CHANREQ(4, 3), }, +};
> > +
> > +static struct s3c24xx_dma_platdata s3c2440_dma_platdata = {
> > + .num_phy_channels = 4,
> > + .channels = s3c2440_dma_channels,
> > + .num_channels = DMACH_MAX,
> > +};
> > +
> > +struct platform_device s3c2440_device_dma = {
> > + .name = "s3c2410-dma",
> > + .id = 0,
> > + .num_resources = ARRAY_SIZE(s3c2410_dma_resource),
> > + .resource = s3c2410_dma_resource,
> > + .dev = {
> > + .platform_data = &s3c2440_dma_platdata,
> > + },
> > +};
> > +#endif
> > +
> >
> > #if defined(CONFIG_CPUS_3C2443) || defined(CONFIG_CPU_S3C2416)
> > static struct resource s3c2443_dma_resource[] = {
> >
> > [0] = DEFINE_RES_MEM(S3C24XX_PA_DMA, S3C24XX_SZ_DMA),
> >
> > diff --git a/arch/arm/mach-s3c24xx/common.h
> > b/arch/arm/mach-s3c24xx/common.h index fe07189..e46c104 100644
> > --- a/arch/arm/mach-s3c24xx/common.h
> > +++ b/arch/arm/mach-s3c24xx/common.h
> > @@ -109,7 +109,9 @@ extern void s3c2443_init_irq(void);
> >
> > extern struct syscore_ops s3c24xx_irq_syscore_ops;
> >
> > +extern struct platform_device s3c2410_device_dma;
> >
> > extern struct platform_device s3c2412_device_dma;
> >
> > +extern struct platform_device s3c2440_device_dma;
> >
> > extern struct platform_device s3c2443_device_dma;
> >
> > #endif /* __ARCH_ARM_MACH_S3C24XX_COMMON_H */
> >
> > diff --git a/include/linux/platform_data/dma-s3c24xx.h
> > b/include/linux/platform_data/dma-s3c24xx.h index 5a0cfff..89ba1b0
> > 100644
> > --- a/include/linux/platform_data/dma-s3c24xx.h
> > +++ b/include/linux/platform_data/dma-s3c24xx.h
> > @@ -9,6 +9,9 @@
> >
> > * any later version.
> > */
> >
> > +/* Helper to encode the source selection constraints for early s3c socs.
> > */ +#define S3C24XX_DMA_CHANREQ(src, chan) ((BIT(3) | src) << chan * 4)
> > +
> >
> > enum s3c24xx_dma_bus {
> >
> > S3C24XX_DMA_APB,
> > S3C24XX_DMA_AHB,
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-12 12:33 ` Mark Brown
@ 2013-10-13 18:29 ` Tomasz Figa
2013-10-14 14:19 ` Mark Brown
0 siblings, 1 reply; 16+ messages in thread
From: Tomasz Figa @ 2013-10-13 18:29 UTC (permalink / raw)
To: linux-arm-kernel
On Saturday 12 of October 2013 13:33:29 Mark Brown wrote:
> On Sat, Oct 12, 2013 at 06:36:36AM +0200, Tomasz Figa wrote:
> > Big thanks for this series and the one adding DMA engine support for
> > S3C24xx. It would be great if someone could test this on affected
> > platforms, so we could finally drop the old S3C-DMA nonsense.
>
> Did the s3c64xx pl08x stuff get merged?
Most of. All the patches for the amba-pl08x driver got merged. Just the
platform glue remains. I will rebase and send respective patches this
week.
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-13 18:29 ` Tomasz Figa
@ 2013-10-14 14:19 ` Mark Brown
0 siblings, 0 replies; 16+ messages in thread
From: Mark Brown @ 2013-10-14 14:19 UTC (permalink / raw)
To: linux-arm-kernel
On Sun, Oct 13, 2013 at 08:29:47PM +0200, Tomasz Figa wrote:
> On Saturday 12 of October 2013 13:33:29 Mark Brown wrote:
> > Did the s3c64xx pl08x stuff get merged?
> Most of. All the patches for the amba-pl08x driver got merged. Just the
> platform glue remains. I will rebase and send respective patches this
> week.
Ah, excellent - I hadn't noticed that!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20131014/b3281c32/attachment-0001.sig>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-13 18:11 ` Heiko Stübner
@ 2013-10-15 22:32 ` Kukjin Kim
2013-10-16 2:05 ` Vinod Koul
0 siblings, 1 reply; 16+ messages in thread
From: Kukjin Kim @ 2013-10-15 22:32 UTC (permalink / raw)
To: linux-arm-kernel
On 10/14/13 03:11, Heiko St?bner wrote:
> Am Sonntag, 13. Oktober 2013, 16:56:42 schrieb Vinod Koul:
>> On Fri, Oct 11, 2013 at 10:59:19AM +0200, Heiko St?bner wrote:
>>> [I messed up the linux-arm-kernel list address yesterday, so I resend it
>>> with a fixed address, sorry for the noise]
>>>
>>> When Olof reported the warning about the unused s3c2410_dma_resource, I
>>> thought the best way forward would be to simply implement the missing
>>> pieces and so it has users :-) .
>>>
>>> Therefore this series adds the necessary platform-devices for s3c2410,
>>> s3c2440 and s3c2442. This especially also includes the
>>> channel-constraints of those socs.
>>>
>>> As I do not have access to any of those socs these changes are of course
>>> compile-tested only.
>>
>> Do you want this to be applied thru dma or arm tree?
>
> hmm, the original series went into the samsung tree for 3.13, so maybe this
> addition should go the same way?
>
I think so, let me pick this up into Samsung tree for v3.13.
Thanks,
Kukjin
>
> Heiko
>
>
>> ~Vinod
>>
>>> Heiko Stuebner (3):
>>> ARM: S3C24XX: Fix possible dma selection warning
>>> dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
>>> ARM: S3C24XX: add dma platformdata for s3c2410, s3c2440 and s3c2442
>>>
>>> arch/arm/mach-s3c24xx/Kconfig | 3 +-
>>> arch/arm/mach-s3c24xx/common.c | 100
>>> +++++++++++++++++++++++++++++ arch/arm/mach-s3c24xx/common.h
>>> | 2 +
>>> drivers/dma/s3c24xx-dma.c | 10 +++
>>> include/linux/platform_data/dma-s3c24xx.h | 3 +
>>> sound/soc/samsung/Kconfig | 2 +-
>>> 6 files changed, 118 insertions(+), 2 deletions(-)
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 2/3] dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller
2013-10-11 9:01 ` [PATCH RESEND 2/3] dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller Heiko Stübner
@ 2013-10-16 2:04 ` Vinod Koul
0 siblings, 0 replies; 16+ messages in thread
From: Vinod Koul @ 2013-10-16 2:04 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Oct 11, 2013 at 11:01:04AM +0200, Heiko St?bner wrote:
> The earliest variants of the dma controller did not contain support for
> controlling clocks.
Acked-by: Vinod Koul <vinod.koul@intel.com>
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> ---
> drivers/dma/s3c24xx-dma.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
> index 56c9253..4cb1279 100644
> --- a/drivers/dma/s3c24xx-dma.c
> +++ b/drivers/dma/s3c24xx-dma.c
> @@ -1078,6 +1078,13 @@ static void s3c24xx_dma_free_virtual_channels(struct dma_device *dmadev)
> list_del(&chan->vc.chan.device_node);
> }
>
> +/* s3c2410, s3c2440 and s3c2442 have a 0x40 stride without separate clocks */
> +static struct soc_data soc_s3c2410 = {
> + .stride = 0x40,
> + .has_reqsel = false,
> + .has_clocks = false,
> +};
> +
> /* s3c2412 and s3c2413 have a 0x40 stride and dmareqsel mechanism */
> static struct soc_data soc_s3c2412 = {
> .stride = 0x40,
> @@ -1094,6 +1101,9 @@ static struct soc_data soc_s3c2443 = {
>
> static struct platform_device_id s3c24xx_dma_driver_ids[] = {
> {
> + .name = "s3c2410-dma",
> + .driver_data = (kernel_ulong_t)&soc_s3c2410,
> + }, {
> .name = "s3c2412-dma",
> .driver_data = (kernel_ulong_t)&soc_s3c2412,
> }, {
> --
> 1.7.10.4
>
--
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-15 22:32 ` Kukjin Kim
@ 2013-10-16 2:05 ` Vinod Koul
2013-10-20 20:27 ` Kukjin Kim
0 siblings, 1 reply; 16+ messages in thread
From: Vinod Koul @ 2013-10-16 2:05 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Oct 16, 2013 at 07:32:20AM +0900, Kukjin Kim wrote:
> On 10/14/13 03:11, Heiko St?bner wrote:
> >Am Sonntag, 13. Oktober 2013, 16:56:42 schrieb Vinod Koul:
> >>On Fri, Oct 11, 2013 at 10:59:19AM +0200, Heiko St?bner wrote:
> >>>[I messed up the linux-arm-kernel list address yesterday, so I resend it
> >>>with a fixed address, sorry for the noise]
> >>>
> >>>When Olof reported the warning about the unused s3c2410_dma_resource, I
> >>>thought the best way forward would be to simply implement the missing
> >>>pieces and so it has users :-) .
> >>>
> >>>Therefore this series adds the necessary platform-devices for s3c2410,
> >>>s3c2440 and s3c2442. This especially also includes the
> >>>channel-constraints of those socs.
> >>>
> >>>As I do not have access to any of those socs these changes are of course
> >>>compile-tested only.
> >>
> >>Do you want this to be applied thru dma or arm tree?
> >
> >hmm, the original series went into the samsung tree for 3.13, so maybe this
> >addition should go the same way?
> >
> I think so, let me pick this up into Samsung tree for v3.13.
Okay, sounds good. Ack for dmaengine patch sent
~Vinod
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix
2013-10-16 2:05 ` Vinod Koul
@ 2013-10-20 20:27 ` Kukjin Kim
0 siblings, 0 replies; 16+ messages in thread
From: Kukjin Kim @ 2013-10-20 20:27 UTC (permalink / raw)
To: linux-arm-kernel
On 10/16/13 11:05, Vinod Koul wrote:
> On Wed, Oct 16, 2013 at 07:32:20AM +0900, Kukjin Kim wrote:
>> On 10/14/13 03:11, Heiko St?bner wrote:
>>> Am Sonntag, 13. Oktober 2013, 16:56:42 schrieb Vinod Koul:
>>>> On Fri, Oct 11, 2013 at 10:59:19AM +0200, Heiko St?bner wrote:
>>>>> [I messed up the linux-arm-kernel list address yesterday, so I resend it
>>>>> with a fixed address, sorry for the noise]
>>>>>
>>>>> When Olof reported the warning about the unused s3c2410_dma_resource, I
>>>>> thought the best way forward would be to simply implement the missing
>>>>> pieces and so it has users :-) .
>>>>>
>>>>> Therefore this series adds the necessary platform-devices for s3c2410,
>>>>> s3c2440 and s3c2442. This especially also includes the
>>>>> channel-constraints of those socs.
>>>>>
>>>>> As I do not have access to any of those socs these changes are of course
>>>>> compile-tested only.
>>>>
>>>> Do you want this to be applied thru dma or arm tree?
>>>
>>> hmm, the original series went into the samsung tree for 3.13, so maybe this
>>> addition should go the same way?
>>>
>> I think so, let me pick this up into Samsung tree for v3.13.
> Okay, sounds good. Ack for dmaengine patch sent
>
Applied with Vinod's ack, thanks.
- Kukjin
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2013-10-20 20:27 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-11 8:59 [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Heiko Stübner
2013-10-11 9:00 ` [PATCH RESEND 1/3] ARM: S3C24XX: Fix possible dma selection warning Heiko Stübner
2013-10-11 9:01 ` [PATCH RESEND 2/3] dmaengine: s3c24xx-dma: add support for the s3c2410 type of controller Heiko Stübner
2013-10-16 2:04 ` Vinod Koul
2013-10-11 9:01 ` [PATCH RESEND 3/3] ARM: S3C24XX: add dma pdata for s3c2410, s3c2440 and s3c2442 Heiko Stübner
2013-10-13 14:55 ` Vinod Koul
2013-10-13 18:15 ` Heiko Stübner
2013-10-12 4:38 ` [PATCH RESEND 0/3] ARM: S3C24XX: add missing dma-devices and warning fix Tomasz Figa
[not found] ` <15184009.9QsSDOGPSA@amdn883>
2013-10-12 12:33 ` Mark Brown
2013-10-13 18:29 ` Tomasz Figa
2013-10-14 14:19 ` Mark Brown
2013-10-13 14:56 ` Vinod Koul
2013-10-13 18:11 ` Heiko Stübner
2013-10-15 22:32 ` Kukjin Kim
2013-10-16 2:05 ` Vinod Koul
2013-10-20 20:27 ` Kukjin Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).