drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.

From: Dan Carpenter
Date: Sat Feb 27 2021 - 04:26:06 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2c87f7a38f930ef6f6a7bdd04aeb82ce3971b54b
commit: 6e261d1090d6db0e9dd22978b6f38a2c58558a3f pinctrl: qcom: Add sm8250 lpass lpi pinctrl driver
config: arm64-randconfig-m031-20210226 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

New smatch warnings:
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:458 lpi_config_set() error: uninitialized symbol 'strength'.

Old smatch warnings:
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:457 lpi_config_set() error: uninitialized symbol 'pullup'.

vim +/strength +458 drivers/pinctrl/qcom/pinctrl-lpass-lpi.c

6e261d1090d6db Srinivas Kandagatla 2020年12月02日 391 static int lpi_config_set(struct pinctrl_dev *pctldev, unsigned int group,
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 392 unsigned long *configs, unsigned int nconfs)
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 393 {
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 394 struct lpi_pinctrl *pctrl = dev_get_drvdata(pctldev->dev);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 395 unsigned int param, arg, pullup, strength;
^^^^^^^^

6e261d1090d6db Srinivas Kandagatla 2020年12月02日 396 bool value, output_enabled = false;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 397 const struct lpi_pingroup *g;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 398 unsigned long sval;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 399 int i, slew_offset;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 400 u32 val;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 401
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 402 g = &pctrl->data->groups[group];
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 403 for (i = 0; i < nconfs; i++) {
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 404 param = pinconf_to_config_param(configs[i]);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 405 arg = pinconf_to_config_argument(configs[i]);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 406
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 407 switch (param) {
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 408 case PIN_CONFIG_BIAS_DISABLE:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 409 pullup = LPI_GPIO_BIAS_DISABLE;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 410 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 411 case PIN_CONFIG_BIAS_PULL_DOWN:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 412 pullup = LPI_GPIO_PULL_DOWN;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 413 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 414 case PIN_CONFIG_BIAS_BUS_HOLD:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 415 pullup = LPI_GPIO_KEEPER;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 416 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 417 case PIN_CONFIG_BIAS_PULL_UP:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 418 pullup = LPI_GPIO_PULL_UP;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 419 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 420 case PIN_CONFIG_INPUT_ENABLE:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 421 output_enabled = false;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 422 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 423 case PIN_CONFIG_OUTPUT:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 424 output_enabled = true;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 425 value = arg;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 426 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 427 case PIN_CONFIG_DRIVE_STRENGTH:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 428 strength = arg;
^^^^^^^^^^^^^^^
Only initialized here.

6e261d1090d6db Srinivas Kandagatla 2020年12月02日 429 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 430 case PIN_CONFIG_SLEW_RATE:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 431 if (arg > LPI_SLEW_RATE_MAX) {
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 432 dev_err(pctldev->dev, "invalid slew rate %u for pin: %d\n",
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 433 arg, group);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 434 return -EINVAL;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 435 }
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 436
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 437 slew_offset = g->slew_offset;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 438 if (slew_offset == NO_SLEW)
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 439 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 440
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 441 mutex_lock(&pctrl->slew_access_lock);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 442
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 443 sval = ioread32(pctrl->slew_base + LPI_SLEW_RATE_CTL_REG);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 444 sval &= ~(LPI_SLEW_RATE_MASK << slew_offset);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 445 sval |= arg << slew_offset;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 446 iowrite32(sval, pctrl->slew_base + LPI_SLEW_RATE_CTL_REG);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 447
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 448 mutex_unlock(&pctrl->slew_access_lock);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 449 break;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 450 default:
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 451 return -EINVAL;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 452 }
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 453 }
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 454
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 455 val = lpi_gpio_read(pctrl, group, LPI_GPIO_CFG_REG);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 456
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 457 u32p_replace_bits(&val, pullup, LPI_GPIO_PULL_MASK);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 @458 u32p_replace_bits(&val, LPI_GPIO_DS_TO_VAL(strength),
^^^^^^^^

6e261d1090d6db Srinivas Kandagatla 2020年12月02日 459 LPI_GPIO_OUT_STRENGTH_MASK);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 460 u32p_replace_bits(&val, output_enabled, LPI_GPIO_OE_MASK);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 461
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 462 lpi_gpio_write(pctrl, group, LPI_GPIO_CFG_REG, val);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 463
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 464 if (output_enabled) {
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 465 val = u32_encode_bits(value ? 1 : 0, LPI_GPIO_VALUE_OUT_MASK);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 466 lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val);
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 467 }
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 468
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 469 return 0;
6e261d1090d6db Srinivas Kandagatla 2020年12月02日 470 }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


AltStyle によって変換されたページ (->オリジナル) /