All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
To: Kukjin Kim <kgene.kim@samsung.com>
Cc: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, jassisinghbrar@gmail.com,
	vinod.koul@intel.com, rob.herring@calxeda.com,
	dinguyen@altera.com, pawel.moll@arm.com, t.figa@samsung.com,
	kyungmin.park@samsung.com
Subject: Re: [PATCH 2/4] ARM: EXYNOS: PL330 MDMA1 fix for revision 0 of Exynos4210 SOC
Date: Thu, 08 Nov 2012 10:54:41 +0100	[thread overview]
Message-ID: <201211081054.41649.b.zolnierkie@samsung.com> (raw)
In-Reply-To: <0cea01cdbd6c$7ace7200$706b5600$%kim@samsung.com>

On Thursday 08 November 2012 05:49:47 Kukjin Kim wrote:
> Bartlomiej Zolnierkiewicz wrote:
> > 
> > > Hmm...above change and adding definition of EXYNOS_PA_S_MDMA1 address
> > > can fix the problem you commented on EXYNOS4210 Rev0 without others?...
> > 
> > The problem is affecting only EXYNOS4210 Rev0 and the fix is applied only
> > for case when soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_0,
> > or did you mean something else?
> > 
> Yeah, I know. I mean just adding secure mdma1 address is enough for
> exynos4210 rev0.
> 
> 8<-----
> @@ -275,6 +275,9 @@ static int __init exynos_dma_init(void)
>  		exynos_pdma1_pdata.nr_valid_peri =
>  			ARRAY_SIZE(exynos4210_pdma1_peri);
>  		exynos_pdma1_pdata.peri_id = exynos4210_pdma1_peri;
> +
> +		if (samsung_rev() == EXYNOS4210_REV_0)
> +			exynos_mdma1_device.res.start = EXYNOS4_PA_S_MDMA1;
>  	} else if (soc_is_exynos4212() || soc_is_exynos4412()) {
>  		exynos_pdma0_pdata.nr_valid_peri =
>  			ARRAY_SIZE(exynos4212_pdma0_peri);
> diff --git a/arch/arm/mach-exynos/include/mach/map.h
> b/arch/arm/mach-exynos/include/mach/map.h
> index 8480849..0abfe78 100644
> --- a/arch/arm/mach-exynos/include/mach/map.h
> +++ b/arch/arm/mach-exynos/include/mach/map.h
> @@ -90,6 +90,7 @@
>  
>  #define EXYNOS4_PA_MDMA0		0x10810000
>  #define EXYNOS4_PA_MDMA1		0x12850000
> +#define EXYNOS4_PA_S_MDMA1		0x12840000
>  #define EXYNOS4_PA_PDMA0		0x12680000
>  #define EXYNOS4_PA_PDMA1		0x12690000
>  #define EXYNOS5_PA_MDMA0		0x10800000
> 8<----

Ah, okay.  Here is full simplified patch.

From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Subject: [PATCH v2] ARM: EXYNOS: PL330 MDMA1 fix for revision 0 of Exynos4210 SOC

Commit 8214513 ("ARM: EXYNOS: fix address for EXYNOS4 MDMA1")
changed EXYNOS specific setup of PL330 DMA engine to use 'non-secure'
mdma1 address instead of 'secure' one (from 0x12840000 to 0x12850000)
to fix issue with some Exynos4212 SOCs.  Unfortunately it brakes
PL330 setup for revision 0 of Exynos4210 SOC (mdma1 device cannot
be found at 'non-secure' address):

[    0.566245] dma-pl330 dma-pl330.2: PERIPH_ID 0x0, PCELL_ID 0x0 !
[    0.566278] dma-pl330: probe of dma-pl330.2 failed with error -22

Fix it by using 'secure' mdma1 address on Exynos4210 revision 0 SOC.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-exynos/dma.c              |    3 +++
 arch/arm/mach-exynos/include/mach/map.h |    1 +
 2 files changed, 4 insertions(+)

Index: b/arch/arm/mach-exynos/dma.c
===================================================================
--- a/arch/arm/mach-exynos/dma.c	2012-11-07 18:20:36.561743865 +0100
+++ b/arch/arm/mach-exynos/dma.c	2012-11-08 10:48:23.445067606 +0100
@@ -275,6 +275,9 @@ static int __init exynos_dma_init(void)
 		exynos_pdma1_pdata.nr_valid_peri =
 			ARRAY_SIZE(exynos4210_pdma1_peri);
 		exynos_pdma1_pdata.peri_id = exynos4210_pdma1_peri;
+
+		if (samsung_rev() == EXYNOS4210_REV_0)
+			exynos_mdma1_device.res.start = EXYNOS4_PA_S_MDMA1;
 	} else if (soc_is_exynos4212() || soc_is_exynos4412()) {
 		exynos_pdma0_pdata.nr_valid_peri =
 			ARRAY_SIZE(exynos4212_pdma0_peri);
Index: b/arch/arm/mach-exynos/include/mach/map.h
===================================================================
--- a/arch/arm/mach-exynos/include/mach/map.h	2012-11-07 18:20:44.801743862 +0100
+++ b/arch/arm/mach-exynos/include/mach/map.h	2012-11-08 10:48:40.597067605 +0100
@@ -92,6 +92,7 @@
 
 #define EXYNOS4_PA_MDMA0		0x10810000
 #define EXYNOS4_PA_MDMA1		0x12850000
+#define EXYNOS4_PA_S_MDMA1		0x12840000
 #define EXYNOS4_PA_PDMA0		0x12680000
 #define EXYNOS4_PA_PDMA1		0x12690000
 #define EXYNOS5_PA_MDMA0		0x10800000

WARNING: multiple messages have this Message-ID (diff)
From: b.zolnierkie@samsung.com (Bartlomiej Zolnierkiewicz)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/4] ARM: EXYNOS: PL330 MDMA1 fix for revision 0 of Exynos4210 SOC
Date: Thu, 08 Nov 2012 10:54:41 +0100	[thread overview]
Message-ID: <201211081054.41649.b.zolnierkie@samsung.com> (raw)
In-Reply-To: <0cea01cdbd6c$7ace7200$706b5600$%kim@samsung.com>

