Re: [PATCH v2 4/6] regulator: Add support for MediaTek MT6363 SPMI PMIC Regulators

Dan Carpenter
2025-06-27T19:54:31Z

Hi AngeloGioacchino,

kernel test robot noticed the following build warnings:

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/AngeloGioacchino-Del-Regno/dt-bindings-regulator-Document-MediaTek-MT6316-PMIC-Regulators/20250624-154048
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
patch link: https://lore.kernel.org/r/20250624073548.29732-5-angelogioacchino.delregno%40collabora.com
patch subject: [PATCH v2 4/6] regulator: Add support for MediaTek MT6363 SPMI PMIC Regulators
config: x86_64-randconfig-161-20250627 (https://download.01.org/0day-ci/archive/20250628/202506280258.somyWWgp-lkp@intel.com/config)
compiler: clang version 20.1.7 (https://github.com/llvm/llvm-project 6146a88f60492b520a36f8f8f3231e15f3cc6082)

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 <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202506280258.somyWWgp-lkp@intel.com/

New smatch warnings:
drivers/regulator/mt6363-regulator.c:351 mt6363_regulator_set_mode() error: uninitialized symbol 'regmap'.
drivers/regulator/mt6363-regulator.c:388 mt6363_regulator_set_mode() error: uninitialized symbol 'ret'.

vim +/regmap +351 drivers/regulator/mt6363-regulator.c

5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 342 static int mt6363_regulator_set_mode(struct regulator_dev *rdev,
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 343 unsigned int mode)
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 344 {
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 345 struct mt6363_regulator_info *info = rdev_get_drvdata(rdev);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 346 struct regmap *regmap;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 347 int cur_mode, ret;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 348
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 349 switch (mode) {
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 350 case REGULATOR_MODE_FAST:
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 @351 ret = mt6363_buck_unlock(regmap, true);
^^^^^
Uninitialized.

5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 352 if (ret)
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 353 break;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 354
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 355 ret = regmap_set_bits(regmap, info->modeset_reg, info->modeset_mask);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 356
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 357 mt6363_buck_unlock(regmap, false);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 358 break;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 359 case REGULATOR_MODE_NORMAL:
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 360 cur_mode = mt6363_regulator_get_mode(rdev);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 361 if (cur_mode < 0) {
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 362 ret = cur_mode;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 363 break;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 364 }
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 365
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 366 if (cur_mode == REGULATOR_MODE_FAST) {
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 367 ret = mt6363_buck_unlock(regmap, true);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 368 if (ret)
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 369 break;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 370
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 371 ret = regmap_clear_bits(regmap, info->modeset_reg, info->modeset_mask);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 372
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 373 mt6363_buck_unlock(regmap, false);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 374 break;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 375 } else if (cur_mode == REGULATOR_MODE_IDLE) {
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 376 ret = regmap_clear_bits(regmap, info->lp_mode_reg, info->lp_mode_mask);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 377 if (ret == 0)
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 378 usleep_range(100, 200);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 379 }

ret not initialized on else path.

5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 380 break;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 381 case REGULATOR_MODE_IDLE:
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 382 ret = regmap_set_bits(regmap, info->lp_mode_reg, info->lp_mode_mask);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 383 break;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 384 default:
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 385 ret = -EINVAL;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 386 }
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 387
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 @388 if (ret) {
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 389 dev_err(&rdev->dev, "Failed to set mode %u: %d\n", mode, ret);
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 390 return ret;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 391 }
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 392
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 393 return 0;
5dae648aed0eaf AngeloGioacchino Del Regno 2025-06-24 394 }

--
0-DAY CI Kernel Test Service