All of lore.kernel.org
 help / color / mirror / Atom feed
* Problem trying to add ASoC ADAV801 support to my kernel
@ 2011-07-26 13:31 Wayne Tams
  2011-07-27  8:09 ` Lars-Peter Clausen
  0 siblings, 1 reply; 3+ messages in thread
From: Wayne Tams @ 2011-07-26 13:31 UTC (permalink / raw)
  To: alsa-devel

Hi,

I am trying to add support for the ADAV801 codec to my 2.6.35.3 kernel. I
came across this patch
http://article.gmane.org/gmane.linux.alsa.devel/86474 obviously
I had to make some modifications so it would correctly patch my source.
However when I come to build the kernel I'm getting a whole host of errors
and I am little unsure on how to proceed, could anyone maybe provide some
guidance on the possible causes of my errors or maybe there is a more update
driver available.

Many thanks

W

wa  CC      sound/soc/codecs/adav80x.o
^[sound/soc/codecs/adav80x.c: In function 'adav80x_set_sysclk':
sound/soc/codecs/adav80x.c:556:27: error: 'struct snd_soc_codec' has no
member named 'dapm'
sound/soc/codecs/adav80x.c: In function 'adav80x_set_pll':
sound/soc/codecs/adav80x.c:630:27: error: 'struct snd_soc_codec' has no
member named 'dapm'
sound/soc/codecs/adav80x.c: In function 'adav80x_set_bias_level':
sound/soc/codecs/adav80x.c:654:7: error: 'struct snd_soc_codec' has no
member named 'dapm'
sound/soc/codecs/adav80x.c: At top level:
sound/soc/codecs/adav80x.c:698:34: error: array type has incomplete element
type
sound/soc/codecs/adav80x.c:700:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:700:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:701:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:701:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:702:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:702:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:703:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:703:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:704:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:704:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:705:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:705:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:706:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:706:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:707:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:707:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:709:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:709:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:710:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:710:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:711:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:711:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:712:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:712:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:713:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:713:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:714:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:714:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:716:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:716:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:719:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:719:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:720:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:720:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:721:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:721:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:722:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:722:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:723:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:723:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:724:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:724:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:725:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:725:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:726:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:726:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:728:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:728:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:729:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:729:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:730:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:730:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:731:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:731:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:732:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:732:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:733:4: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:733:4: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c:735:3: error: field name not in record or union
initializer
sound/soc/codecs/adav80x.c:735:3: error: (near initialization for
'adav80x_dais')
sound/soc/codecs/adav80x.c: In function 'adav80x_resume':
sound/soc/codecs/adav80x.c:767:2: error: implicit declaration of function
'snd_soc_cache_sync'
sound/soc/codecs/adav80x.c: At top level:
sound/soc/codecs/adav80x.c:777:15: error: variable 'adav80x_codec_driver'
has initializer but incomplete type
sound/soc/codecs/adav80x.c:778:2: error: unknown field 'probe' specified in
initializer
sound/soc/codecs/adav80x.c:778:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:778:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:779:2: error: unknown field 'remove' specified in
initializer
sound/soc/codecs/adav80x.c:779:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:779:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:780:2: error: unknown field 'suspend' specified
in initializer
sound/soc/codecs/adav80x.c:780:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:780:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:781:2: error: unknown field 'resume' specified in
initializer
sound/soc/codecs/adav80x.c:781:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:781:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:782:2: error: unknown field 'set_bias_level'
specified in initializer
sound/soc/codecs/adav80x.c:782:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:782:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:784:2: error: unknown field 'set_pll' specified
in initializer
sound/soc/codecs/adav80x.c:784:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:784:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:785:2: error: unknown field 'set_sysclk'
specified in initializer
sound/soc/codecs/adav80x.c:785:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:785:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:787:2: error: unknown field 'reg_word_size'
specified in initializer
sound/soc/codecs/adav80x.c:787:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:787:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:788:2: error: unknown field 'reg_cache_size'
specified in initializer
sound/soc/codecs/adav80x.c:788:103: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:788:103: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:789:2: error: unknown field 'reg_cache_default'
specified in initializer
sound/soc/codecs/adav80x.c:789:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:789:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:791:2: error: unknown field 'controls' specified
in initializer
sound/soc/codecs/adav80x.c:791:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:791:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:792:2: error: unknown field 'num_controls'
specified in initializer
sound/soc/codecs/adav80x.c:792:93: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:792:93: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:793:2: error: unknown field 'dapm_widgets'
specified in initializer
sound/soc/codecs/adav80x.c:793:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:793:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:794:2: error: unknown field 'num_dapm_widgets'
specified in initializer
sound/soc/codecs/adav80x.c:794:105: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:794:105: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:795:2: error: unknown field 'dapm_routes'
specified in initializer
sound/soc/codecs/adav80x.c:795:2: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:795:2: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c:796:2: error: unknown field 'num_dapm_routes'
specified in initializer
sound/soc/codecs/adav80x.c:796:102: warning: excess elements in struct
initializer
sound/soc/codecs/adav80x.c:796:102: warning: (near initialization for
'adav80x_codec_driver')
sound/soc/codecs/adav80x.c: In function 'adav80x_bus_probe':
sound/soc/codecs/adav80x.c:813:84: warning: type defaults to 'int' in type
name
sound/soc/codecs/adav80x.c:813:84: warning: type defaults to 'int' in type
name
sound/soc/codecs/adav80x.c:813:84: error: negative width in bit-field
'<anonymous>'
sound/soc/codecs/adav80x.c:813:84: warning: passing argument 1 of
'snd_soc_register_codec' from incompatible pointer type
include/sound/soc.h:239:5: note: expected 'struct snd_soc_codec *' but
argument is of type 'struct device *'
sound/soc/codecs/adav80x.c:813:84: error: too many arguments to function
'snd_soc_register_codec'
include/sound/soc.h:239:5: note: declared here
sound/soc/codecs/adav80x.c: In function 'adav80x_bus_remove':
sound/soc/codecs/adav80x.c:822:2: warning: passing argument 1 of
'snd_soc_unregister_codec' from incompatible pointer type
include/sound/soc.h:240:6: note: expected 'struct snd_soc_codec *' but
argument is of type 'struct device *'
sound/soc/codecs/adav80x.c: At top level:
sound/soc/codecs/adav80x.c:698:34: warning: 'adav80x_dais' defined but not
used
make[4]: *** [sound/soc/codecs/adav80x.o] Error 1
make[3]: *** [sound/soc/codecs] Error 2
make[2]: *** [sound/soc] Error 2
make[1]: *** [sound] Error 2
make[1]: Leaving directory `/home/wayne/sources/k/kernel/linux-2.6.35.3-imx'
make: ***
[/home/wayne/sources/k/kernel/linux-2.6.35.3-imx/.stamp_image_built] Error 2

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Problem trying to add ASoC ADAV801 support to my kernel
  2011-07-26 13:31 Problem trying to add ASoC ADAV801 support to my kernel Wayne Tams
@ 2011-07-27  8:09 ` Lars-Peter Clausen
  2011-07-27 14:18   ` Wayne Tams
  0 siblings, 1 reply; 3+ messages in thread
From: Lars-Peter Clausen @ 2011-07-27  8:09 UTC (permalink / raw)
  To: Wayne Tams; +Cc: alsa-devel

On 07/26/2011 03:31 PM, Wayne Tams wrote:
> Hi,
> 
> I am trying to add support for the ADAV801 codec to my 2.6.35.3 kernel. I
> came across this patch
> http://article.gmane.org/gmane.linux.alsa.devel/86474 obviously
> I had to make some modifications so it would correctly patch my source.
> However when I come to build the kernel I'm getting a whole host of errors
> and I am little unsure on how to proceed, could anyone maybe provide some
> guidance on the possible causes of my errors or maybe there is a more update
> driver available.
> 
> Many thanks
> 
> W

Your kernel version is rather old and was before the big Multi-Component patch,
which change the ASoC API quite a bit.
There is an old patch[1] adding ADAV801 support which still uses the pre
Multi-Component API you could use. Other options are to update your kernel to a
more recent version or backport the Multi-Component patch.

- Lars

[1] http://www.spinics.net/lists/alsa-devel/msg36465.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Problem trying to add ASoC ADAV801 support to my kernel
  2011-07-27  8:09 ` Lars-Peter Clausen
@ 2011-07-27 14:18   ` Wayne Tams
  0 siblings, 0 replies; 3+ messages in thread
From: Wayne Tams @ 2011-07-27 14:18 UTC (permalink / raw)
  To: Lars-Peter Clausen; +Cc: alsa-devel

On Wed, Jul 27, 2011 at 9:09 AM, Lars-Peter Clausen <lars@metafoo.de> wrote:

> On 07/26/2011 03:31 PM, Wayne Tams wrote:
> > Hi,
> >
> > I am trying to add support for the ADAV801 codec to my 2.6.35.3 kernel. I
> > came across this patch
> > http://article.gmane.org/gmane.linux.alsa.devel/86474 obviously
> > I had to make some modifications so it would correctly patch my source.
> > However when I come to build the kernel I'm getting a whole host of
> errors
> > and I am little unsure on how to proceed, could anyone maybe provide some
> > guidance on the possible causes of my errors or maybe there is a more
> update
> > driver available.
> >
> > Many thanks
> >
> > W
>
> Your kernel version is rather old and was before the big Multi-Component
> patch,
> which change the ASoC API quite a bit.
> There is an old patch[1] adding ADAV801 support which still uses the pre
> Multi-Component API you could use. Other options are to update your kernel
> to a
> more recent version or backport the Multi-Component patch.
>
> - Lars
>
> [1] http://www.spinics.net/lists/alsa-devel/msg36465.html
>
> I think that is it, Though the patch caused the kernel to cross compile
with error

sound/soc/codecs/adav80x.c:431:7: error: 'struct snd_soc_codec' has no
member named 'private_data'

it looks as though in sound/soc.h private_data is referenced as drvdata so I
have modified the patch and the kernel has now compiled successfully. I'll
have to make some modifications to the kconfig as the driver will only build
when SND_SOC_ALL_CODECS=y. It'll be a little while before I can test the
codec on actual hardware but if I have anymore trouble I'll drop you a mail.

Thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-07-27 14:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-26 13:31 Problem trying to add ASoC ADAV801 support to my kernel Wayne Tams
2011-07-27  8:09 ` Lars-Peter Clausen
2011-07-27 14:18   ` Wayne Tams

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.