On Thursday 08 November 2012 05:49:47 Kukjin Kim wrote:
> Bartlomiej Zolnierkiewicz wrote:
> > 
> > > Hmm...above change and adding definition of EXYNOS_PA_S_MDMA1 address
> > > can fix the problem you commented on EXYNOS4210 Rev0 without others?...
> > 
> > The problem is affecting only EXYNOS4210 Rev0 and the fix is applied only
> > for case when soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_0,
> > or did you mean something else?
> > 
> Yeah, I know. I mean just adding secure mdma1 address is enough for
> exynos4210 rev0.
> 
> 8<-----
> @@ -275,6 +275,9 @@ static int __init exynos_dma_init(void)
>  		exynos_pdma1_pdata.nr_valid_peri =
>  			ARRAY_SIZE(exynos4210_pdma1_peri);
>  		exynos_pdma1_pdata.peri_id = exynos4210_pdma1_peri;
> +
> +		if (samsung_rev() == EXYNOS4210_REV_0)
> +			exynos_mdma1_device.res.start = EXYNOS4_PA_S_MDMA1;
>  	} else if (soc_is_exynos4212() || soc_is_exynos4412()) {
>  		exynos_pdma0_pdata.nr_valid_peri =
>  			ARRAY_SIZE(exynos4212_pdma0_peri);
> diff --git a/arch/arm/mach-exynos/include/mach/map.h
> b/arch/arm/mach-exynos/include/mach/map.h
> index 8480849..0abfe78 100644
> --- a/arch/arm/mach-exynos/include/mach/map.h
> +++ b/arch/arm/mach-exynos/include/mach/map.h
> @@ -90,6 +90,7 @@
>  
>  #define EXYNOS4_PA_MDMA0		0x10810000
>  #define EXYNOS4_PA_MDMA1		0x12850000
> +#define EXYNOS4_PA_S_MDMA1		0x12840000
>  #define EXYNOS4_PA_PDMA0		0x12680000
>  #define EXYNOS4_PA_PDMA1		0x12690000
>  #define EXYNOS5_PA_MDMA0		0x10800000
> 8<----

Ah, okay.  Here is full simplified patch.

From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Subject: [PATCH v2] ARM: EXYNOS: PL330 MDMA1 fix for revision 0 of Exynos4210 SOC

Commit 8214513 ("ARM: EXYNOS: fix address for EXYNOS4 MDMA1")
changed EXYNOS specific setup of PL330 DMA engine to use 'non-secure'
mdma1 address instead of 'secure' one (from 0x12840000 to 0x12850000)
to fix issue with some Exynos4212 SOCs.  Unfortunately it brakes
PL330 setup for revision 0 of Exynos4210 SOC (mdma1 device cannot
be found at 'non-secure' address):

[    0.566245] dma-pl330 dma-pl330.2: PERIPH_ID 0x0, PCELL_ID 0x0 !
[    0.566278] dma-pl330: probe of dma-pl330.2 failed with error -22

Fix it by using 'secure' mdma1 address on Exynos4210 revision 0 SOC.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-exynos/dma.c              |    3 +++
 arch/arm/mach-exynos/include/mach/map.h |    1 +
 2 files changed, 4 insertions(+)

Index: b/arch/arm/mach-exynos/dma.c
===================================================================
--- a/arch/arm/mach-exynos/dma.c	2012-11-07 18:20:36.561743865 +0100
+++ b/arch/arm/mach-exynos/dma.c	2012-11-08 10:48:23.445067606 +0100
@@ -275,6 +275,9 @@ static int __init exynos_dma_init(void)
 		exynos_pdma1_pdata.nr_valid_peri =
 			ARRAY_SIZE(exynos4210_pdma1_peri);
 		exynos_pdma1_pdata.peri_id = exynos4210_pdma1_peri;
+
+		if (samsung_rev() == EXYNOS4210_REV_0)
+			exynos_mdma1_device.res.start = EXYNOS4_PA_S_MDMA1;
 	} else if (soc_is_exynos4212() || soc_is_exynos4412()) {
 		exynos_pdma0_pdata.nr_valid_peri =
 			ARRAY_SIZE(exynos4212_pdma0_peri);
Index: b/arch/arm/mach-exynos/include/mach/map.h
===================================================================
--- a/arch/arm/mach-exynos/include/mach/map.h	2012-11-07 18:20:44.801743862 +0100
+++ b/arch/arm/mach-exynos/include/mach/map.h	2012-11-08 10:48:40.597067605 +0100
@@ -92,6 +92,7 @@
 
 #define EXYNOS4_PA_MDMA0		0x10810000
 #define EXYNOS4_PA_MDMA1		0x12850000
+#define EXYNOS4_PA_S_MDMA1		0x12840000
 #define EXYNOS4_PA_PDMA0		0x12680000
 #define EXYNOS4_PA_PDMA1		0x12690000
 #define EXYNOS5_PA_MDMA0		0x10800000

  reply	other threads:[~2012-11-08  9:55 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-29  9:59 [PATCH 0/4] DMA: PL330 fixes Bartlomiej Zolnierkiewicz
2012-10-29  9:59 ` Bartlomiej Zolnierkiewicz
2012-10-29  9:59 ` [PATCH 1/4] DMA: PL330: fix locking in pl330_free_chan_resources() Bartlomiej Zolnierkiewicz
2012-10-29  9:59   ` Bartlomiej Zolnierkiewicz
2012-10-29 21:48   ` Jassi Brar
2012-10-29 21:48     ` Jassi Brar
2012-10-29 21:48     ` Jassi Brar
2012-11-30 10:59     ` Bartlomiej Zolnierkiewicz
2012-11-30 10:59       ` Bartlomiej Zolnierkiewicz
2012-11-30 10:59       ` Bartlomiej Zolnierkiewicz
2012-11-30 18:07       ` Vinod Koul
2012-11-30 18:07         ` Vinod Koul
2012-12-12 15:08         ` Bartlomiej Zolnierkiewicz
2012-12-12 15:08           ` Bartlomiej Zolnierkiewicz
2012-10-29  9:59 ` [PATCH 2/4] ARM: EXYNOS: PL330 MDMA1 fix for revision 0 of Exynos4210 SOC Bartlomiej Zolnierkiewicz
2012-10-29  9:59   ` Bartlomiej Zolnierkiewicz
2012-10-29 17:24   ` Kukjin Kim
2012-10-29 17:24     ` Kukjin Kim
2012-10-30  8:56     ` Bartlomiej Zolnierkiewicz
2012-10-30  8:56       ` Bartlomiej Zolnierkiewicz
2012-11-08  4:49       ` Kukjin Kim
2012-11-08  4:49         ` Kukjin Kim
2012-11-08  9:54         ` Bartlomiej Zolnierkiewicz [this message]
2012-11-08  9:54           ` Bartlomiej Zolnierkiewicz
2012-11-09 10:19           ` Kukjin Kim
2012-11-09 10:19             ` Kukjin Kim
2012-11-20 12:23           ` Kukjin Kim
2012-11-20 12:23             ` Kukjin Kim
2012-10-29  9:59 ` [PATCH 3/4] ARM: dts: exynos4: add node for PL330 MDMA1 controller Bartlomiej Zolnierkiewicz
2012-10-29  9:59   ` Bartlomiej Zolnierkiewicz
2012-11-22 10:57   ` Bartlomiej Zolnierkiewicz
2012-11-22 10:57     ` Bartlomiej Zolnierkiewicz
2012-11-22 10:57     ` Bartlomiej Zolnierkiewicz
2012-11-23  1:56     ` Kukjin Kim
2012-11-23  1:56       ` Kukjin Kim
2012-10-29  9:59 ` [PATCH 4/4] DMA: PL330: add device tree property for DMA_MEMCPY capability Bartlomiej Zolnierkiewicz
2012-10-29  9:59   ` Bartlomiej Zolnierkiewicz
2012-10-29 21:45   ` Jassi Brar
2012-10-29 21:45     ` Jassi Brar
2012-10-30  9:21     ` Bartlomiej Zolnierkiewicz
2012-10-30  9:21       ` Bartlomiej Zolnierkiewicz
2012-11-09  6:11       ` Jassi Brar
2012-11-09  6:11         ` Jassi Brar
2012-11-30 10:56         ` Bartlomiej Zolnierkiewicz
2012-11-30 10:56           ` Bartlomiej Zolnierkiewicz
2012-12-12  7:36           ` Jassi Brar
2012-12-12  7:36             ` Jassi Brar
2012-12-12 15:04             ` Bartlomiej Zolnierkiewicz
2012-12-12 15:04               ` Bartlomiej Zolnierkiewicz
2012-10-29 10:05 ` [PATCH 0/4] DMA: PL330 fixes Tomasz Figa
2012-10-29 10:05   ` Tomasz Figa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201211081054.41649.b.zolnierkie@samsung.com \
    --to=b.zolnierkie@samsung.com \
    --cc=dinguyen@altera.com \
    --cc=jassisinghbrar@gmail.com \
    --cc=kgene.kim@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=pawel.moll@arm.com \
    --cc=rob.herring@calxeda.com \
    --cc=t.figa@samsung.com \
    --cc=vinod.koul@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.