From: kernel test robot <lkp@intel.com>
To: Sascha Hauer <s.hauer@pengutronix.de>, linux-clk@vger.kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
Abel Vesa <abel.vesa@nxp.com>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
NXP Linux Team <linux-imx@nxp.com>,
Adrian Alonso <adrian.alonso@nxp.com>,
Mads Bligaard Nielsen <bli@bang-olufsen.dk>,
Sascha Hauer <s.hauer@pengutronix.de>
Subject: Re: [PATCH 3/8] clk: imx: pll14xx: Use FIELD_GET/FIELD_PREP
Date: Wed, 23 Feb 2022 21:09:02 +0800 [thread overview]
Message-ID: <202202232030.DHNZfsc4-lkp@intel.com> (raw)
In-Reply-To: <20220223075601.3652543-4-s.hauer@pengutronix.de>
Hi Sascha,
I love your patch! Yet something to improve:
[auto build test ERROR on shawnguo/for-next]
[also build test ERROR on clk/clk-next v5.17-rc5 next-20220222]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Sascha-Hauer/clk-i-MX-PLL14xx-Support-dynamic-rates/20220223-155846
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
config: hexagon-randconfig-r015-20220221 (https://download.01.org/0day-ci/archive/20220223/202202232030.DHNZfsc4-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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/0day-ci/linux/commit/c12e6c700842e937d181c80ce6ada39017ed6268
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Sascha-Hauer/clk-i-MX-PLL14xx-Support-dynamic-rates/20220223-155846
git checkout c12e6c700842e937d181c80ce6ada39017ed6268
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/clk/imx/
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/imx/clk-pll14xx.c:123:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
mdiv = FIELD_GET(MDIV_MASK, pll_div);
^
drivers/clk/imx/clk-pll14xx.c:143:9: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
mdiv = FIELD_GET(MDIV_MASK, pll_div_ctl0);
^
drivers/clk/imx/clk-pll14xx.c:162:13: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
old_mdiv = FIELD_GET(MDIV_MASK, pll_div);
^
>> drivers/clk/imx/clk-pll14xx.c:195:10: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
tmp |= FIELD_PREP(SDIV_MASK, rate->sdiv);
^
drivers/clk/imx/clk-pll14xx.c:214:12: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
div_val = FIELD_PREP(MDIV_MASK, rate->mdiv) | FIELD_PREP(PDIV_MASK, rate->pdiv) |
^
drivers/clk/imx/clk-pll14xx.c:261:10: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
tmp |= FIELD_PREP(SDIV_MASK, rate->sdiv);
^
drivers/clk/imx/clk-pll14xx.c:279:12: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
div_val = FIELD_PREP(MDIV_MASK, rate->mdiv) |
^
7 errors generated.
vim +/FIELD_GET +123 drivers/clk/imx/clk-pll14xx.c
114
115 static unsigned long clk_pll1416x_recalc_rate(struct clk_hw *hw,
116 unsigned long parent_rate)
117 {
118 struct clk_pll14xx *pll = to_clk_pll14xx(hw);
119 u32 mdiv, pdiv, sdiv, pll_div;
120 u64 fvco = parent_rate;
121
122 pll_div = readl_relaxed(pll->base + DIV_CTL0);
> 123 mdiv = FIELD_GET(MDIV_MASK, pll_div);
124 pdiv = FIELD_GET(PDIV_MASK, pll_div);
125 sdiv = FIELD_GET(SDIV_MASK, pll_div);
126
127 fvco *= mdiv;
128 do_div(fvco, pdiv << sdiv);
129
130 return fvco;
131 }
132
133 static unsigned long clk_pll1443x_recalc_rate(struct clk_hw *hw,
134 unsigned long parent_rate)
135 {
136 struct clk_pll14xx *pll = to_clk_pll14xx(hw);
137 u32 mdiv, pdiv, sdiv, pll_div_ctl0, pll_div_ctl1;
138 short int kdiv;
139 u64 fvco = parent_rate;
140
141 pll_div_ctl0 = readl_relaxed(pll->base + DIV_CTL0);
142 pll_div_ctl1 = readl_relaxed(pll->base + DIV_CTL1);
143 mdiv = FIELD_GET(MDIV_MASK, pll_div_ctl0);
144 pdiv = FIELD_GET(PDIV_MASK, pll_div_ctl0);
145 sdiv = FIELD_GET(SDIV_MASK, pll_div_ctl0);
146 kdiv = FIELD_GET(KDIV_MASK, pll_div_ctl1);
147
148 /* fvco = (m * 65536 + k) * Fin / (p * 65536) */
149 fvco *= (mdiv * 65536 + kdiv);
150 pdiv *= 65536;
151
152 do_div(fvco, pdiv << sdiv);
153
154 return fvco;
155 }
156
157 static inline bool clk_pll14xx_mp_change(const struct imx_pll14xx_rate_table *rate,
158 u32 pll_div)
159 {
160 u32 old_mdiv, old_pdiv;
161
162 old_mdiv = FIELD_GET(MDIV_MASK, pll_div);
163 old_pdiv = FIELD_GET(PDIV_MASK, pll_div);
164
165 return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv;
166 }
167
168 static int clk_pll14xx_wait_lock(struct clk_pll14xx *pll)
169 {
170 u32 val;
171
172 return readl_poll_timeout(pll->base + GNRL_CTL, val, val & LOCK_STATUS, 0,
173 LOCK_TIMEOUT_US);
174 }
175
176 static int clk_pll1416x_set_rate(struct clk_hw *hw, unsigned long drate,
177 unsigned long prate)
178 {
179 struct clk_pll14xx *pll = to_clk_pll14xx(hw);
180 const struct imx_pll14xx_rate_table *rate;
181 u32 tmp, div_val;
182 int ret;
183
184 rate = imx_get_pll_settings(pll, drate);
185 if (!rate) {
186 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
187 drate, clk_hw_get_name(hw));
188 return -EINVAL;
189 }
190
191 tmp = readl_relaxed(pll->base + DIV_CTL0);
192
193 if (!clk_pll14xx_mp_change(rate, tmp)) {
194 tmp &= ~SDIV_MASK;
> 195 tmp |= FIELD_PREP(SDIV_MASK, rate->sdiv);
196 writel_relaxed(tmp, pll->base + DIV_CTL0);
197
198 return 0;
199 }
200
201 /* Bypass clock and set lock to pll output lock */
202 tmp = readl_relaxed(pll->base + GNRL_CTL);
203 tmp |= LOCK_SEL_MASK;
204 writel_relaxed(tmp, pll->base + GNRL_CTL);
205
206 /* Enable RST */
207 tmp &= ~RST_MASK;
208 writel_relaxed(tmp, pll->base + GNRL_CTL);
209
210 /* Enable BYPASS */
211 tmp |= BYPASS_MASK;
212 writel(tmp, pll->base + GNRL_CTL);
213
214 div_val = FIELD_PREP(MDIV_MASK, rate->mdiv) | FIELD_PREP(PDIV_MASK, rate->pdiv) |
215 FIELD_PREP(SDIV_MASK, rate->sdiv);
216 writel_relaxed(div_val, pll->base + DIV_CTL0);
217
218 /*
219 * According to SPEC, t3 - t2 need to be greater than
220 * 1us and 1/FREF, respectively.
221 * FREF is FIN / Prediv, the prediv is [1, 63], so choose
222 * 3us.
223 */
224 udelay(3);
225
226 /* Disable RST */
227 tmp |= RST_MASK;
228 writel_relaxed(tmp, pll->base + GNRL_CTL);
229
230 /* Wait Lock */
231 ret = clk_pll14xx_wait_lock(pll);
232 if (ret)
233 return ret;
234
235 /* Bypass */
236 tmp &= ~BYPASS_MASK;
237 writel_relaxed(tmp, pll->base + GNRL_CTL);
238
239 return 0;
240 }
241
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
next prev parent reply other threads:[~2022-02-23 13:09 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-23 7:55 [PATCH 0/8] clk: i.MX: PLL14xx: Support dynamic rates Sascha Hauer
2022-02-23 7:55 ` [PATCH 1/8] clk: imx: pll14xx: Use register defines consistently Sascha Hauer
2022-02-23 11:29 ` Abel Vesa
2022-02-23 7:55 ` [PATCH 2/8] clk: imx: pll14xx: Fix masking Sascha Hauer
2022-02-23 11:31 ` Abel Vesa
2022-02-23 11:46 ` Sascha Hauer
2022-02-23 7:55 ` [PATCH 3/8] clk: imx: pll14xx: Use FIELD_GET/FIELD_PREP Sascha Hauer
2022-02-23 11:34 ` Abel Vesa
2022-02-23 13:09 ` kernel test robot [this message]
2022-02-23 7:55 ` [PATCH 4/8] clk: imx: pll14xx: consolidate rate calculation Sascha Hauer
2022-02-23 7:55 ` [PATCH 5/8] clk: imx: pll14xx: name variables after usage Sascha Hauer
2022-02-23 7:55 ` [PATCH 6/8] clk: imx: pll14xx: explicitly return lowest rate Sascha Hauer
2022-02-23 7:56 ` [PATCH 7/8] clk: imx: pll14xx: Add pr_fmt Sascha Hauer
2022-02-23 12:47 ` kernel test robot
2022-02-23 7:56 ` [PATCH 8/8] clk: imx: pll14xx: Support dynamic rates Sascha Hauer
2022-02-23 12:48 ` kernel test robot
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=202202232030.DHNZfsc4-lkp@intel.com \
--to=lkp@intel.com \
--cc=abel.vesa@nxp.com \
--cc=adrian.alonso@nxp.com \
--cc=bli@bang-olufsen.dk \
--cc=festevam@gmail.com \
--cc=kbuild-all@lists.01.org \
--cc=kernel@pengutronix.de \
--cc=linux-clk@vger.kernel.org \
--cc=linux-imx@nxp.com \
--cc=llvm@lists.linux.dev \
--cc=mturquette@baylibre.com \
--cc=s.hauer@pengutronix.de \
--cc=sboyd@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox