waveshare / WM8960-Audio-HAT

The drivers of [WM8960 Audio HAT] for Raspberry Pi
GNU General Public License v3.0
100 stars 65 forks source link

Can't build driver on 4.19.66-v7+ #12

Open christmasjumper opened 3 years ago

christmasjumper commented 3 years ago

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.

rajpancha1 commented 2 years ago

I'm having the same issue on 4.19.66-v7+. Anyone found the fix for it? Thanks, RP