From: kernel test robot <lkp@intel.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [morimoto:sound-cleanup-2026-09-04 265/343] sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:79:36: error: call to undeclared function 'snd_soc_card_get_drvdata'; ISO C99 and later do not support implicit function declarations
Date: Thu, 10 Sep 2026 10:53:53 +0800 [thread overview]
Message-ID: <202609101046.H3n8Zm20-lkp@intel.com> (raw)
tree: https://github.com/morimoto/linux sound-cleanup-2026-09-04
head: dfa282dfe99643be782149d948208f3d514ebb99
commit: 9d6fae1badfb21786797586c01016e4413a98c3a [265/343] ASoC: soc-card.h: remove compatible definition
config: x86_64-rhel-9.4-rust (https://download.01.org/0day-ci/archive/20260910/202609101046.H3n8Zm20-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
rustc: rustc 1.96.0 (ac68faa20 2026-05-25)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260910/202609101046.H3n8Zm20-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609101046.H3n8Zm20-lkp@intel.com/
All errors (new ones prefixed by >>):
>> sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:79:36: error: call to undeclared function 'snd_soc_card_get_drvdata'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
79 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^
>> sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:79:30: error: incompatible integer to pointer conversion initializing 'struct asoc_sdw_mc_private *' with an expression of type 'int' [-Wint-conversion]
79 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:85:17: error: incomplete definition of type 'struct snd_soc_dai'
85 | component = dai->component;
| ~~~^
include/sound/soc.h:419:8: note: forward declaration of 'struct snd_soc_dai'
419 | struct snd_soc_dai;
| ^
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:88:35: error: incomplete definition of type 'struct snd_soc_component'
88 | card->components, component->name_prefix);
| ~~~~~~~~~^
include/sound/soc.h:422:8: note: forward declaration of 'struct snd_soc_component'
422 | struct snd_soc_component;
| ^
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:93:24: error: incomplete definition of type 'struct snd_soc_component'
93 | if (!strstr(component->name_prefix, need_sdca_suffix[i]))
| ~~~~~~~~~^
include/sound/soc.h:422:8: note: forward declaration of 'struct snd_soc_component'
422 | struct snd_soc_component;
| ^
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:112:56: error: incomplete definition of type 'struct snd_soc_component'
112 | dev_err(card->dev, "%s is not supported\n", component->name_prefix);
| ~~~~~~~~~^
include/sound/soc.h:422:8: note: forward declaration of 'struct snd_soc_component'
422 | struct snd_soc_component;
| ^
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:148:36: error: call to undeclared function 'snd_soc_card_get_drvdata'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
148 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:148:30: error: incompatible integer to pointer conversion initializing 'struct asoc_sdw_mc_private *' with an expression of type 'int' [-Wint-conversion]
148 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:173:36: error: call to undeclared function 'snd_soc_card_get_drvdata'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
173 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^
sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:173:30: error: incompatible integer to pointer conversion initializing 'struct asoc_sdw_mc_private *' with an expression of type 'int' [-Wint-conversion]
173 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 errors generated.
--
>> sound/soc/sdw_utils/soc_sdw_senary_amp.c:23:36: error: call to undeclared function 'snd_soc_card_get_drvdata'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
23 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^
>> sound/soc/sdw_utils/soc_sdw_senary_amp.c:23:30: error: incompatible integer to pointer conversion initializing 'struct asoc_sdw_mc_private *' with an expression of type 'int' [-Wint-conversion]
23 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/sdw_utils/soc_sdw_senary_amp.c:44:36: error: call to undeclared function 'snd_soc_card_get_drvdata'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
44 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^
sound/soc/sdw_utils/soc_sdw_senary_amp.c:44:30: error: incompatible integer to pointer conversion initializing 'struct asoc_sdw_mc_private *' with an expression of type 'int' [-Wint-conversion]
44 | struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 errors generated.
vim +/snd_soc_card_get_drvdata +79 sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c
77272ecd96d73a9 Qianghua Wang 2026-09-01 74
77272ecd96d73a9 Qianghua Wang 2026-09-01 75 int asoc_sdw_senary_sdca_jack_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai)
77272ecd96d73a9 Qianghua Wang 2026-09-01 76 {
77272ecd96d73a9 Qianghua Wang 2026-09-01 77 struct snd_soc_card *card = rtd->card;
77272ecd96d73a9 Qianghua Wang 2026-09-01 78 struct snd_soc_dapm_context *dapm = snd_soc_card_to_dapm(card);
77272ecd96d73a9 Qianghua Wang 2026-09-01 @79 struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
77272ecd96d73a9 Qianghua Wang 2026-09-01 80 struct snd_soc_component *component;
77272ecd96d73a9 Qianghua Wang 2026-09-01 81 struct snd_soc_jack *jack;
77272ecd96d73a9 Qianghua Wang 2026-09-01 82 int ret;
77272ecd96d73a9 Qianghua Wang 2026-09-01 83 int i;
77272ecd96d73a9 Qianghua Wang 2026-09-01 84
77272ecd96d73a9 Qianghua Wang 2026-09-01 85 component = dai->component;
77272ecd96d73a9 Qianghua Wang 2026-09-01 86 card->components = devm_kasprintf(card->dev, GFP_KERNEL,
77272ecd96d73a9 Qianghua Wang 2026-09-01 87 "%s hs:%s",
77272ecd96d73a9 Qianghua Wang 2026-09-01 88 card->components, component->name_prefix);
77272ecd96d73a9 Qianghua Wang 2026-09-01 89 if (!card->components)
77272ecd96d73a9 Qianghua Wang 2026-09-01 90 return -ENOMEM;
77272ecd96d73a9 Qianghua Wang 2026-09-01 91
77272ecd96d73a9 Qianghua Wang 2026-09-01 92 for (i = 0; i < ARRAY_SIZE(need_sdca_suffix); i++) {
77272ecd96d73a9 Qianghua Wang 2026-09-01 93 if (!strstr(component->name_prefix, need_sdca_suffix[i]))
77272ecd96d73a9 Qianghua Wang 2026-09-01 94 continue;
77272ecd96d73a9 Qianghua Wang 2026-09-01 95
77272ecd96d73a9 Qianghua Wang 2026-09-01 96 card->components = devm_kasprintf(card->dev, GFP_KERNEL,
77272ecd96d73a9 Qianghua Wang 2026-09-01 97 "%s-sdca", card->components);
77272ecd96d73a9 Qianghua Wang 2026-09-01 98 if (!card->components)
77272ecd96d73a9 Qianghua Wang 2026-09-01 99 return -ENOMEM;
77272ecd96d73a9 Qianghua Wang 2026-09-01 100
77272ecd96d73a9 Qianghua Wang 2026-09-01 101 ret = snd_soc_dapm_add_routes(dapm, senary_sdca_jack_map,
77272ecd96d73a9 Qianghua Wang 2026-09-01 102 ARRAY_SIZE(senary_sdca_jack_map));
77272ecd96d73a9 Qianghua Wang 2026-09-01 103 if (ret) {
77272ecd96d73a9 Qianghua Wang 2026-09-01 104 dev_err(card->dev,
77272ecd96d73a9 Qianghua Wang 2026-09-01 105 "senary sdca jack map addition failed: %d\n", ret);
77272ecd96d73a9 Qianghua Wang 2026-09-01 106 return ret;
77272ecd96d73a9 Qianghua Wang 2026-09-01 107 }
77272ecd96d73a9 Qianghua Wang 2026-09-01 108 break;
77272ecd96d73a9 Qianghua Wang 2026-09-01 109 }
77272ecd96d73a9 Qianghua Wang 2026-09-01 110
77272ecd96d73a9 Qianghua Wang 2026-09-01 111 if (i == ARRAY_SIZE(need_sdca_suffix)) {
77272ecd96d73a9 Qianghua Wang 2026-09-01 112 dev_err(card->dev, "%s is not supported\n", component->name_prefix);
77272ecd96d73a9 Qianghua Wang 2026-09-01 113 return -EINVAL;
77272ecd96d73a9 Qianghua Wang 2026-09-01 114 }
77272ecd96d73a9 Qianghua Wang 2026-09-01 115
77272ecd96d73a9 Qianghua Wang 2026-09-01 116 ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
77272ecd96d73a9 Qianghua Wang 2026-09-01 117 SND_JACK_HEADSET | SND_JACK_BTN_0 |
77272ecd96d73a9 Qianghua Wang 2026-09-01 118 SND_JACK_BTN_1 | SND_JACK_BTN_2 |
77272ecd96d73a9 Qianghua Wang 2026-09-01 119 SND_JACK_BTN_3,
77272ecd96d73a9 Qianghua Wang 2026-09-01 120 &ctx->sdw_headset,
77272ecd96d73a9 Qianghua Wang 2026-09-01 121 senary_sdca_jack_pins,
77272ecd96d73a9 Qianghua Wang 2026-09-01 122 ARRAY_SIZE(senary_sdca_jack_pins));
77272ecd96d73a9 Qianghua Wang 2026-09-01 123 if (ret) {
77272ecd96d73a9 Qianghua Wang 2026-09-01 124 dev_err(rtd->card->dev, "Headset Jack creation failed: %d\n",
77272ecd96d73a9 Qianghua Wang 2026-09-01 125 ret);
77272ecd96d73a9 Qianghua Wang 2026-09-01 126 return ret;
77272ecd96d73a9 Qianghua Wang 2026-09-01 127 }
77272ecd96d73a9 Qianghua Wang 2026-09-01 128
77272ecd96d73a9 Qianghua Wang 2026-09-01 129 jack = &ctx->sdw_headset;
77272ecd96d73a9 Qianghua Wang 2026-09-01 130
77272ecd96d73a9 Qianghua Wang 2026-09-01 131 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
77272ecd96d73a9 Qianghua Wang 2026-09-01 132 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
77272ecd96d73a9 Qianghua Wang 2026-09-01 133 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
77272ecd96d73a9 Qianghua Wang 2026-09-01 134 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
77272ecd96d73a9 Qianghua Wang 2026-09-01 135
77272ecd96d73a9 Qianghua Wang 2026-09-01 136 ret = snd_soc_component_set_jack(component, jack, NULL);
77272ecd96d73a9 Qianghua Wang 2026-09-01 137
77272ecd96d73a9 Qianghua Wang 2026-09-01 138 if (ret)
77272ecd96d73a9 Qianghua Wang 2026-09-01 139 dev_err(rtd->card->dev, "Headset Jack call-back failed: %d\n",
77272ecd96d73a9 Qianghua Wang 2026-09-01 140 ret);
77272ecd96d73a9 Qianghua Wang 2026-09-01 141
77272ecd96d73a9 Qianghua Wang 2026-09-01 142 return ret;
77272ecd96d73a9 Qianghua Wang 2026-09-01 143 }
77272ecd96d73a9 Qianghua Wang 2026-09-01 144 EXPORT_SYMBOL_NS(asoc_sdw_senary_sdca_jack_rtd_init, "SND_SOC_SDW_UTILS");
77272ecd96d73a9 Qianghua Wang 2026-09-01 145
:::::: The code at line 79 was first introduced by commit
:::::: 77272ecd96d73a90ffc6d4f7939d16ce45303f5b ASoC: sdw_utils: add Senary SN624x helpers and codec_info
:::::: TO: Qianghua Wang <qianghua.wang@senarytech.com>
:::::: CC: Mark Brown <broonie@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-09-10 2:54 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202609101046.H3n8Zm20-lkp@intel.com \
--to=lkp@intel.com \
--cc=kuninori.morimoto.gx@renesas.com \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).