* [linux-next:master 2879/12437] sound/soc/fsl/imx-card.c:373 imx_aif_hw_params() error: uninitialized symbol 'codec_dai'.
@ 2024-11-21 15:29 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-11-21 15:29 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Chancel Liu <chancel.liu@nxp.com>
CC: Mark Brown <broonie@kernel.org>
CC: Shengjiu Wang <shengjiu.wang@nxp.com>
CC: Iuliana Prodan <iuliana.prodan@nxp.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: decc701f41d07481893fdea942c0ac6b226e84cd
commit: 892373e4de626c61e91816e3d3970d82beb50c4b [2879/12437] ASoC: imx-card: Set mclk for codec
:::::: branch date: 10 hours ago
:::::: commit date: 6 weeks ago
config: powerpc-randconfig-r071-20241121 (https://download.01.org/0day-ci/archive/20241121/202411212333.kLBNoXVa-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 14.2.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202411212333.kLBNoXVa-lkp@intel.com/
smatch warnings:
sound/soc/fsl/imx-card.c:373 imx_aif_hw_params() error: uninitialized symbol 'codec_dai'.
vim +/codec_dai +373 sound/soc/fsl/imx-card.c
aa736700f42fa0 Shengjiu Wang 2021-05-17 288
aa736700f42fa0 Shengjiu Wang 2021-05-17 289 static int imx_aif_hw_params(struct snd_pcm_substream *substream,
aa736700f42fa0 Shengjiu Wang 2021-05-17 290 struct snd_pcm_hw_params *params)
aa736700f42fa0 Shengjiu Wang 2021-05-17 291 {
b695d8be5bba98 Krzysztof Kozlowski 2024-04-30 292 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
14ec63f678e8be Kuninori Morimoto 2023-09-11 293 struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);
aa736700f42fa0 Shengjiu Wang 2021-05-17 294 struct snd_soc_card *card = rtd->card;
aa736700f42fa0 Shengjiu Wang 2021-05-17 295 struct imx_card_data *data = snd_soc_card_get_drvdata(card);
aa736700f42fa0 Shengjiu Wang 2021-05-17 296 struct dai_link_data *link_data = &data->link_data[rtd->num];
aa736700f42fa0 Shengjiu Wang 2021-05-17 297 struct imx_card_plat_data *plat_data = data->plat_data;
aa736700f42fa0 Shengjiu Wang 2021-05-17 298 struct device *dev = card->dev;
aa736700f42fa0 Shengjiu Wang 2021-05-17 299 struct snd_soc_dai *codec_dai;
aa736700f42fa0 Shengjiu Wang 2021-05-17 300 unsigned long mclk_freq;
aa736700f42fa0 Shengjiu Wang 2021-05-17 301 unsigned int fmt = rtd->dai_link->dai_fmt;
aa736700f42fa0 Shengjiu Wang 2021-05-17 302 unsigned int slots, slot_width;
aa736700f42fa0 Shengjiu Wang 2021-05-17 303 int ret, i;
aa736700f42fa0 Shengjiu Wang 2021-05-17 304
aa736700f42fa0 Shengjiu Wang 2021-05-17 305 slots = link_data->slots;
aa736700f42fa0 Shengjiu Wang 2021-05-17 306 slot_width = link_data->slot_width;
aa736700f42fa0 Shengjiu Wang 2021-05-17 307
aa736700f42fa0 Shengjiu Wang 2021-05-17 308 if (!format_is_tdm(link_data)) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 309 if (format_is_dsd(params)) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 310 slots = 1;
aa736700f42fa0 Shengjiu Wang 2021-05-17 311 slot_width = params_width(params);
aa736700f42fa0 Shengjiu Wang 2021-05-17 312 fmt = (rtd->dai_link->dai_fmt & ~SND_SOC_DAIFMT_FORMAT_MASK) |
aa736700f42fa0 Shengjiu Wang 2021-05-17 313 SND_SOC_DAIFMT_PDM;
aa736700f42fa0 Shengjiu Wang 2021-05-17 314 } else {
aa736700f42fa0 Shengjiu Wang 2021-05-17 315 slots = 2;
aa736700f42fa0 Shengjiu Wang 2021-05-17 316 slot_width = params_physical_width(params);
aa736700f42fa0 Shengjiu Wang 2021-05-17 317 fmt = (rtd->dai_link->dai_fmt & ~SND_SOC_DAIFMT_FORMAT_MASK) |
aa736700f42fa0 Shengjiu Wang 2021-05-17 318 SND_SOC_DAIFMT_I2S;
aa736700f42fa0 Shengjiu Wang 2021-05-17 319 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 320 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 321
3b14c15a333b82 Charles Keepax 2022-05-19 322 ret = snd_soc_dai_set_fmt(cpu_dai, snd_soc_daifmt_clock_provider_flipped(fmt));
aa736700f42fa0 Shengjiu Wang 2021-05-17 323 if (ret && ret != -ENOTSUPP) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 324 dev_err(dev, "failed to set cpu dai fmt: %d\n", ret);
aa736700f42fa0 Shengjiu Wang 2021-05-17 325 return ret;
aa736700f42fa0 Shengjiu Wang 2021-05-17 326 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 327 ret = snd_soc_dai_set_tdm_slot(cpu_dai,
aa736700f42fa0 Shengjiu Wang 2021-05-17 328 BIT(slots) - 1,
aa736700f42fa0 Shengjiu Wang 2021-05-17 329 BIT(slots) - 1,
aa736700f42fa0 Shengjiu Wang 2021-05-17 330 slots, slot_width);
aa736700f42fa0 Shengjiu Wang 2021-05-17 331 if (ret && ret != -ENOTSUPP) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 332 dev_err(dev, "failed to set cpu dai tdm slot: %d\n", ret);
aa736700f42fa0 Shengjiu Wang 2021-05-17 333 return ret;
aa736700f42fa0 Shengjiu Wang 2021-05-17 334 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 335
aa736700f42fa0 Shengjiu Wang 2021-05-17 336 for_each_rtd_codec_dais(rtd, i, codec_dai) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 337 ret = snd_soc_dai_set_fmt(codec_dai, fmt);
aa736700f42fa0 Shengjiu Wang 2021-05-17 338 if (ret && ret != -ENOTSUPP) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 339 dev_err(dev, "failed to set codec dai[%d] fmt: %d\n", i, ret);
aa736700f42fa0 Shengjiu Wang 2021-05-17 340 return ret;
aa736700f42fa0 Shengjiu Wang 2021-05-17 341 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 342
aa736700f42fa0 Shengjiu Wang 2021-05-17 343 ret = snd_soc_dai_set_tdm_slot(codec_dai,
aa736700f42fa0 Shengjiu Wang 2021-05-17 344 BIT(slots) - 1,
aa736700f42fa0 Shengjiu Wang 2021-05-17 345 BIT(slots) - 1,
aa736700f42fa0 Shengjiu Wang 2021-05-17 346 slots, slot_width);
aa736700f42fa0 Shengjiu Wang 2021-05-17 347 if (ret && ret != -ENOTSUPP) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 348 dev_err(dev, "failed to set codec dai[%d] tdm slot: %d\n", i, ret);
aa736700f42fa0 Shengjiu Wang 2021-05-17 349 return ret;
aa736700f42fa0 Shengjiu Wang 2021-05-17 350 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 351 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 352
aa736700f42fa0 Shengjiu Wang 2021-05-17 353 /* Set MCLK freq */
aa736700f42fa0 Shengjiu Wang 2021-05-17 354 if (codec_is_akcodec(plat_data->type))
f331ae5fa59fbf Shengjiu Wang 2022-01-04 355 mclk_freq = akcodec_get_mclk_rate(substream, params, slots, slot_width);
aa736700f42fa0 Shengjiu Wang 2021-05-17 356 else
aa736700f42fa0 Shengjiu Wang 2021-05-17 357 mclk_freq = params_rate(params) * slots * slot_width;
c0fabd12a8570c Shengjiu Wang 2022-07-06 358
c0fabd12a8570c Shengjiu Wang 2022-07-06 359 if (format_is_dsd(params)) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 360 /* Use the maximum freq from DSD512 (512*44100 = 22579200) */
c0fabd12a8570c Shengjiu Wang 2022-07-06 361 if (!(params_rate(params) % 11025))
c0fabd12a8570c Shengjiu Wang 2022-07-06 362 mclk_freq = IMX_CARD_MCLK_22P5792MHZ;
c0fabd12a8570c Shengjiu Wang 2022-07-06 363 else
c0fabd12a8570c Shengjiu Wang 2022-07-06 364 mclk_freq = IMX_CARD_MCLK_24P576MHZ;
c0fabd12a8570c Shengjiu Wang 2022-07-06 365 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 366
aa736700f42fa0 Shengjiu Wang 2021-05-17 367 ret = snd_soc_dai_set_sysclk(cpu_dai, link_data->cpu_sysclk_id, mclk_freq,
aa736700f42fa0 Shengjiu Wang 2021-05-17 368 SND_SOC_CLOCK_OUT);
aa736700f42fa0 Shengjiu Wang 2021-05-17 369 if (ret && ret != -ENOTSUPP) {
aa736700f42fa0 Shengjiu Wang 2021-05-17 370 dev_err(dev, "failed to set cpui dai mclk1 rate (%lu): %d\n", mclk_freq, ret);
aa736700f42fa0 Shengjiu Wang 2021-05-17 371 return ret;
aa736700f42fa0 Shengjiu Wang 2021-05-17 372 }
892373e4de626c Chancel Liu 2024-10-09 @373 ret = snd_soc_dai_set_sysclk(codec_dai, 0, mclk_freq, SND_SOC_CLOCK_IN);
892373e4de626c Chancel Liu 2024-10-09 374 if (ret && ret != -ENOTSUPP) {
892373e4de626c Chancel Liu 2024-10-09 375 dev_err(dev, "failed to set codec dai mclk rate (%lu): %d\n", mclk_freq, ret);
892373e4de626c Chancel Liu 2024-10-09 376 return ret;
892373e4de626c Chancel Liu 2024-10-09 377 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 378
aa736700f42fa0 Shengjiu Wang 2021-05-17 379 return 0;
aa736700f42fa0 Shengjiu Wang 2021-05-17 380 }
aa736700f42fa0 Shengjiu Wang 2021-05-17 381
--
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:[~2024-11-21 15:30 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-21 15:29 [linux-next:master 2879/12437] sound/soc/fsl/imx-card.c:373 imx_aif_hw_params() error: uninitialized symbol 'codec_dai' kernel test robot
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.