Re: [PATCH v2 10/10] iio: adc: mcp3911: add support to set PGA

kernel test robot
2022-06-25T12:09:12Z

Hi Marcus,

I love your patch! Perhaps something to improve:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on linus/master v5.19-rc3 next-20220624]
[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]

url: https://github.com/intel-lab-lkp/linux/commits/Marcus-Folkesson/iio-adc-mcp3911-correct-microchip-device-addr-property/20220625-184118
base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
config: i386-randconfig-a001
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/def017eb4efc80ab515495d6eb7d59d142c0276d
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Marcus-Folkesson/iio-adc-mcp3911-correct-microchip-device-addr-property/20220625-184118
git checkout def017eb4efc80ab515495d6eb7d59d142c0276d
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/iio/adc/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

drivers/iio/adc/mcp3911.c: In function 'mcp3911_calc_scale_table':
>> drivers/iio/adc/mcp3911.c:305:13: warning: variable 'tmp0' set but not used [-Wunused-but-set-variable]
305 | int tmp0, tmp1;
| ^~~~
drivers/iio/adc/mcp3911.c: At top level:
drivers/iio/adc/mcp3911.c:366:22: warning: initialized field overwritten [-Woverride-init]
366 | MCP3911_CHAN(0),
| ^
drivers/iio/adc/mcp3911.c:347:31: note: in definition of macro 'MCP3911_CHAN'
347 | .scan_index = idx, \
| ^~~
drivers/iio/adc/mcp3911.c:366:22: note: (near initialization for 'mcp3911_channels[0].scan_index')
366 | MCP3911_CHAN(0),
| ^
drivers/iio/adc/mcp3911.c:347:31: note: in definition of macro 'MCP3911_CHAN'
347 | .scan_index = idx, \
| ^~~
drivers/iio/adc/mcp3911.c:367:22: warning: initialized field overwritten [-Woverride-init]
367 | MCP3911_CHAN(1),
| ^
drivers/iio/adc/mcp3911.c:347:31: note: in definition of macro 'MCP3911_CHAN'
347 | .scan_index = idx, \
| ^~~
drivers/iio/adc/mcp3911.c:367:22: note: (near initialization for 'mcp3911_channels[1].scan_index')
367 | MCP3911_CHAN(1),
| ^
drivers/iio/adc/mcp3911.c:347:31: note: in definition of macro 'MCP3911_CHAN'
347 | .scan_index = idx, \
| ^~~

vim +/tmp0 +305 drivers/iio/adc/mcp3911.c

299
300 static int mcp3911_calc_scale_table(struct mcp3911 *adc)
301 {
302 u32 ref = MCP3911_INT_VREF_MV;
303 u32 div;
304 int ret;
> 305 int tmp0, tmp1;
306 s64 tmp2;
307
308 if (adc->vref) {
309 ret = regulator_get_voltage(adc->vref);
310 if (ret < 0) {
311 dev_err(&adc->spi->dev,
312 "failed to get vref voltage: %d\n",
313 ret);
314 return ret;
315 }
316
317 ref = ret / 1000;
318 }
319
320 /*
321 * For 24bit Conversion
322 * Raw = ((Voltage)/(Vref) * 2^23 * Gain * 1.5
323 * Voltage = Raw * (Vref)/(2^23 * Gain * 1.5)
324 */
325
326 /* ref = Reference voltage
327 * div = (2^23 * 1.5 * gain) = 12582912 * gain
328 */
329 for (int i = 0; i < MCP3911_NUM_SCALES; i++) {
330 div = 12582912 * BIT(i);
331 tmp2 = div_s64((s64)ref * 1000000000LL, div);
332 tmp1 = div;
333 tmp0 = (int)div_s64_rem(tmp2, 1000000000, &tmp1);
334
335 mcp3911_scale_table[i][0] = 0;
336 mcp3911_scale_table[i][1] = tmp1;
337 }
338
339 return 0;
340 }
341

--
0-DAY CI Kernel Test Service