Re: [PATCH v3 2/2] ASoC: codecs: cmx655: Add CML's CMX655D codec

kernel test robot
2025-02-09T00:36:29Z

Hi Nikola,

kernel test robot noticed the following build warnings:

[auto build test WARNING on broonie-sound/for-next]
[also build test WARNING on robh/for-next tiwai-sound/for-next tiwai-sound/for-linus linus/master v6.14-rc1 next-20250207]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Nikola-Jelic/ASoC-codecs-cmx655-Add-CML-s-CMX655D-codec/20250208-001527
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
patch link: https://lore.kernel.org/r/20250207161412.6281-2-nikola.jelic83%40gmail.com
patch subject: [PATCH v3 2/2] ASoC: codecs: cmx655: Add CML's CMX655D codec
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20250209/202502090855.eWNvBLsV-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250209/202502090855.eWNvBLsV-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/202502090855.eWNvBLsV-lkp@intel.com/

All warnings (new ones prefixed by >>):

In file included from sound/soc/codecs/cmx655.c:10:
In file included from include/sound/soc.h:26:
In file included from include/sound/ac97_codec.h:17:
In file included from include/sound/pcm.h:15:
In file included from include/linux/mm.h:2224:
include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
505 | item];
| ~~~~
include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
512 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
524 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
525 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> sound/soc/codecs/cmx655.c:194:50: warning: use of logical '||' with constant operand [-Wconstant-logical-operand]
194 | *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
195 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cmx655.c:194:50: note: use '|' for a bitwise operation
194 | *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^~
| |
>> sound/soc/codecs/cmx655.c:194:19: warning: converting the result of '<<' to a boolean always evaluates to false [-Wtautological-constant-compare]
194 | *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
>> sound/soc/codecs/cmx655.c:195:11: warning: converting the result of '<<' to a boolean; did you mean '(3 << (0)) != 0'? [-Wint-in-bool-context]
195 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ^
sound/soc/codecs/cmx655.c:199:50: warning: use of logical '||' with constant operand [-Wconstant-logical-operand]
199 | *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
200 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cmx655.c:199:50: note: use '|' for a bitwise operation
199 | *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^~
| |
sound/soc/codecs/cmx655.c:199:19: warning: converting the result of '<<' to a boolean always evaluates to false [-Wtautological-constant-compare]
199 | *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
sound/soc/codecs/cmx655.c:200:11: warning: converting the result of '<<' to a boolean; did you mean '(3 << (0)) != 0'? [-Wint-in-bool-context]
200 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ^
sound/soc/codecs/cmx655.c:204:51: warning: use of logical '||' with constant operand [-Wconstant-logical-operand]
204 | *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
205 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cmx655.c:204:51: note: use '|' for a bitwise operation
204 | *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^~
| |
sound/soc/codecs/cmx655.c:204:20: warning: converting the result of '<<' to a boolean; did you mean '(12 << (4)) != 0'? [-Wint-in-bool-context]
204 | *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
sound/soc/codecs/cmx655.c:205:11: warning: converting the result of '<<' to a boolean; did you mean '(3 << (0)) != 0'? [-Wint-in-bool-context]
205 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ^
sound/soc/codecs/cmx655.c:209:51: warning: use of logical '||' with constant operand [-Wconstant-logical-operand]
209 | *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
210 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cmx655.c:209:51: note: use '|' for a bitwise operation
209 | *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^~
| |
sound/soc/codecs/cmx655.c:209:20: warning: converting the result of '<<' to a boolean; did you mean '(12 << (4)) != 0'? [-Wint-in-bool-context]
209 | *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
| ^
sound/soc/codecs/cmx655.c:210:11: warning: converting the result of '<<' to a boolean; did you mean '(3 << (0)) != 0'? [-Wint-in-bool-context]
210 | (3 << CMX655_PLLCTRL_CPI_SHIFT);
| ^
sound/soc/codecs/cmx655.c:859:16: warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]
859 | if ((reg_val && CMX655_VF_DCBLOCK) > 0) {
| ^ ~~~~~~~~~~~~~~~~~
sound/soc/codecs/cmx655.c:859:16: note: use '&' for a bitwise operation
859 | if ((reg_val && CMX655_VF_DCBLOCK) > 0) {
| ^~
| &
sound/soc/codecs/cmx655.c:859:16: note: remove constant to silence this warning
859 | if ((reg_val && CMX655_VF_DCBLOCK) > 0) {
| ^~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/cmx655.c:859:19: warning: converting the result of '<<' to a boolean; did you mean '(1 << (2)) != 0'? [-Wint-in-bool-context]
859 | if ((reg_val && CMX655_VF_DCBLOCK) > 0) {
| ^
sound/soc/codecs/cmx655.h:70:46: note: expanded from macro 'CMX655_VF_DCBLOCK'
70 | #define CMX655_VF_DCBLOCK (0x1 << CMX655_VF_DCBLOCK_SHIFT)
| ^
17 warnings generated.

vim +194 sound/soc/codecs/cmx655.c

149
150 /**
151 * cmx655_get_sys_clk_config(): Get the clock configuration.
152 * @clk_id: Clock source setting as defined in cmx655.h
153 * @primary_mode: Non-zero if the CMX655 is the DAI primary
154 * @sr_setting: Setting for sample rate 0 to 3
155 * @clk_src: pointer for storing clock source (PLLREF, PLLSEL and
156 * CLKSEL bits)
157 * @rdiv: pointer for storing PLL's RDIV value (13 bits)
158 * @ndiv: pointer for storing PLL's NDIV value (13 bits)
159 * @pll_ctrl: pointer for storing PLLCTRL register value (8 bits)
160 *
161 * Get the clock setup for the system clock based on clock Id, DAI primary mode
162 * and sample rate.
163 *
164 * Return: 0 for success, negative value otherwise
165 */
166 static int cmx655_get_sys_clk_config(int clk_id,
167 int primary_mode,
168 int sr_setting,
169 int *clk_src,
170 int *rdiv, int *ndiv, int *pll_ctrl)
171 {
172 if (clk_id == CMX655_SYSCLK_AUTO) {
173 if (primary_mode != 0)
174 clk_id = CMX655_SYSCLK_RCLK;
175 else
176 clk_id = CMX655_SYSCLK_LRCLK;
177 }
178 *rdiv = 0;
179 *ndiv = 0;
180 *pll_ctrl = 0;
181 switch (clk_id) {
182 case CMX655_SYSCLK_RCLK:
183 *clk_src = CMX655_CLKCTRL_CLRSRC_RCLK;
184 break;
185 case CMX655_SYSCLK_LPO:
186 *clk_src = CMX655_CLKCTRL_CLRSRC_LPO;
187 break;
188 case CMX655_SYSCLK_LRCLK:
189 *clk_src = CMX655_CLKCTRL_CLRSRC_LRCLK;
190 *rdiv = 1;
191 switch (sr_setting) {
192 case CMX655_CLKCTRL_SR_8K:
193 *ndiv = 3072;
> 194 *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
> 195 (3 << CMX655_PLLCTRL_CPI_SHIFT);
196 break;
197 case CMX655_CLKCTRL_SR_16K:
198 *ndiv = 1536;
199 *pll_ctrl = (0 << CMX655_PLLCTRL_LFILT_SHIFT) ||
200 (3 << CMX655_PLLCTRL_CPI_SHIFT);
201 break;
202 case CMX655_CLKCTRL_SR_32K:
203 *ndiv = 768;
204 *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
205 (3 << CMX655_PLLCTRL_CPI_SHIFT);
206 break;
207 case CMX655_CLKCTRL_SR_48K:
208 *ndiv = 512;
209 *pll_ctrl = (12 << CMX655_PLLCTRL_LFILT_SHIFT) ||
210 (3 << CMX655_PLLCTRL_CPI_SHIFT);
211 break;
212 default:
213 return -EINVAL;
214 }
215 break;
216 default:
217 return -EINVAL;
218 }
219 return 0;
220 };
221

--
0-DAY CI Kernel Test Service