From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [linux-next:master 2879/12437] sound/soc/fsl/imx-card.c:373 imx_aif_hw_params() error: uninitialized symbol 'codec_dai'.
Date: Thu, 21 Nov 2024 23:29:26 +0800 [thread overview]
Message-ID: <202411212333.kLBNoXVa-lkp@intel.com> (raw)
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
reply other threads:[~2024-11-21 15:30 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=202411212333.kLBNoXVa-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@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 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.