[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <bc42978f-e86a-4560-bb4b-8a5fb2df4f4c@stanley.mountain>
Date: Thu, 19 Dec 2024 14:28:29 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: oe-kbuild@...ts.linux.dev, Antoniu Miclaus <antoniu.miclaus@...log.com>,
jic23@...nel.org, robh@...nel.org, conor+dt@...nel.org,
linux-iio@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-pwm@...r.kernel.org
Cc: lkp@...el.com, oe-kbuild-all@...ts.linux.dev,
Antoniu Miclaus <antoniu.miclaus@...log.com>
Subject: Re: [PATCH v2 3/3] iio: frequency: adf4371: add ref doubler
Hi Antoniu,
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/Antoniu-Miclaus/iio-frequency-adf4371-add-differential-ref/20241209-184437
base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link: https://lore.kernel.org/r/20241209104201.25205-3-antoniu.miclaus%40analog.com
patch subject: [PATCH v2 3/3] iio: frequency: adf4371: add ref doubler
config: parisc-randconfig-r073-20241219 (https://download.01.org/0day-ci/archive/20241219/202412191811.lAia02sc-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 14.2.0
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@...el.com>
| Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
| Closes: https://lore.kernel.org/r/202412191811.lAia02sc-lkp@intel.com/
smatch warnings:
drivers/iio/frequency/adf4371.c:545 adf4371_setup() error: uninitialized symbol 'ref_doubler_en'.
vim +/ref_doubler_en +545 drivers/iio/frequency/adf4371.c
7f699bd14913423 Stefan Popa 2019-06-04 487 static int adf4371_setup(struct adf4371_state *st)
7f699bd14913423 Stefan Popa 2019-06-04 488 {
7f699bd14913423 Stefan Popa 2019-06-04 489 unsigned int synth_timeout = 2, timeout = 1, vco_alc_timeout = 1;
347e385fdd6ecda Antoniu Miclaus 2024-12-09 490 unsigned int vco_band_div, tmp, ref_doubler_en;
011032df594999f Antoniu Miclaus 2024-12-09 491 bool ref_diff_en;
7f699bd14913423 Stefan Popa 2019-06-04 492 int ret;
7f699bd14913423 Stefan Popa 2019-06-04 493
7f699bd14913423 Stefan Popa 2019-06-04 494 /* Perform a software reset */
7f699bd14913423 Stefan Popa 2019-06-04 495 ret = regmap_write(st->regmap, ADF4371_REG(0x0), ADF4371_RESET_CMD);
7f699bd14913423 Stefan Popa 2019-06-04 496 if (ret < 0)
7f699bd14913423 Stefan Popa 2019-06-04 497 return ret;
7f699bd14913423 Stefan Popa 2019-06-04 498
7f699bd14913423 Stefan Popa 2019-06-04 499 ret = regmap_multi_reg_write(st->regmap, adf4371_reg_defaults,
7f699bd14913423 Stefan Popa 2019-06-04 500 ARRAY_SIZE(adf4371_reg_defaults));
7f699bd14913423 Stefan Popa 2019-06-04 501 if (ret < 0)
7f699bd14913423 Stefan Popa 2019-06-04 502 return ret;
7f699bd14913423 Stefan Popa 2019-06-04 503
def914a4c3899b6 Stefan Popa 2019-06-24 504 /* Mute to Lock Detect */
def914a4c3899b6 Stefan Popa 2019-06-24 505 if (device_property_read_bool(&st->spi->dev, "adi,mute-till-lock-en")) {
def914a4c3899b6 Stefan Popa 2019-06-24 506 ret = regmap_update_bits(st->regmap, ADF4371_REG(0x25),
def914a4c3899b6 Stefan Popa 2019-06-24 507 ADF4371_MUTE_LD_MSK,
def914a4c3899b6 Stefan Popa 2019-06-24 508 ADF4371_MUTE_LD(1));
def914a4c3899b6 Stefan Popa 2019-06-24 509 if (ret < 0)
def914a4c3899b6 Stefan Popa 2019-06-24 510 return ret;
def914a4c3899b6 Stefan Popa 2019-06-24 511 }
def914a4c3899b6 Stefan Popa 2019-06-24 512
011032df594999f Antoniu Miclaus 2024-12-09 513 ref_diff_en = device_property_read_bool(&st->spi->dev, "adi,ref-differential-enable");
011032df594999f Antoniu Miclaus 2024-12-09 514
7f699bd14913423 Stefan Popa 2019-06-04 515 /* Set address in ascending order, so the bulk_write() will work */
7f699bd14913423 Stefan Popa 2019-06-04 516 ret = regmap_update_bits(st->regmap, ADF4371_REG(0x0),
7f699bd14913423 Stefan Popa 2019-06-04 517 ADF4371_ADDR_ASC_MSK | ADF4371_ADDR_ASC_R_MSK,
7f699bd14913423 Stefan Popa 2019-06-04 518 ADF4371_ADDR_ASC(1) | ADF4371_ADDR_ASC_R(1));
7f699bd14913423 Stefan Popa 2019-06-04 519 if (ret < 0)
7f699bd14913423 Stefan Popa 2019-06-04 520 return ret;
011032df594999f Antoniu Miclaus 2024-12-09 521
011032df594999f Antoniu Miclaus 2024-12-09 522 if ((ref_diff_en && st->clkin_freq > ADF4371_MAX_FREQ_REFIN) ||
011032df594999f Antoniu Miclaus 2024-12-09 523 (!ref_diff_en && st->clkin_freq > ADF4371_MAX_FREQ_REFIN_SE))
011032df594999f Antoniu Miclaus 2024-12-09 524 return -EINVAL;
011032df594999f Antoniu Miclaus 2024-12-09 525
347e385fdd6ecda Antoniu Miclaus 2024-12-09 526 if (st->clkin_freq < ADF4371_MAX_CLKIN_DOUB_FREQ &&
347e385fdd6ecda Antoniu Miclaus 2024-12-09 527 st->clkin_freq > ADF4371_MIN_CLKIN_DOUB_FREQ)
347e385fdd6ecda Antoniu Miclaus 2024-12-09 528 ref_doubler_en = 1;
Uninitialized on else path.
347e385fdd6ecda Antoniu Miclaus 2024-12-09 529
011032df594999f Antoniu Miclaus 2024-12-09 530 ret = regmap_update_bits(st->regmap, ADF4371_REG(0x22),
011032df594999f Antoniu Miclaus 2024-12-09 531 ADF4371_REFIN_MODE_MASK,
011032df594999f Antoniu Miclaus 2024-12-09 532 ADF4371_REFIN_MODE(ref_diff_en));
011032df594999f Antoniu Miclaus 2024-12-09 533 if (ret < 0)
011032df594999f Antoniu Miclaus 2024-12-09 534 return ret;
011032df594999f Antoniu Miclaus 2024-12-09 535
7f699bd14913423 Stefan Popa 2019-06-04 536 /*
7f699bd14913423 Stefan Popa 2019-06-04 537 * Calculate and maximize PFD frequency
7f699bd14913423 Stefan Popa 2019-06-04 538 * fPFD = REFIN × ((1 + D)/(R × (1 + T)))
7f699bd14913423 Stefan Popa 2019-06-04 539 * Where D is the REFIN doubler bit, T is the reference divide by 2,
7f699bd14913423 Stefan Popa 2019-06-04 540 * R is the reference division factor
7f699bd14913423 Stefan Popa 2019-06-04 541 * TODO: it is assumed D and T equal 0.
7f699bd14913423 Stefan Popa 2019-06-04 542 */
7f699bd14913423 Stefan Popa 2019-06-04 543 do {
7f699bd14913423 Stefan Popa 2019-06-04 544 st->ref_div_factor++;
347e385fdd6ecda Antoniu Miclaus 2024-12-09 @545 st->fpfd = st->clkin_freq * (1 + ref_doubler_en) /
347e385fdd6ecda Antoniu Miclaus 2024-12-09 546 st->ref_div_factor;
7f699bd14913423 Stefan Popa 2019-06-04 547 } while (st->fpfd > ADF4371_MAX_FREQ_PFD);
7f699bd14913423 Stefan Popa 2019-06-04 548
7f699bd14913423 Stefan Popa 2019-06-04 549 /* Calculate Timeouts */
7f699bd14913423 Stefan Popa 2019-06-04 550 vco_band_div = DIV_ROUND_UP(st->fpfd, 2400000U);
7f699bd14913423 Stefan Popa 2019-06-04 551
7f699bd14913423 Stefan Popa 2019-06-04 552 tmp = DIV_ROUND_CLOSEST(st->fpfd, 1000000U);
7f699bd14913423 Stefan Popa 2019-06-04 553 do {
7f699bd14913423 Stefan Popa 2019-06-04 554 timeout++;
7f699bd14913423 Stefan Popa 2019-06-04 555 if (timeout > 1023) {
7f699bd14913423 Stefan Popa 2019-06-04 556 timeout = 2;
7f699bd14913423 Stefan Popa 2019-06-04 557 synth_timeout++;
7f699bd14913423 Stefan Popa 2019-06-04 558 }
7f699bd14913423 Stefan Popa 2019-06-04 559 } while (synth_timeout * 1024 + timeout <= 20 * tmp);
7f699bd14913423 Stefan Popa 2019-06-04 560
7f699bd14913423 Stefan Popa 2019-06-04 561 do {
7f699bd14913423 Stefan Popa 2019-06-04 562 vco_alc_timeout++;
7f699bd14913423 Stefan Popa 2019-06-04 563 } while (vco_alc_timeout * 1024 - timeout <= 50 * tmp);
7f699bd14913423 Stefan Popa 2019-06-04 564
7f699bd14913423 Stefan Popa 2019-06-04 565 st->buf[0] = vco_band_div;
7f699bd14913423 Stefan Popa 2019-06-04 566 st->buf[1] = timeout & 0xFF;
7f699bd14913423 Stefan Popa 2019-06-04 567 st->buf[2] = ADF4371_TIMEOUT(timeout >> 8) | 0x04;
7f699bd14913423 Stefan Popa 2019-06-04 568 st->buf[3] = synth_timeout;
7f699bd14913423 Stefan Popa 2019-06-04 569 st->buf[4] = ADF4371_VCO_ALC_TOUT(vco_alc_timeout);
7f699bd14913423 Stefan Popa 2019-06-04 570
7f699bd14913423 Stefan Popa 2019-06-04 571 return regmap_bulk_write(st->regmap, ADF4371_REG(0x30), st->buf, 5);
7f699bd14913423 Stefan Popa 2019-06-04 572 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists