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