All of lore.kernel.org
 help / color / mirror / Atom feed
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.