[alsa-devel] [PATCH] ASoC: Samsung: Fix build error

Kukjin Kim kgene.kim at samsung.com
Fri Aug 10 07:42:04 CEST 2012


Kukjin Kim wrote:
> 
> Kukjin Kim wrote:
> >
> > Sachin Kamat wrote:
> > >
> > > On 8 August 2012 17:08, Kukjin Kim <kgene.kim at samsung.com> wrote:
> > > > Sachin Kamat wrote:
> > > >>
> > > >> Hi Mark,
> > > >>
> > > >> On 8 August 2012 16:39, Mark Brown
> > > <broonie at 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 at 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 at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.



More information about the Alsa-devel mailing list