Re: [PATCH 5/5] sh: dmaengine support for sh7724

From: Guennadi Liakhovetski
Date: Thu Dec 17 2009 - 02:42:44 EST


Hi again

On Thu, 17 Dec 2009, Nobuhiro Iwamatsu wrote:

> Hi,
>
> 2009/12/8 Paul Mundt <lethal@xxxxxxxxxxxx>:
> > On Mon, Dec 07, 2009 at 06:02:24PM -0700, Dan Williams wrote:
> >> On Fri, Dec 4, 2009 at 11:45 AM, Guennadi Liakhovetski
> >> <g.liakhovetski@xxxxxx> wrote:
> >> > Add a dmaengine platform device to sh7724, fix DMA channel interrupt numbers.
> >> >
> >> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> >> > ---
> >> >
> >> > With this patch dmatest works with channels 0-5, channels 6-11 still don't
> >> > work for some reason... So, feel free to discard it for now, if a complete
> >> > fix would be preferred.
> >>
> >> Does this patch limit operation to channels 0-5?  I leave this one for
> >> Paul to disposition.
> >>
> > There are 6 channels per controller, so the fact that the second
> > controller isn't working could either be cause the driver needs more work
> > to handle multiple controllers properly, or there could be a pinmux issue
> > that hasn't been resolved yet for DMAC1. Both of these cases require the
> > driver to be a bit smarter, but as Guennadi is presently working on these
> > things, doing them incrementally is ok with me. If this gets DMAC0
> > working at least where it wasn't before, it's certainly worth applying.
> > DMAC1 seems to have more problems than just wrong interrupt numbers, so
> > this isn't going to cause any regressions there either.
> >
> > Acked-by: Paul Mundt <lethal@xxxxxxxxxxxx>
>
> This patch can not apply Paul's git/HEAD too.
> I updated patch.
>
> Acked-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@xxxxxxxxxxx>

Same comment applies as to the other my patch. Paul, I think, you
indicated, that you've already merged my patch, or at least, that you have
no problem merging it. Please, do use my original version and not this
one.

Thanks
Guennadi

>
> Best regards,
> Nobuhiro
>
> -----
>
> Add a dmaengine platform device to sh7724, fix DMA channel interrupt numbers.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@xxxxxxxxxxx>
> ---
> arch/sh/include/cpu-sh4/cpu/dma-sh4a.h | 8 ++++----
> arch/sh/kernel/cpu/sh4a/setup-sh7724.c | 15 +++++++++++++++
> 2 files changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h
> b/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h
> index f0886bc..c4ed660 100644
> --- a/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h
> +++ b/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h
> @@ -19,10 +19,10 @@
> #elif defined(CONFIG_CPU_SUBTYPE_SH7723) || \
> defined(CONFIG_CPU_SUBTYPE_SH7724)
> #define DMTE0_IRQ 48 /* DMAC0A*/
> -#define DMTE4_IRQ 40 /* DMAC0B */
> -#define DMTE6_IRQ 42
> -#define DMTE8_IRQ 76 /* DMAC1A */
> -#define DMTE9_IRQ 77
> +#define DMTE4_IRQ 76 /* DMAC0B */
> +#define DMTE6_IRQ 40
> +#define DMTE8_IRQ 42 /* DMAC1A */
> +#define DMTE9_IRQ 43
> #define DMTE10_IRQ 72 /* DMAC1B */
> #define DMTE11_IRQ 73
> #define DMAE0_IRQ 78 /* DMA Error IRQ*/
> diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
> b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
> index a52f351..d32f96c 100644
> --- a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
> +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
> @@ -23,9 +23,23 @@
> #include <linux/notifier.h>
> #include <asm/suspend.h>
> #include <asm/clock.h>
> +#include <asm/dma-sh.h>
> #include <asm/mmzone.h>
> #include <cpu/sh7724.h>
>
> +/* DMA */
> +static struct sh_dmae_pdata dma_platform_data = {
> + .mode = SHDMA_DMAOR1,
> +};
> +
> +static struct platform_device dma_device = {
> + .name = "sh-dma-engine",
> + .id = -1,
> + .dev = {
> + .platform_data = &dma_platform_data,
> + },
> +};
> +
> /* Serial */
> static struct plat_sci_port scif0_platform_data = {
> .mapbase = 0xffe00000,
> @@ -649,6 +663,7 @@ static struct platform_device *sh7724_devices[]
> __initdata = {
> &tmu3_device,
> &tmu4_device,
> &tmu5_device,
> + &dma_device,
> &rtc_device,
> &iic0_device,
> &iic1_device,
> --
> 1.6.5.4
>

---
Guennadi Liakhovetski
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/