Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [morimoto:sound-cleanup-2026-09-04 266/343] sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:86:6: error: incomplete definition of type 'struct snd_soc_card'
@ 2026-09-10  5:44 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-10  5:44 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: llvm, oe-kbuild-all

tree:   https://github.com/morimoto/linux sound-cleanup-2026-09-04
head:   dfa282dfe99643be782149d948208f3d514ebb99
commit: 90917afe259f4da802e7a1bdc3771d74b7534a63 [266/343] ASoC: move struct snd_soc_card/snd_soc_card_driver to soc-card.[hc]
config: x86_64-rhel-9.4-rust (https://download.01.org/0day-ci/archive/20260910/202609101331.nnc3ILxg-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/202609101331.nnc3ILxg-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/202609101331.nnc3ILxg-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:86:6: error: incomplete definition of type 'struct snd_soc_card'
      86 |         card->components = devm_kasprintf(card->dev, GFP_KERNEL,
         |         ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:86:40: error: incomplete definition of type 'struct snd_soc_card'
      86 |         card->components = devm_kasprintf(card->dev, GFP_KERNEL,
         |                                           ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:88:12: error: incomplete definition of type 'struct snd_soc_card'
      88 |                                           card->components, component->name_prefix);
         |                                           ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   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:89:11: error: incomplete definition of type 'struct snd_soc_card'
      89 |         if (!card->components)
         |              ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   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:96:7: error: incomplete definition of type 'struct snd_soc_card'
      96 |                 card->components = devm_kasprintf(card->dev, GFP_KERNEL,
         |                 ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:96:41: error: incomplete definition of type 'struct snd_soc_card'
      96 |                 card->components = devm_kasprintf(card->dev, GFP_KERNEL,
         |                                                   ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:97:24: error: incomplete definition of type 'struct snd_soc_card'
      97 |                                                   "%s-sdca", card->components);
         |                                                              ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:98:12: error: incomplete definition of type 'struct snd_soc_card'
      98 |                 if (!card->components)
         |                      ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:104:16: error: incomplete definition of type 'struct snd_soc_card'
     104 |                         dev_err(card->dev,
         |                                 ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:112:15: error: incomplete definition of type 'struct snd_soc_card'
     112 |                 dev_err(card->dev, "%s is not supported\n", component->name_prefix);
         |                         ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   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:124:20: error: incomplete definition of type 'struct snd_soc_card'
     124 |                 dev_err(rtd->card->dev, "Headset Jack creation failed: %d\n",
         |                         ~~~~~~~~~^
   include/linux/dev_printk.h:154:44: note: expanded from macro 'dev_err'
     154 |         dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                   ^~~
   include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                         ^~~
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:139:20: error: incomplete definition of type 'struct snd_soc_card'
     139 |                 dev_err(rtd->card->dev, "Headset Jack call-back failed: %d\n",
         |                         ~~~~~~~~~^
   include/linux/dev_printk.h:154:44: note: expanded from macro 'dev_err'
     154 |         dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                   ^~~
   include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                         ^~~
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
--
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:26:17: error: incomplete definition of type 'struct snd_soc_dai'
      26 |         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_dmic.c:31:15: error: incomplete definition of type 'struct snd_soc_card'
      31 |                 dev_err(card->dev, "senary dmic map addition failed: %d\n", ret);
         |                         ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:35:32: error: incomplete definition of type 'struct snd_soc_card'
      35 |         mic_name = devm_kasprintf(card->dev, GFP_KERNEL, "%s", component->name_prefix);
         |                                   ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:35:66: error: incomplete definition of type 'struct snd_soc_component'
      35 |         mic_name = devm_kasprintf(card->dev, GFP_KERNEL, "%s", 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_dmic.c:39:6: error: incomplete definition of type 'struct snd_soc_card'
      39 |         card->components = devm_kasprintf(card->dev, GFP_KERNEL,
         |         ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:39:40: error: incomplete definition of type 'struct snd_soc_card'
      39 |         card->components = devm_kasprintf(card->dev, GFP_KERNEL,
         |                                           ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:40:30: error: incomplete definition of type 'struct snd_soc_card'
      40 |                                           "%s mic:%s-dmic", card->components,
         |                                                             ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:42:11: error: incomplete definition of type 'struct snd_soc_card'
      42 |         if (!card->components)
         |              ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:45:14: error: incomplete definition of type 'struct snd_soc_card'
      45 |         dev_dbg(card->dev, "card->components: %s\n", card->components);
         |                 ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   sound/soc/sdw_utils/soc_sdw_senary_dmic.c:45:51: error: incomplete definition of type 'struct snd_soc_card'
      45 |         dev_dbg(card->dev, "card->components: %s\n", card->components);
         |                                                      ~~~~^
   include/sound/soc.h:417:8: note: forward declaration of 'struct snd_soc_card'
     417 | struct snd_soc_card;
         |        ^
   10 errors generated.


vim +86 sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c

77272ecd96d73a Qianghua Wang 2026-09-01   74  
77272ecd96d73a 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)
77272ecd96d73a Qianghua Wang 2026-09-01   76  {
77272ecd96d73a Qianghua Wang 2026-09-01   77  	struct snd_soc_card *card = rtd->card;
77272ecd96d73a Qianghua Wang 2026-09-01   78  	struct snd_soc_dapm_context *dapm = snd_soc_card_to_dapm(card);
77272ecd96d73a Qianghua Wang 2026-09-01   79  	struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card);
77272ecd96d73a Qianghua Wang 2026-09-01   80  	struct snd_soc_component *component;
77272ecd96d73a Qianghua Wang 2026-09-01   81  	struct snd_soc_jack *jack;
77272ecd96d73a Qianghua Wang 2026-09-01   82  	int ret;
77272ecd96d73a Qianghua Wang 2026-09-01   83  	int i;
77272ecd96d73a Qianghua Wang 2026-09-01   84  
77272ecd96d73a Qianghua Wang 2026-09-01   85  	component = dai->component;
77272ecd96d73a Qianghua Wang 2026-09-01  @86  	card->components = devm_kasprintf(card->dev, GFP_KERNEL,
77272ecd96d73a Qianghua Wang 2026-09-01   87  					  "%s hs:%s",
77272ecd96d73a Qianghua Wang 2026-09-01   88  					  card->components, component->name_prefix);
77272ecd96d73a Qianghua Wang 2026-09-01   89  	if (!card->components)
77272ecd96d73a Qianghua Wang 2026-09-01   90  		return -ENOMEM;
77272ecd96d73a Qianghua Wang 2026-09-01   91  
77272ecd96d73a Qianghua Wang 2026-09-01   92  	for (i = 0; i < ARRAY_SIZE(need_sdca_suffix); i++) {
77272ecd96d73a Qianghua Wang 2026-09-01   93  		if (!strstr(component->name_prefix, need_sdca_suffix[i]))
77272ecd96d73a Qianghua Wang 2026-09-01   94  			continue;
77272ecd96d73a Qianghua Wang 2026-09-01   95  
77272ecd96d73a Qianghua Wang 2026-09-01   96  		card->components = devm_kasprintf(card->dev, GFP_KERNEL,
77272ecd96d73a Qianghua Wang 2026-09-01   97  						  "%s-sdca", card->components);
77272ecd96d73a Qianghua Wang 2026-09-01   98  		if (!card->components)
77272ecd96d73a Qianghua Wang 2026-09-01   99  			return -ENOMEM;
77272ecd96d73a Qianghua Wang 2026-09-01  100  
77272ecd96d73a Qianghua Wang 2026-09-01  101  		ret = snd_soc_dapm_add_routes(dapm, senary_sdca_jack_map,
77272ecd96d73a Qianghua Wang 2026-09-01  102  					      ARRAY_SIZE(senary_sdca_jack_map));
77272ecd96d73a Qianghua Wang 2026-09-01  103  		if (ret) {
77272ecd96d73a Qianghua Wang 2026-09-01  104  			dev_err(card->dev,
77272ecd96d73a Qianghua Wang 2026-09-01  105  				"senary sdca jack map addition failed: %d\n", ret);
77272ecd96d73a Qianghua Wang 2026-09-01  106  			return ret;
77272ecd96d73a Qianghua Wang 2026-09-01  107  		}
77272ecd96d73a Qianghua Wang 2026-09-01  108  		break;
77272ecd96d73a Qianghua Wang 2026-09-01  109  	}
77272ecd96d73a Qianghua Wang 2026-09-01  110  
77272ecd96d73a Qianghua Wang 2026-09-01  111  	if (i == ARRAY_SIZE(need_sdca_suffix)) {
77272ecd96d73a Qianghua Wang 2026-09-01  112  		dev_err(card->dev, "%s is not supported\n", component->name_prefix);
77272ecd96d73a Qianghua Wang 2026-09-01  113  		return -EINVAL;
77272ecd96d73a Qianghua Wang 2026-09-01  114  	}
77272ecd96d73a Qianghua Wang 2026-09-01  115  
77272ecd96d73a Qianghua Wang 2026-09-01  116  	ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
77272ecd96d73a Qianghua Wang 2026-09-01  117  					 SND_JACK_HEADSET | SND_JACK_BTN_0 |
77272ecd96d73a Qianghua Wang 2026-09-01  118  					 SND_JACK_BTN_1 | SND_JACK_BTN_2 |
77272ecd96d73a Qianghua Wang 2026-09-01  119  					 SND_JACK_BTN_3,
77272ecd96d73a Qianghua Wang 2026-09-01  120  					 &ctx->sdw_headset,
77272ecd96d73a Qianghua Wang 2026-09-01  121  					 senary_sdca_jack_pins,
77272ecd96d73a Qianghua Wang 2026-09-01  122  					 ARRAY_SIZE(senary_sdca_jack_pins));
77272ecd96d73a Qianghua Wang 2026-09-01  123  	if (ret) {
77272ecd96d73a Qianghua Wang 2026-09-01  124  		dev_err(rtd->card->dev, "Headset Jack creation failed: %d\n",
77272ecd96d73a Qianghua Wang 2026-09-01  125  			ret);
77272ecd96d73a Qianghua Wang 2026-09-01  126  		return ret;
77272ecd96d73a Qianghua Wang 2026-09-01  127  	}
77272ecd96d73a Qianghua Wang 2026-09-01  128  
77272ecd96d73a Qianghua Wang 2026-09-01  129  	jack = &ctx->sdw_headset;
77272ecd96d73a Qianghua Wang 2026-09-01  130  
77272ecd96d73a Qianghua Wang 2026-09-01  131  	snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
77272ecd96d73a Qianghua Wang 2026-09-01  132  	snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
77272ecd96d73a Qianghua Wang 2026-09-01  133  	snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
77272ecd96d73a Qianghua Wang 2026-09-01  134  	snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
77272ecd96d73a Qianghua Wang 2026-09-01  135  
77272ecd96d73a Qianghua Wang 2026-09-01  136  	ret = snd_soc_component_set_jack(component, jack, NULL);
77272ecd96d73a Qianghua Wang 2026-09-01  137  
77272ecd96d73a Qianghua Wang 2026-09-01  138  	if (ret)
77272ecd96d73a Qianghua Wang 2026-09-01  139  		dev_err(rtd->card->dev, "Headset Jack call-back failed: %d\n",
77272ecd96d73a Qianghua Wang 2026-09-01  140  			ret);
77272ecd96d73a Qianghua Wang 2026-09-01  141  
77272ecd96d73a Qianghua Wang 2026-09-01  142  	return ret;
77272ecd96d73a Qianghua Wang 2026-09-01  143  }
77272ecd96d73a Qianghua Wang 2026-09-01  144  EXPORT_SYMBOL_NS(asoc_sdw_senary_sdca_jack_rtd_init, "SND_SOC_SDW_UTILS");
77272ecd96d73a Qianghua Wang 2026-09-01  145  

:::::: The code at line 86 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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-10  5:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-10  5:44 [morimoto:sound-cleanup-2026-09-04 266/343] sound/soc/sdw_utils/soc_sdw_senary_sdca_jack_common.c:86:6: error: incomplete definition of type 'struct snd_soc_card' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox