ASoC: Samsung: Fix build error

Message ID 1344405883-27603-1-git-send-email-sachin.kamat@linaro.org
State Accepted
Headers show

Commit Message

Sachin Kamat Aug. 8, 2012, 6:04 a.m.
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

Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com>
---
 sound/soc/samsung/pcm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Mark Brown Aug. 8, 2012, 11:09 a.m. | #1
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.
Sachin Kamat Aug. 8, 2012, 11:33 a.m. | #2
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.
Kukjin Kim Aug. 8, 2012, 11:38 a.m. | #3
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.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
Sachin Kamat Aug. 8, 2012, 11:44 a.m. | #4
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.


>
> Thanks.
>
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
>
Kukjin Kim Aug. 8, 2012, 12:18 p.m. | #5
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...

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
Kukjin Kim Aug. 10, 2012, 6:03 a.m. | #6
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
> 
> Cc: Kukjin Kim <kgene.kim@samsung.com>
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com>

BTW, Sachin, do you _really_ need to keep above double signoff with different e-mail?

I think, last one should be removed? Because in the field of author, 'linaro.org' e-mail is used?

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
Sachin Kamat Aug. 10, 2012, 6:17 a.m. | #7
Hi Kukjin,

On 10 August 2012 11:33, Kukjin Kim <kgene.kim@samsung.com> wrote:
> 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
>>
>> Cc: Kukjin Kim <kgene.kim@samsung.com>
>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>> Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com>
>
> BTW, Sachin, do you _really_ need to keep above double signoff with different e-mail?
>
> I think, last one should be removed? Because in the field of author, 'linaro.org' e-mail is used?

It is just for a policy i had to keep both. Anyway I don't think it
should be a problem as it is practiced by many developers.
If you _really_ feel it is too annoying, then please feel free to remove one.

>
> Thanks.
>
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
>
Mark Brown Aug. 10, 2012, 4:58 p.m. | #8
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,

Applied, thanks.

Patch

diff --git a/sound/soc/samsung/pcm.c b/sound/soc/samsung/pcm.c
index b7b2a1f..89b0646 100644
--- a/sound/soc/samsung/pcm.c
+++ b/sound/soc/samsung/pcm.c
@@ -20,7 +20,7 @@ 
 #include <sound/pcm_params.h>
 
 #include <plat/audio.h>
-#include <plat/dma.h>
+#include <mach/dma.h>
 
 #include "dma.h"
 #include "pcm.h"