Hi Alisa-Dariana, kernel test robot noticed the following build warnings: [auto build test WARNING on jic23-iio/togreg] [also build test WARNING on robh/for-next linus/master v6.14-rc4 next-20250227] [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/Alisa-Dariana-Roman/dt-bindings-iio-adc-add-AD7191/20250226-195853 base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg patch link: https://lore.kernel.org/r/20250226115451.249361-3-alisa.roman%40analog.com patch subject: [PATCH v5 2/3] iio: adc: ad7191: add AD7191 config: hexagon-allyesconfig (https://download.01.org/0day-ci/archive/20250228/202502280702.31rbuGw8-lkp@xxxxxxxxx/config) compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250228/202502280702.31rbuGw8-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202502280702.31rbuGw8-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/iio/adc/ad7191.c:217:15: warning: variable 'pga_index' is used uninitialized whenever 'for' loop exits because its condition is false [-Wsometimes-uninitialized] 217 | for (i = 0; i < ARRAY_SIZE(gain); i++) { | ^~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/ad7191.c:224:35: note: uninitialized use occurs here 224 | st->scale_avail = &scale_buffer[pga_index]; | ^~~~~~~~~ drivers/iio/adc/ad7191.c:217:15: note: remove the condition if it is always true 217 | for (i = 0; i < ARRAY_SIZE(gain); i++) { | ^~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/ad7191.c:160:48: note: initialize the variable 'pga_index' to silence this warning 160 | int odr_value, odr_index, pga_value, pga_index, i, ret; | ^ | = 0 >> drivers/iio/adc/ad7191.c:179:15: warning: variable 'odr_index' is used uninitialized whenever 'for' loop exits because its condition is false [-Wsometimes-uninitialized] 179 | for (i = 0; i < ARRAY_SIZE(samp_freq); i++) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/ad7191.c:186:36: note: uninitialized use occurs here 186 | st->samp_freq_avail = &samp_freq[odr_index]; | ^~~~~~~~~ drivers/iio/adc/ad7191.c:179:15: note: remove the condition if it is always true 179 | for (i = 0; i < ARRAY_SIZE(samp_freq); i++) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/ad7191.c:160:26: note: initialize the variable 'odr_index' to silence this warning 160 | int odr_value, odr_index, pga_value, pga_index, i, ret; | ^ | = 0 drivers/iio/adc/ad7191.c:553:18: error: expected ';' after top level declarator 553 | MODULE_IMPORT_NS(IIO_AD_SIGMA_DELTA); | ^ 2 warnings and 1 error generated. vim +217 drivers/iio/adc/ad7191.c 150 151 static int ad7191_config_setup(struct iio_dev *indio_dev) 152 { 153 struct ad7191_state *st = iio_priv(indio_dev); 154 struct device *dev = &st->sd.spi->dev; 155 /* Sampling frequencies in Hz, see Table 5 */ 156 static const u32 samp_freq[4] = { 120, 60, 50, 10 }; 157 /* Gain options, see Table 7 */ 158 const u32 gain[4] = { 1, 8, 64, 128 }; 159 static u32 scale_buffer[4][2]; 160 int odr_value, odr_index, pga_value, pga_index, i, ret; 161 u64 scale_uv; 162 163 st->samp_freq_index = 0; 164 st->scale_index = 0; 165 166 ret = device_property_read_u32(dev, "adi,odr-value", &odr_value); 167 if (ret && ret != -EINVAL) 168 return dev_err_probe(dev, ret, "Failed to get odr value.\n"); 169 170 if (ret == -EINVAL) { 171 st->odr_gpios = devm_gpiod_get_array(dev, "odr", GPIOD_OUT_LOW); 172 if (IS_ERR(st->odr_gpios)) 173 return dev_err_probe(dev, PTR_ERR(st->odr_gpios), 174 "Failed to get odr gpios.\n"); 175 176 st->samp_freq_avail = samp_freq; 177 st->samp_freq_avail_size = ARRAY_SIZE(samp_freq); 178 } else { > 179 for (i = 0; i < ARRAY_SIZE(samp_freq); i++) { 180 if (odr_value != samp_freq[i]) 181 continue; 182 odr_index = i; 183 break; 184 } 185 186 st->samp_freq_avail = &samp_freq[odr_index]; 187 st->samp_freq_avail_size = 1; 188 189 st->odr_gpios = NULL; 190 } 191 192 mutex_lock(&st->lock); 193 194 for (i = 0; i < ARRAY_SIZE(scale_buffer); i++) { 195 scale_uv = ((u64)st->int_vref_mv * NANO) >> 196 (indio_dev->channels[0].scan_type.realbits - 1); 197 do_div(scale_uv, gain[i]); 198 scale_buffer[i][1] = do_div(scale_uv, NANO); 199 scale_buffer[i][0] = scale_uv; 200 } 201 202 mutex_unlock(&st->lock); 203 204 ret = device_property_read_u32(dev, "adi,pga-value", &pga_value); 205 if (ret && ret != -EINVAL) 206 return dev_err_probe(dev, ret, "Failed to get pga value.\n"); 207 208 if (ret == -EINVAL) { 209 st->pga_gpios = devm_gpiod_get_array(dev, "pga", GPIOD_OUT_LOW); 210 if (IS_ERR(st->pga_gpios)) 211 return dev_err_probe(dev, PTR_ERR(st->pga_gpios), 212 "Failed to get pga gpios.\n"); 213 214 st->scale_avail = scale_buffer; 215 st->scale_avail_size = ARRAY_SIZE(scale_buffer); 216 } else { > 217 for (i = 0; i < ARRAY_SIZE(gain); i++) { 218 if (pga_value != gain[i]) 219 continue; 220 pga_index = i; 221 break; 222 } 223 224 st->scale_avail = &scale_buffer[pga_index]; 225 st->scale_avail_size = 1; 226 227 st->pga_gpios = NULL; 228 } 229 230 st->temp_gpio = devm_gpiod_get(dev, "temp", GPIOD_OUT_LOW); 231 if (IS_ERR(st->temp_gpio)) 232 return dev_err_probe(dev, PTR_ERR(st->temp_gpio), 233 "Failed to get temp gpio.\n"); 234 235 st->chan_gpio = devm_gpiod_get(dev, "chan", GPIOD_OUT_LOW); 236 if (IS_ERR(st->chan_gpio)) 237 return dev_err_probe(dev, PTR_ERR(st->chan_gpio), 238 "Failed to get chan gpio.\n"); 239 240 return 0; 241 } 242 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki