[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202512061246.jJ5UrB71-lkp@intel.com>
Date: Sat, 6 Dec 2025 12:32:50 +0800
From: kernel test robot <lkp@...el.com>
To: Richard Genoud <richard.genoud@...tlin.com>,
Uwe Kleine-König <u.kleine-koenig@...libre.com>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Chen-Yu Tsai <wens@...e.org>,
Jernej Skrabec <jernej.skrabec@...il.com>,
Samuel Holland <samuel@...lland.org>,
Philipp Zabel <p.zabel@...gutronix.de>
Cc: oe-kbuild-all@...ts.linux.dev,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
linux-pwm@...r.kernel.org, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-sunxi@...ts.linux.dev,
linux-kernel@...r.kernel.org,
Richard Genoud <richard.genoud@...tlin.com>
Subject: Re: [PATCH 2/4] pwm: sun50i: Add H616 PWM support
Hi Richard,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 6987d58a9cbc5bd57c983baa514474a86c945d56]
url: https://github.com/intel-lab-lkp/linux/commits/Richard-Genoud/dt-bindings-pwm-sunxi-add-PWM-controller-for-Allwinner-H616/20251205-214804
base: 6987d58a9cbc5bd57c983baa514474a86c945d56
patch link: https://lore.kernel.org/r/20251205100239.1563353-3-richard.genoud%40bootlin.com
patch subject: [PATCH 2/4] pwm: sun50i: Add H616 PWM support
config: parisc-allyesconfig (https://download.01.org/0day-ci/archive/20251206/202512061246.jJ5UrB71-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251206/202512061246.jJ5UrB71-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512061246.jJ5UrB71-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_pwm_get_state':
drivers/pwm/pwm-sun50i-h616.c:76:41: error: implicit declaration of function 'FIELD_GET' [-Wimplicit-function-declaration]
76 | #define PWM_REG_DUTY(reg) FIELD_GET(PWM_DUTY_MASK, reg)
| ^~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c:452:30: note: in expansion of macro 'PWM_REG_DUTY'
452 | tmp = NSEC_PER_SEC * PWM_REG_DUTY(val);
| ^~~~~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_pwm_calc':
drivers/pwm/pwm-sun50i-h616.c:79:41: error: implicit declaration of function 'FIELD_MAX' [-Wimplicit-function-declaration]
79 | #define PWM_PERIOD_MAX FIELD_MAX(PWM_PERIOD_MASK)
| ^~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c:493:54: note: in expansion of macro 'PWM_PERIOD_MAX'
493 | freq = div64_u64(NSEC_PER_SEC * (u64)PWM_PERIOD_MAX, period);
| ^~~~~~~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_pwm_apply':
drivers/pwm/pwm-sun50i-h616.c:78:41: error: implicit declaration of function 'FIELD_PREP' [-Wimplicit-function-declaration]
78 | #define PWM_DUTY(dty) FIELD_PREP(PWM_DUTY_MASK, dty)
| ^~~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c:577:23: note: in expansion of macro 'PWM_DUTY'
577 | val = PWM_DUTY(chan->active_cycles);
| ^~~~~~~~
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_add_composite_clk':
>> drivers/pwm/pwm-sun50i-h616.c:666:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
666 | mux->reg = (u64)mux->reg + reg;
| ^
drivers/pwm/pwm-sun50i-h616.c:676:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
676 | gate->reg = (u64)gate->reg + reg;
| ^
drivers/pwm/pwm-sun50i-h616.c:686:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
686 | rate->reg = (u64)rate->reg + reg;
| ^
vim +666 drivers/pwm/pwm-sun50i-h616.c
650
651 static int h616_add_composite_clk(const struct clk_pwm_data *data,
652 void __iomem *reg, spinlock_t *lock,
653 struct device *dev, struct clk_hw **hw)
654 {
655 const struct clk_ops *mux_ops = NULL, *gate_ops = NULL, *rate_ops = NULL;
656 struct clk_hw *mux_hw = NULL, *gate_hw = NULL, *rate_hw = NULL;
657
658
659 if (data->mux_hw) {
660 struct clk_mux *mux;
661
662 mux_hw = data->mux_hw;
663 mux = to_clk_mux(mux_hw);
664 mux->lock = lock;
665 mux_ops = mux_hw->init->ops;
> 666 mux->reg = (u64)mux->reg + reg;
667 }
668
669 if (data->gate_hw) {
670 struct clk_gate *gate;
671
672 gate_hw = data->gate_hw;
673 gate = to_clk_gate(gate_hw);
674 gate->lock = lock;
675 gate_ops = gate_hw->init->ops;
676 gate->reg = (u64)gate->reg + reg;
677 }
678
679 if (data->rate_hw) {
680 struct clk_divider *rate;
681
682 rate_hw = data->rate_hw;
683 rate = to_clk_divider(rate_hw);
684 rate_ops = rate_hw->init->ops;
685 rate->lock = lock;
686 rate->reg = (u64)rate->reg + reg;
687
688 if (rate->table) {
689 const struct clk_div_table *clkt;
690 int table_size = 0;
691
692 for (clkt = rate->table; clkt->div; clkt++)
693 table_size++;
694 rate->width = order_base_2(table_size);
695 }
696 }
697
698 *hw = clk_hw_register_composite(dev, data->name, data->parent_names,
699 data->num_parents, mux_hw,
700 mux_ops, rate_hw, rate_ops,
701 gate_hw, gate_ops, data->flags);
702
703 return PTR_ERR_OR_ZERO(*hw);
704 }
705
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists