Hi,
I get the following output from make on the above kernel version (this is on Stretch)
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:26:13: error: ‘asoc_simple_startup’ undeclared here (not in a function)
.startup = asoc_simple_startup,
^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:27:14: error: ‘asoc_simple_shutdown’ undeclared here (not in a function)
.shutdown = asoc_simple_shutdown,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:28:15: error: ‘asoc_simple_hw_params’ undeclared here (not in a function)
.hw_params = asoc_simple_hw_params,
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:82:13: warning: ‘struct asoc_simple_data’ declared inside parameter list will not be visible outside of this definition or declaration
struct asoc_simple_data *adata)
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_parse_convert’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:87:2: error: implicit declaration of function ‘asoc_simple_parse_convert’ [-Werror=implicit-function-declaration]
asoc_simple_parse_convert(dev, top, PREFIX, adata);
^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:98:13: warning: ‘struct simple_dai_props’ declared inside parameter list will not be visible outside of this definition or declaration
struct simple_dai_props *props,
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_parse_mclk_fs’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:105:40: error: dereferencing pointer to incomplete type ‘struct simple_dai_props’
of_property_read_u32(top, prop, &props->mclk_fs);
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:118:15: warning: ‘struct link_info’ declared inside parameter list will not be visible outside of this definition or declaration
struct link_info *li,
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:115:43: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_dai_link_of_dpcm’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:121:23: error: implicit declaration of function ‘simple_priv_to_dev’ [-Werror=implicit-function-declaration]
struct device *dev = simple_priv_to_dev(priv);
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:121:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:122:38: error: implicit declaration of function ‘simple_priv_to_link’ [-Werror=implicit-function-declaration]
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:122:66: error: dereferencing pointer to incomplete type ‘struct link_info’
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:123:39: error: implicit declaration of function ‘simple_priv_to_props’ [-Werror=implicit-function-declaration]
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:125:52: error: ‘struct snd_soc_dai_link’ has no member named ‘cpus’; did you mean ‘ops’?
struct snd_soc_dai_link_component *cpus = dai_link->cpus;
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:162:12: error: dereferencing pointer to incomplete type ‘struct simple_dai_props’
dai_props->cpu_dai = &priv->dais[li->dais++];
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:162:29: error: dereferencing pointer to incomplete type ‘struct asoc_simple_priv’
dai_props->cpu_dai = &priv->dais[li->dais++];
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:164:9: error: implicit declaration of function ‘asoc_simple_parse_cpu’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_cpu(np, dai_link, &is_single_links);
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:168:9: error: implicit declaration of function ‘asoc_simple_parse_clk_cpu’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_clk_cpu(dev, np, dai_link, dai);
^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:172:9: error: implicit declaration of function ‘asoc_simple_set_dailink_name’ [-Werror=implicit-function-declaration]
ret = asoc_simple_set_dailink_name(dev, dai_link,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:178:3: error: implicit declaration of function ‘asoc_simple_canonicalize_cpu’ [-Werror=implicit-function-declaration]
asoc_simple_canonicalize_cpu(dai_link, is_single_links);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:189:34: error: ‘asoc_simple_be_hw_params_fixup’ undeclared (first use in this function)
dai_link->be_hw_params_fixup = asoc_simple_be_hw_params_fixup;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:189:34: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:197:9: error: implicit declaration of function ‘asoc_simple_parse_codec’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_codec(np, dai_link);
^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:201:9: error: implicit declaration of function ‘asoc_simple_parse_clk_codec’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_clk_codec(dev, np, dai_link, dai);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:212:3: error: implicit declaration of function ‘snd_soc_of_parse_node_prefix’ [-Werror=implicit-function-declaration]
snd_soc_of_parse_node_prefix(top, cconf, codecs->of_node,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:221:39: error: passing argument 4 of ‘simple_parse_mclk_fs’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_parse_mclk_fs(top, np, codec, dai_props, prefix);
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:95:13: note: expected ‘struct simple_dai_props *’ but argument is of type ‘struct simple_dai_props *’
static void simple_parse_mclk_fs(struct device_node *top,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:223:2: error: implicit declaration of function ‘asoc_simple_canonicalize_platform’ [-Werror=implicit-function-declaration]
asoc_simple_canonicalize_platform(dai_link);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:225:8: error: implicit declaration of function ‘asoc_simple_parse_tdm’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_tdm(np, dai);
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:229:8: error: implicit declaration of function ‘asoc_simple_parse_daifmt’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_daifmt(dev, node, codec,
^~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:237:21: error: ‘asoc_simple_dai_init’ undeclared (first use in this function)
dai_link->init = asoc_simple_dai_init;
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:247:17: warning: ‘struct link_info’ declared inside parameter list will not be visible outside of this definition or declaration
struct link_info *li,
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:244:38: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
static int simple_dai_link_of(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_dai_link_of’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:250:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct device *dev = simple_priv_to_dev(priv);
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:251:66: error: dereferencing pointer to incomplete type ‘struct link_info’
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:286:11: error: dereferencing pointer to incomplete type ‘struct simple_dai_props’
dai_props->cpu_dai = &priv->dais[li->dais++];
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:286:28: error: dereferencing pointer to incomplete type ‘struct asoc_simple_priv’
dai_props->cpu_dai = &priv->dais[li->dais++];
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:295:40: error: passing argument 4 of ‘simple_parse_mclk_fs’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_parse_mclk_fs(top, cpu, codec, dai_props, prefix);
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:95:13: note: expected ‘struct simple_dai_props *’ but argument is of type ‘struct simple_dai_props *’
static void simple_parse_mclk_fs(struct device_node *top,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:305:8: error: implicit declaration of function ‘asoc_simple_parse_platform’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_platform(plat, dai_link);
^~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:327:17: error: ‘struct snd_soc_dai_link’ has no member named ‘cpus’; did you mean ‘ops’?
dai_link->cpus->dai_name,
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:333:19: error: ‘asoc_simple_dai_init’ undeclared (first use in this function)
dai_link->init = asoc_simple_dai_init;
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:346:11: warning: ‘struct link_info’ declared inside parameter list will not be visible outside of this definition or declaration
struct link_info *li,
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:40: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
static int simple_for_each_link(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_for_each_link’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:356:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct device *dev = simple_priv_to_dev(priv);
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:372:27: error: storage size of ‘adata’ isn’t known
struct asoc_simple_data adata;
^~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:372:27: warning: unused variable ‘adata’ [-Wunused-variable]
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:422:13: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
struct asoc_simple_priv *priv)
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_parse_aux_devs’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:424:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct device *dev = simple_priv_to_dev(priv);
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:426:30: error: implicit declaration of function ‘simple_priv_to_card’ [-Werror=implicit-function-declaration]
struct snd_soc_card *card = simple_priv_to_card(priv);
^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:426:30: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:445:19: error: ‘struct snd_soc_aux_dev’ has no member named ‘dlc’
card->aux_dev[i].dlc.of_node = aux_node;
^
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:452:35: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
static int simple_parse_of(struct asoc_simple_priv *priv)
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_parse_of’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:454:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct device *dev = simple_priv_to_dev(priv);
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:456:30: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct snd_soc_card *card = simple_priv_to_card(priv);
^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:457:19: error: storage size of ‘li’ isn’t known
struct link_info li;
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:463:8: error: implicit declaration of function ‘asoc_simple_parse_widgets’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_widgets(card, PREFIX);
^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:467:8: error: implicit declaration of function ‘asoc_simple_parse_routing’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_routing(card, PREFIX);
^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:471:8: error: implicit declaration of function ‘asoc_simple_parse_pin_switches’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_pin_switches(card, PREFIX);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:490:30: error: passing argument 1 of ‘simple_for_each_link’ from incompatible pointer type [-Werror=incompatible-pointer-types]
ret = simple_for_each_link(priv, &li,
^~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:12: note: expected ‘struct asoc_simple_priv *’ but argument is of type ‘struct asoc_simple_priv *’
static int simple_for_each_link(struct asoc_simple_priv priv,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:491:9: error: passing argument 3 of ‘simple_for_each_link’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_dai_link_of,
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:12: note: expected ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , _Bool)}’ but argument is of type ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info *, _Bool)}’
static int simple_for_each_link(struct asoc_simple_priv priv,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:492:9: error: passing argument 4 of ‘simple_for_each_link’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_dai_link_of_dpcm);
^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:12: note: expected ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , _Bool)}’ but argument is of type ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info *, _Bool)}’
static int simple_for_each_link(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:497:8: error: implicit declaration of function ‘asoc_simple_parse_card_name’ [-Werror=implicit-function-declaration]
ret = asoc_simple_parse_card_name(card, PREFIX);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:501:35: error: passing argument 2 of ‘simple_parse_aux_devs’ from incompatible pointer type [-Werror=incompatible-pointer-types]
ret = simple_parse_aux_devs(top, priv);
^~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:421:12: note: expected ‘struct asoc_simple_priv *’ but argument is of type ‘struct asoc_simple_priv *’
static int simple_parse_aux_devs(struct device_node *node,
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:457:19: warning: unused variable ‘li’ [-Wunused-variable]
struct link_info li;
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:509:16: warning: ‘struct link_info’ declared inside parameter list will not be visible outside of this definition or declaration
struct link_info *li, bool is_top)
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:506:37: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
static int simple_count_noml(struct asoc_simple_priv priv,
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_count_noml’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:511:4: error: dereferencing pointer to incomplete type ‘struct link_info’
li->dais++; / CPU or Codec */
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:521:16: warning: ‘struct link_info’ declared inside parameter list will not be visible outside of this definition or declaration
struct link_info *li, bool is_top)
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:518:37: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
static int simple_count_dpcm(struct asoc_simple_priv priv,
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_count_dpcm’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:523:4: error: dereferencing pointer to incomplete type ‘struct link_info’
li->dais++; / CPU or Codec */
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:532:14: warning: ‘struct link_info’ declared inside parameter list will not be visible outside of this definition or declaration
struct link_info *li)
^~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:531:42: warning: ‘struct asoc_simple_priv’ declared inside parameter list will not be visible outside of this definition or declaration
static void simple_get_dais_count(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_get_dais_count’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:534:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct device *dev = simple_priv_to_dev(priv);
^~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:584:5: error: dereferencing pointer to incomplete type ‘struct link_info’
li->link = 1;
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:590:23: error: passing argument 1 of ‘simple_for_each_link’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_for_each_link(priv, li,
^~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:12: note: expected ‘struct asoc_simple_priv *’ but argument is of type ‘struct asoc_simple_priv *’
static int simple_for_each_link(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:590:29: error: passing argument 2 of ‘simple_for_each_link’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_for_each_link(priv, li,
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:12: note: expected ‘struct link_info *’ but argument is of type ‘struct link_info *’
static int simple_for_each_link(struct asoc_simple_priv priv,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:591:9: error: passing argument 3 of ‘simple_for_each_link’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_count_noml,
^~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:12: note: expected ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , _Bool)}’ but argument is of type ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info *, _Bool)}’
static int simple_for_each_link(struct asoc_simple_priv priv,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:592:9: error: passing argument 4 of ‘simple_for_each_link’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_count_dpcm);
^~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:345:12: note: expected ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , _Bool)}’ but argument is of type ‘int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info , bool) {aka int ()(struct asoc_simple_priv *, struct device_node *, struct device_node *, struct link_info *, _Bool)}’
static int simple_for_each_link(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘simple_soc_probe’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:603:8: error: implicit declaration of function ‘asoc_simple_init_hp’ [-Werror=implicit-function-declaration]
ret = asoc_simple_init_hp(card, &priv->hp_jack, PREFIX);
^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:603:39: error: dereferencing pointer to incomplete type ‘struct asoc_simple_priv’
ret = asoc_simple_init_hp(card, &priv->hp_jack, PREFIX);
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:607:8: error: implicit declaration of function ‘asoc_simple_init_mic’ [-Werror=implicit-function-declaration]
ret = asoc_simple_init_mic(card, &priv->mic_jack, PREFIX);
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c: In function ‘asoc_simple_probe’:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:620:19: error: storage size of ‘li’ isn’t known
struct link_info li;
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:624:34: error: dereferencing pointer to incomplete type ‘struct asoc_simple_priv’
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
^~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:628:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
card = simple_priv_to_card(priv);
^
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:634:24: error: passing argument 1 of ‘simple_get_dais_count’ from incompatible pointer type [-Werror=incompatible-pointer-types]
simple_get_dais_count(priv, &li);
^~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:531:13: note: expected ‘struct asoc_simple_priv *’ but argument is of type ‘struct asoc_simple_priv *’
static void simple_get_dais_count(struct asoc_simple_priv *priv,
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:638:8: error: implicit declaration of function ‘asoc_simple_init_priv’ [-Werror=implicit-function-declaration]
ret = asoc_simple_init_priv(priv, &li);
^~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:644:25: error: passing argument 1 of ‘simple_parse_of’ from incompatible pointer type [-Werror=incompatible-pointer-types]
ret = simple_parse_of(priv);
^~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:452:12: note: expected ‘struct asoc_simple_priv *’ but argument is of type ‘struct asoc_simple_priv *’
static int simple_parse_of(struct asoc_simple_priv *priv)
^~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:676:12: error: dereferencing pointer to incomplete type ‘struct simple_dai_props’
dai_props->cpu_dai = &priv->dais[dai_idx++];
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:679:20: error: ‘struct snd_soc_dai_link’ has no member named ‘cpus’; did you mean ‘ops’?
cpus = dai_link->cpus;
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:686:23: error: ‘struct snd_soc_dai_link’ has no member named ‘platforms’; did you mean ‘platform_name’?
platform = dai_link->platforms;
^~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:693:21: error: ‘asoc_simple_dai_init’ undeclared (first use in this function)
dai_link->init = asoc_simple_dai_init;
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:702:2: error: implicit declaration of function ‘asoc_simple_debug_info’ [-Werror=implicit-function-declaration]
asoc_simple_debug_info(priv);
^~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:710:2: error: implicit declaration of function ‘asoc_simple_clean_reference’ [-Werror=implicit-function-declaration]
asoc_simple_clean_reference(card);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:620:19: warning: unused variable ‘li’ [-Wunused-variable]
struct link_info li;
^~
At top level:
/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.c:31:12: warning: ‘asoc_simple_parse_dai’ defined but not used [-Wunused-function]
static int asoc_simple_parse_dai(struct device_node *node,
^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:303: recipe for target '/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.o' failed
make[1]: *** [/var/lib/dkms/wm8960-soundcard/1.0/build/wm8960-soundcard.o] Error 1
Makefile:1519: recipe for target 'module/var/lib/dkms/wm8960-soundcard/1.0/build' failed
make: *** [module/var/lib/dkms/wm8960-soundcard/1.0/build] Error 2
make: Leaving directory '/usr/src/linux-headers-4.19.66-v7+'
Spent hours on some of the other workarounds here but nothing seems to work.