From: kernel test robot <lkp@intel.com>
To: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Cc: kbuild-all@lists.01.org, linux-arm-kernel@lists.infradead.org,
Michal Simek <monstr@monstr.eu>
Subject: [xilinx-xlnx:master 173/710] drivers/clk/clk-xlnx-clock-wizard.c:324:15: error: implicit declaration of function 'FIELD_PREP'
Date: Mon, 11 Apr 2022 22:06:48 +0800 [thread overview]
Message-ID: <202204112110.vqKC67FP-lkp@intel.com> (raw)
Hi Shubhrajyoti,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx master
head: 0f679761fee0a4b81b4b9b7f7e1bed6eca1cd59e
commit: bf7387ee9a75c2a390b19f63c47076344e664b86 [173/710] clocking-wizard: Support higher frequency accuracy
config: mips-buildonly-randconfig-r002-20220411 (https://download.01.org/0day-ci/archive/20220411/202204112110.vqKC67FP-lkp@intel.com/config)
compiler: mips64el-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/Xilinx/linux-xlnx/commit/bf7387ee9a75c2a390b19f63c47076344e664b86
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx master
git checkout bf7387ee9a75c2a390b19f63c47076344e664b86
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash drivers/clk/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/clk/clk-xlnx-clock-wizard.c: In function 'clk_wzrd_dynamic_all_nolock':
>> drivers/clk/clk-xlnx-clock-wizard.c:324:15: error: implicit declaration of function 'FIELD_PREP' [-Werror=implicit-function-declaration]
324 | reg = FIELD_PREP(WZRD_CLKOUT_DIVIDE_MASK, clockout0_div) |
| ^~~~~~~~~~
drivers/clk/clk-xlnx-clock-wizard.c: In function 'clk_wzrd_recalc_rate_all':
>> drivers/clk/clk-xlnx-clock-wizard.c:392:13: error: implicit declaration of function 'FIELD_GET' [-Werror=implicit-function-declaration]
392 | d = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
| ^~~~~~~~~
cc1: some warnings being treated as errors
vim +/FIELD_PREP +324 drivers/clk/clk-xlnx-clock-wizard.c
301
302 static int clk_wzrd_dynamic_all_nolock(struct clk_hw *hw, unsigned long rate,
303 unsigned long parent_rate)
304 {
305 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
306 u32 reg, pre;
307 u16 retries;
308 int err;
309 u64 vco_freq, rate_div, f, clockout0_div;
310
311 err = clk_wzrd_get_divisors(hw, rate, parent_rate);
312 if (err)
313 pr_err("failed to get divisors\n");
314
315 vco_freq = DIV_ROUND_CLOSEST((parent_rate * divider->valuem), divider->valued);
316 rate_div = DIV_ROUND_CLOSEST((vco_freq * WZRD_FRAC_POINTS), rate);
317
318 clockout0_div = rate_div / WZRD_FRAC_POINTS;
319
320 pre = DIV_ROUND_CLOSEST((vco_freq * WZRD_FRAC_POINTS), rate);
321 f = (u32)(pre - (clockout0_div * WZRD_FRAC_POINTS));
322 f = f & WZRD_CLKOUT_FRAC_MASK;
323
> 324 reg = FIELD_PREP(WZRD_CLKOUT_DIVIDE_MASK, clockout0_div) |
325 FIELD_PREP(WZRD_CLKOUT0_FRAC_MASK, f);
326
327 writel(reg, divider->base + WZRD_CLK_CFG_REG(2));
328 /* Set divisor and clear phase offset */
329 reg = FIELD_PREP(WZRD_CLKFBOUT_MULT_MASK, divider->valuem) |
330 FIELD_PREP(WZRD_DIVCLK_DIVIDE_MASK, divider->valued);
331 writel(reg, divider->base + WZRD_CLK_CFG_REG(0));
332 writel(divider->valueo, divider->base + WZRD_CLK_CFG_REG(2));
333 writel(0, divider->base + WZRD_CLK_CFG_REG(3));
334 /* Check status register */
335 retries = WZRD_DR_NUM_RETRIES;
336 while (retries--) {
337 if (readl(divider->base + WZRD_DR_STATUS_REG_OFFSET) &
338 WZRD_DR_LOCK_BIT_MASK)
339 break;
340 }
341
342 if (!retries)
343 return -ETIMEDOUT;
344
345 /* Initiate reconfiguration */
346 writel(WZRD_DR_BEGIN_DYNA_RECONF,
347 divider->base + WZRD_DR_INIT_REG_OFFSET);
348
349 /* Check status register */
350 retries = WZRD_DR_NUM_RETRIES;
351 while (retries--) {
352 if (readl(divider->base + WZRD_DR_STATUS_REG_OFFSET) &
353 WZRD_DR_LOCK_BIT_MASK)
354 break;
355 }
356
357 if (!retries)
358 return -ETIMEDOUT;
359
360 return 0;
361 }
362
363 static int clk_wzrd_dynamic_all(struct clk_hw *hw, unsigned long rate,
364 unsigned long parent_rate)
365 {
366 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
367 unsigned long flags = 0;
368 int ret;
369
370 if (divider->lock)
371 spin_lock_irqsave(divider->lock, flags);
372 else
373 __acquire(divider->lock);
374
375 ret = clk_wzrd_dynamic_all_nolock(hw, rate, parent_rate);
376
377 if (divider->lock)
378 spin_unlock_irqrestore(divider->lock, flags);
379 else
380 __release(divider->lock);
381
382 return ret;
383 }
384
385 static unsigned long clk_wzrd_recalc_rate_all(struct clk_hw *hw,
386 unsigned long parent_rate)
387 {
388 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
389 u32 m, d, o, div, reg, f;
390
391 reg = readl(divider->base + WZRD_CLK_CFG_REG(0));
> 392 d = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
393 m = FIELD_GET(WZRD_CLKFBOUT_MULT_MASK, reg);
394 reg = readl(divider->base + WZRD_CLK_CFG_REG(2));
395 o = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
396 f = FIELD_GET(WZRD_CLKOUT0_FRAC_MASK, reg);
397
398 div = DIV_ROUND_CLOSEST(d * (WZRD_FRAC_POINTS * o + f), WZRD_FRAC_POINTS);
399 return divider_recalc_rate(hw, parent_rate * m, div, divider->table,
400 divider->flags, divider->width);
401 }
402
--
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
reply other threads:[~2022-04-11 14:09 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202204112110.vqKC67FP-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=monstr@monstr.eu \
--cc=shubhrajyoti.datta@xilinx.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.