diff mbox

[1/1] ARM: SAMSUNG: Fix compilation error

Message ID 1340165950-8996-1-git-send-email-sachin.kamat@linaro.org
State Superseded
Headers show

Commit Message

Sachin Kamat June 20, 2012, 4:19 a.m. UTC
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

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
---
 arch/arm/plat-samsung/include/plat/dma.h |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

Comments

Kukjin Kim Aug. 7, 2012, 10:41 a.m. UTC | #1
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
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> ---
>  arch/arm/plat-samsung/include/plat/dma.h |    5 +----
>  1 files changed, 1 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/plat-samsung/include/plat/dma.h b/arch/arm/plat-
> samsung/include/plat/dma.h
> index 7b02143..fdf34bc 100644
> --- a/arch/arm/plat-samsung/include/plat/dma.h
> +++ b/arch/arm/plat-samsung/include/plat/dma.h
> @@ -37,10 +37,7 @@ enum s3c2410_chan_op {
>  	S3C2410_DMAOP_STARTED,		/* indicate channel started */
>  };
> 
> -struct s3c2410_dma_client {
> -	char                *name;
> -};
> -
> +struct s3c2410_dma_client;
>  struct s3c2410_dma_chan;
>  enum dma_ch;
> 
> --
> 1.7.4.1

Applied, 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:38 a.m. UTC | #2
Kukjin Kim 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
> >
> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> > ---
> >  arch/arm/plat-samsung/include/plat/dma.h |    5 +----
> >  1 files changed, 1 insertions(+), 4 deletions(-)
> >
> > diff --git a/arch/arm/plat-samsung/include/plat/dma.h b/arch/arm/plat-
> > samsung/include/plat/dma.h
> > index 7b02143..fdf34bc 100644
> > --- a/arch/arm/plat-samsung/include/plat/dma.h
> > +++ b/arch/arm/plat-samsung/include/plat/dma.h
> > @@ -37,10 +37,7 @@ enum s3c2410_chan_op {
> >  	S3C2410_DMAOP_STARTED,		/* indicate channel started */
> >  };
> >
> > -struct s3c2410_dma_client {
> > -	char                *name;
> > -};
> > -
> > +struct s3c2410_dma_client;
> >  struct s3c2410_dma_chan;
> >  enum dma_ch;
> >
> > --
> > 1.7.4.1
> 
> Applied, thanks.
> 
Oops, this brings following error :(

drivers/spi/spi-s3c64xx.c:205: error: variable 's3c64xx_spi_dma_client' has initializer but incomplete type
drivers/spi/spi-s3c64xx.c:206: error: unknown field 'name' specified in initializer
drivers/spi/spi-s3c64xx.c:206: warning: excess elements in struct initializer
drivers/spi/spi-s3c64xx.c:206: warning: (near initialization for 's3c64xx_spi_dma_client')

As you know, the 'struct s3c2410_dma_client' is defined at the <plat/dma-pl330.h>  after applying this patch but S3C24XX and S3C64XX are not including 'plat/dma-pl330.h' so above error happened.

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, 3:24 a.m. UTC | #3
On 8 August 2012 06:08, Kukjin Kim <kgene.kim@samsung.com> wrote:
> Kukjin Kim 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
>> >
>> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>> > ---
>> >  arch/arm/plat-samsung/include/plat/dma.h |    5 +----
>> >  1 files changed, 1 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/arch/arm/plat-samsung/include/plat/dma.h b/arch/arm/plat-
>> > samsung/include/plat/dma.h
>> > index 7b02143..fdf34bc 100644
>> > --- a/arch/arm/plat-samsung/include/plat/dma.h
>> > +++ b/arch/arm/plat-samsung/include/plat/dma.h
>> > @@ -37,10 +37,7 @@ enum s3c2410_chan_op {
>> >     S3C2410_DMAOP_STARTED,          /* indicate channel started */
>> >  };
>> >
>> > -struct s3c2410_dma_client {
>> > -   char                *name;
>> > -};
>> > -
>> > +struct s3c2410_dma_client;
>> >  struct s3c2410_dma_chan;
>> >  enum dma_ch;
>> >
>> > --
>> > 1.7.4.1
>>
>> Applied, thanks.
>>
> Oops, this brings following error :(
>
> drivers/spi/spi-s3c64xx.c:205: error: variable 's3c64xx_spi_dma_client' has initializer but incomplete type
> drivers/spi/spi-s3c64xx.c:206: error: unknown field 'name' specified in initializer
> drivers/spi/spi-s3c64xx.c:206: warning: excess elements in struct initializer
> drivers/spi/spi-s3c64xx.c:206: warning: (near initialization for 's3c64xx_spi_dma_client')
>
> As you know, the 'struct s3c2410_dma_client' is defined at the <plat/dma-pl330.h>  after applying this patch but S3C24XX and S3C64XX are not including 'plat/dma-pl330.h' so above error happened.

So in that case, can we include this header in those files?

>
> 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, 4:56 a.m. UTC | #4
Sachin Kamat wrote:
> 
> On 8 August 2012 06:08, Kukjin Kim <kgene.kim@samsung.com> wrote:
> > Kukjin Kim 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
> >> >
> >> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> >> > ---
> >> >  arch/arm/plat-samsung/include/plat/dma.h |    5 +----
> >> >  1 files changed, 1 insertions(+), 4 deletions(-)
> >> >
> >> > diff --git a/arch/arm/plat-samsung/include/plat/dma.h
> b/arch/arm/plat-
> >> > samsung/include/plat/dma.h
> >> > index 7b02143..fdf34bc 100644
> >> > --- a/arch/arm/plat-samsung/include/plat/dma.h
> >> > +++ b/arch/arm/plat-samsung/include/plat/dma.h
> >> > @@ -37,10 +37,7 @@ enum s3c2410_chan_op {
> >> >     S3C2410_DMAOP_STARTED,          /* indicate channel started */
> >> >  };
> >> >
> >> > -struct s3c2410_dma_client {
> >> > -   char                *name;
> >> > -};
> >> > -
> >> > +struct s3c2410_dma_client;
> >> >  struct s3c2410_dma_chan;
> >> >  enum dma_ch;
> >> >
> >> > --
> >> > 1.7.4.1
> >>
> >> Applied, thanks.
> >>
> > Oops, this brings following error :(
> >
> > drivers/spi/spi-s3c64xx.c:205: error: variable 's3c64xx_spi_dma_client'
> has initializer but incomplete type
> > drivers/spi/spi-s3c64xx.c:206: error: unknown field 'name' specified in
> initializer
> > drivers/spi/spi-s3c64xx.c:206: warning: excess elements in struct
> initializer
> > drivers/spi/spi-s3c64xx.c:206: warning: (near initialization for
> 's3c64xx_spi_dma_client')
> >
> > As you know, the 'struct s3c2410_dma_client' is defined at the
> <plat/dma-pl330.h>  after applying this patch but S3C24XX and S3C64XX are
> not including 'plat/dma-pl330.h' so above error happened.
> 
> So in that case, can we include this header in those files?
> 
No, the <plat/dma-pl330.h> is only for PL330 not S3C24XX/S3C64XX and it
means above build error you reported should be fixed with another way.

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, 4:57 a.m. UTC | #5
On 8 August 2012 10:26, Kukjin Kim <kgene.kim@samsung.com> wrote:
> Sachin Kamat wrote:
>>
>> On 8 August 2012 06:08, Kukjin Kim <kgene.kim@samsung.com> wrote:
>> > Kukjin Kim 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
>> >> >
>> >> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>> >> > ---
>> >> >  arch/arm/plat-samsung/include/plat/dma.h |    5 +----
>> >> >  1 files changed, 1 insertions(+), 4 deletions(-)
>> >> >
>> >> > diff --git a/arch/arm/plat-samsung/include/plat/dma.h
>> b/arch/arm/plat-
>> >> > samsung/include/plat/dma.h
>> >> > index 7b02143..fdf34bc 100644
>> >> > --- a/arch/arm/plat-samsung/include/plat/dma.h
>> >> > +++ b/arch/arm/plat-samsung/include/plat/dma.h
>> >> > @@ -37,10 +37,7 @@ enum s3c2410_chan_op {
>> >> >     S3C2410_DMAOP_STARTED,          /* indicate channel started */
>> >> >  };
>> >> >
>> >> > -struct s3c2410_dma_client {
>> >> > -   char                *name;
>> >> > -};
>> >> > -
>> >> > +struct s3c2410_dma_client;
>> >> >  struct s3c2410_dma_chan;
>> >> >  enum dma_ch;
>> >> >
>> >> > --
>> >> > 1.7.4.1
>> >>
>> >> Applied, thanks.
>> >>
>> > Oops, this brings following error :(
>> >
>> > drivers/spi/spi-s3c64xx.c:205: error: variable 's3c64xx_spi_dma_client'
>> has initializer but incomplete type
>> > drivers/spi/spi-s3c64xx.c:206: error: unknown field 'name' specified in
>> initializer
>> > drivers/spi/spi-s3c64xx.c:206: warning: excess elements in struct
>> initializer
>> > drivers/spi/spi-s3c64xx.c:206: warning: (near initialization for
>> 's3c64xx_spi_dma_client')
>> >
>> > As you know, the 'struct s3c2410_dma_client' is defined at the
>> <plat/dma-pl330.h>  after applying this patch but S3C24XX and S3C64XX are
>> not including 'plat/dma-pl330.h' so above error happened.
>>
>> So in that case, can we include this header in those files?
>>
> No, the <plat/dma-pl330.h> is only for PL330 not S3C24XX/S3C64XX and it
> means above build error you reported should be fixed with another way.

Ok. Let me test this and see if I can come out with something.


>
> 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, 5:55 a.m. UTC | #6
On 8 August 2012 06:08, Kukjin Kim <kgene.kim@samsung.com> wrote:
> Kukjin Kim 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
>> >
>> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>> > ---
>> >  arch/arm/plat-samsung/include/plat/dma.h |    5 +----
>> >  1 files changed, 1 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/arch/arm/plat-samsung/include/plat/dma.h b/arch/arm/plat-
>> > samsung/include/plat/dma.h
>> > index 7b02143..fdf34bc 100644
>> > --- a/arch/arm/plat-samsung/include/plat/dma.h
>> > +++ b/arch/arm/plat-samsung/include/plat/dma.h
>> > @@ -37,10 +37,7 @@ enum s3c2410_chan_op {
>> >     S3C2410_DMAOP_STARTED,          /* indicate channel started */
>> >  };
>> >
>> > -struct s3c2410_dma_client {
>> > -   char                *name;
>> > -};
>> > -
>> > +struct s3c2410_dma_client;
>> >  struct s3c2410_dma_chan;
>> >  enum dma_ch;
>> >
>> > --
>> > 1.7.4.1
>>
>> Applied, thanks.
>>
> Oops, this brings following error :(
>
> drivers/spi/spi-s3c64xx.c:205: error: variable 's3c64xx_spi_dma_client' has initializer but incomplete type
> drivers/spi/spi-s3c64xx.c:206: error: unknown field 'name' specified in initializer
> drivers/spi/spi-s3c64xx.c:206: warning: excess elements in struct initializer
> drivers/spi/spi-s3c64xx.c:206: warning: (near initialization for 's3c64xx_spi_dma_client')
>
> As you know, the 'struct s3c2410_dma_client' is defined at the <plat/dma-pl330.h>  after applying this patch but S3C24XX and S3C64XX are not including 'plat/dma-pl330.h' so above error happened.

Checked this issue. It looks like making any changes in include files
will cause dependency issues and requires changes in many files.
Instead, the simple way to fix this is to change the include file in
sound/soc/samsung/pcm.c file itself which was cause for this issue. I
have tested after making this change with exynos4, 2410 and 6400
config files and they seem to build fine. Please let me know your
opinion. I will mail this patch soon.


>
> 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/arch/arm/plat-samsung/include/plat/dma.h b/arch/arm/plat-samsung/include/plat/dma.h
index 7b02143..fdf34bc 100644
--- a/arch/arm/plat-samsung/include/plat/dma.h
+++ b/arch/arm/plat-samsung/include/plat/dma.h
@@ -37,10 +37,7 @@  enum s3c2410_chan_op {
 	S3C2410_DMAOP_STARTED,		/* indicate channel started */
 };
 
-struct s3c2410_dma_client {
-	char                *name;
-};
-
+struct s3c2410_dma_client;
 struct s3c2410_dma_chan;
 enum dma_ch;