diff mbox

ASoC: Samsung: Fix build error

Message ID 0b2a01cd7561$333e97b0$99bbc710$%kim@samsung.com
State New
Headers show

Commit Message

Kukjin Kim Aug. 8, 2012, 12:27 p.m. UTC
Kukjin Kim wrote:
> 
> Sachin Kamat wrote:
> >
> > On 8 August 2012 17:08, Kukjin Kim <kgene.kim@samsung.com> wrote:
> > > Sachin Kamat wrote:
> > >>
> > >> Hi Mark,
> > >>
> > >> On 8 August 2012 16:39, Mark Brown
> > <broonie@opensource.wolfsonmicro.com>
> > >> wrote:
> > >> > On Wed, Aug 08, 2012 at 11:34:43AM +0530, Sachin Kamat wrote:
> > >> >> Fixes the following build error:
> > >> >> In file included from
arch/arm/mach-exynos/include/mach/dma.h:24:0,
> > >> >>               from
arch/arm/plat-samsung/include/plat/dma-ops.h:17,
> > >> >>               from arch/arm/plat-samsung/include/plat/dma.h:128,
> > >> >>               from sound/soc/samsung/pcm.c:23:
> > >> >> arch/arm/plat-samsung/include/plat/dma-pl330.h:106:8:
> > >> >>                       error: redefinition of 'struct
> > > s3c2410_dma_client'
> > >> >> arch/arm/plat-samsung/include/plat/dma.h:40:8: note: originally
> > defined
> > >> here
> > >> >> make[3]: *** [sound/soc/samsung/pcm.o] Error 1
> > >> >
> > >> > Shouldn't this be being fixed in the headers?  It looks like they
> > >> > reference and disagree with each other on Exynos (my primary
> > development
> > >> > platform is S3C6410 based so I'd notice if it was a generic Samsung
> > >> > issue.
> > >> >
> > >> > Pasting the error message isn't really that useful unless the fix
> is
> > >> > obvious, it's better to explain in words what's wrong.
> > >>
> > >> I had sent the initial patch trying to fix this in the headers and it
> > >> worked for exynos4 config. However Kukjin pointed out that the patch
> > >> created similar errors with 2410 and 6400 configs. Fixing it further
> > >> in the headers did not look quite straight forward as there are many
> > >> headers trying to include one another. Hence I felt it is better
> > >> handled in the current way. I understand i should have added this
> > >> information in the commit message. Below is the link for your
> > >> reference that provides the complete discussion.
> > >>
> > >> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/11274
> > >>
> > >> Please let me know your opinion about this.
> > >>
> > >>
> > > I also agree with Mark's opinion and current Sachin's approach cannot
> > avoid
> > > whole similar build error.
> >
> > With the current change I did not see any build error with the configs
> > (2410, 6400, 64x0 and exyno4) i checked with (after enabling audio).
> > Please let me know if you observed any such build error after adding
> > this patch.
> >
> >
> 
> Happens following error with s5pv210_defcofnig (after enabling s5p-sss).
> 
> In file included from arch/arm/mach-s5pv210/include/mach/dma.h:24,
>                  from arch/arm/plat-samsung/include/plat/dma-ops.h:17,
>                  from arch/arm/plat-samsung/include/plat/dma.h:128,
>                  from drivers/crypto/s5p-sss.c:33:
> arch/arm/plat-samsung/include/plat/dma-pl330.h:106: error: redefinition of
> 'struct s3c2410_dma_client'
> make[2]: *** [drivers/crypto/s5p-sss.o] Error 1
> make[1]: *** [drivers/crypto] Error 2
> make[1]: *** Waiting for unfinished jobs....
> make: *** [drivers] Error 2
> make: *** Waiting for unfinished jobs....
> 
> Actually, <mach/dma.h> is including <plat/dma-pl330.h> for s5p64x0,
> s5pc100, s5pv210 and exynos or <plat/dma.h> for s3c24xx and s3c64xx. And
> the cause of build error you reported is duplicated declaration of
> s3c2410_dma_client. So it can happen when <plat/dma-pl330.h> and
> <plat/dma.h> are included together at the same time...
> 
Of course, following can fix above build error similarly...

---
---

Hmm...I need to sort this out...

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

Comments

Kukjin Kim Aug. 10, 2012, 5:42 a.m. UTC | #1
Kukjin Kim wrote:
> 
> Kukjin Kim wrote:
> >
> > Sachin Kamat wrote:
> > >
> > > On 8 August 2012 17:08, Kukjin Kim <kgene.kim@samsung.com> wrote:
> > > > Sachin Kamat wrote:
> > > >>
> > > >> Hi Mark,
> > > >>
> > > >> On 8 August 2012 16:39, Mark Brown
> > > <broonie@opensource.wolfsonmicro.com>
> > > >> wrote:
> > > >> > On Wed, Aug 08, 2012 at 11:34:43AM +0530, Sachin Kamat wrote:
> > > >> >> Fixes the following build error:
> > > >> >> In file included from
> arch/arm/mach-exynos/include/mach/dma.h:24:0,
> > > >> >>               from
> arch/arm/plat-samsung/include/plat/dma-ops.h:17,
> > > >> >>               from arch/arm/plat-samsung/include/plat/dma.h:128,
> > > >> >>               from sound/soc/samsung/pcm.c:23:
> > > >> >> arch/arm/plat-samsung/include/plat/dma-pl330.h:106:8:
> > > >> >>                       error: redefinition of 'struct
> > > > s3c2410_dma_client'
> > > >> >> arch/arm/plat-samsung/include/plat/dma.h:40:8: note: originally
> > > defined
> > > >> here
> > > >> >> make[3]: *** [sound/soc/samsung/pcm.o] Error 1
> > > >> >
> > > >> > Shouldn't this be being fixed in the headers?  It looks like they
> > > >> > reference and disagree with each other on Exynos (my primary
> > > development
> > > >> > platform is S3C6410 based so I'd notice if it was a generic
> Samsung
> > > >> > issue.
> > > >> >
> > > >> > Pasting the error message isn't really that useful unless the fix
> > is
> > > >> > obvious, it's better to explain in words what's wrong.
> > > >>
> > > >> I had sent the initial patch trying to fix this in the headers and
> it
> > > >> worked for exynos4 config. However Kukjin pointed out that the
> patch
> > > >> created similar errors with 2410 and 6400 configs. Fixing it
> further
> > > >> in the headers did not look quite straight forward as there are
> many
> > > >> headers trying to include one another. Hence I felt it is better
> > > >> handled in the current way. I understand i should have added this
> > > >> information in the commit message. Below is the link for your
> > > >> reference that provides the complete discussion.
> > > >>
> > > >> http://comments.gmane.org/gmane.linux.kernel.samsung-soc/11274
> > > >>
> > > >> Please let me know your opinion about this.
> > > >>
> > > >>
> > > > I also agree with Mark's opinion and current Sachin's approach
> cannot
> > > avoid
> > > > whole similar build error.
> > >
> > > With the current change I did not see any build error with the configs
> > > (2410, 6400, 64x0 and exyno4) i checked with (after enabling audio).
> > > Please let me know if you observed any such build error after adding
> > > this patch.
> > >
> > >
> >
> > Happens following error with s5pv210_defcofnig (after enabling s5p-sss).
> >
> > In file included from arch/arm/mach-s5pv210/include/mach/dma.h:24,
> >                  from arch/arm/plat-samsung/include/plat/dma-ops.h:17,
> >                  from arch/arm/plat-samsung/include/plat/dma.h:128,
> >                  from drivers/crypto/s5p-sss.c:33:
> > arch/arm/plat-samsung/include/plat/dma-pl330.h:106: error: redefinition
> of
> > 'struct s3c2410_dma_client'
> > make[2]: *** [drivers/crypto/s5p-sss.o] Error 1
> > make[1]: *** [drivers/crypto] Error 2
> > make[1]: *** Waiting for unfinished jobs....
> > make: *** [drivers] Error 2
> > make: *** Waiting for unfinished jobs....
> >
> > Actually, <mach/dma.h> is including <plat/dma-pl330.h> for s5p64x0,
> > s5pc100, s5pv210 and exynos or <plat/dma.h> for s3c24xx and s3c64xx. And
> > the cause of build error you reported is duplicated declaration of
> > s3c2410_dma_client. So it can happen when <plat/dma-pl330.h> and
> > <plat/dma.h> are included together at the same time...
> >
> Of course, following can fix above build error similarly...
> 
> ---
> diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c
> index bc986f8..6a3e98e 100644
> --- a/drivers/crypto/s5p-sss.c
> +++ b/drivers/crypto/s5p-sss.c
> @@ -30,7 +30,7 @@
>  #include <crypto/ctr.h>
> 
>  #include <plat/cpu.h>
> -#include <plat/dma.h>
> +#include <mach/dma.h>
> 
>  #define _SBF(s, v)			((v) << (s))
>  #define _BIT(b)			_SBF(b, 1)
> ---
> 
> Hmm...I need to sort this out...
> 
Mark, I think, Sachin's "[PATCH] ASoC: Samsung: Fix build error" can be a
solution to fix build error because current structure of Samsung DMA is not
simple to fix the problem and support s3c24xx-dma, pl080 and pl330 together.
So only <mach/dma.h> should be included in driver not <plat/dma.h> for
Samsung DMA now. However I know, Boojin Kim (Cc'ed) will clean up the
headers for DMA.

So if you agree, please pick this up into your tree with my ack.

Acked-by: Kukjin Kim <kgene.kim@samsung.com>

Note, if this is ok to you, I will post above fix (drivers/crypto/s5p-sss.c)
to crypto mailing list too.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
diff mbox

Patch

diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c
index bc986f8..6a3e98e 100644
--- a/drivers/crypto/s5p-sss.c
+++ b/drivers/crypto/s5p-sss.c
@@ -30,7 +30,7 @@ 
 #include <crypto/ctr.h>

 #include <plat/cpu.h>
-#include <plat/dma.h>
+#include <mach/dma.h>

 #define _SBF(s, v)			((v) << (s))
 #define _BIT(b)			_SBF(b, 1)