Re: [PATCH 08/13] clk: amlogic: Add PLL driver

kernel test robot
2026-02-09T17:36:09Z

Hi Chuan,

kernel test robot noticed the following build errors:

[auto build test ERROR on 4d310797262f0ddf129e76c2aad2b950adaf1fda]

url: https://github.com/intel-lab-lkp/linux/commits/Chuan-Liu-via-B4-Relay/dt-bindings-clock-Add-Amlogic-A9-standardized-model-clock-control-units/20260209-135334
base: 4d310797262f0ddf129e76c2aad2b950adaf1fda
patch link: https://lore.kernel.org/r/20260209-a9_clock_driver-v1-8-a9198dc03d2a%40amlogic.com
patch subject: [PATCH 08/13] clk: amlogic: Add PLL driver
config: arm-randconfig-004-20260209 (https://download.01.org/0day-ci/archive/20260210/202602100115.ykL6A0lh-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 14.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260210/202602100115.ykL6A0lh-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602100115.ykL6A0lh-lkp@intel.com/

All errors (new ones prefixed by >>):

arm-linux-gnueabi-ld: drivers/clk/amlogic/clk-pll.o: in function `aml_pll_get_rate_range':
>> drivers/clk/amlogic/clk-pll.c:554:(.text+0x700): undefined reference to `__aeabi_uldivmod'
>> arm-linux-gnueabi-ld: drivers/clk/amlogic/clk-pll.c:567:(.text+0x728): undefined reference to `__aeabi_uldivmod'
arm-linux-gnueabi-ld: drivers/clk/amlogic/clk-pll.c:554:(.text+0x814): undefined reference to `__aeabi_uldivmod'

vim +554 drivers/clk/amlogic/clk-pll.c

536
537 static int aml_pll_get_best_rate(unsigned long rate, unsigned long step_rate,
538 u64 min_vco_rate, u64 max_vco_rate,
539 u8 od_max, enum round_type round,
540 unsigned long *out_rate)
541 {
542 int i;
543 u64 vco_rate;
544 unsigned long now_rate, best_rate = 0;
545
546 for (i = 0; i <= od_max; i++) {
547 vco_rate = rate << i;
548 if (vco_rate < min_vco_rate)
549 continue;
550
551 if (vco_rate > max_vco_rate)
552 break;
553
> 554 if (vco_rate % step_rate == 0) {
555 best_rate = rate;
556
557 break;
558 }
559
560 if (round == ROUND_DOWN) {
561 vco_rate = vco_rate - (vco_rate % step_rate);
562 now_rate = vco_rate >> i;
563 if ((rate - now_rate) < (rate - best_rate))
564 best_rate = now_rate;
565 } else {
566 vco_rate = vco_rate + step_rate;
> 567 vco_rate = vco_rate - (vco_rate % step_rate);
568 now_rate = vco_rate >> i;
569 if ((now_rate - rate) < (best_rate - rate))
570 best_rate = now_rate;
571 }
572 }
573
574 if (!best_rate)
575 return -EINVAL;
576
577 *out_rate = best_rate;
578
579 return 0;
580 }
581

--
0-DAY CI Kernel Test Service