[android-common:android-4.19 1/4] drivers/pwm/pwm-stm32-lp.c:63:3: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'u64'
by kernel test robot
tree: https://android.googlesource.com/kernel/common android-4.19
head: b12d8a020f80c15f34bb430628d6ecdba289e72b
commit: d892c9f3571faa2e691fc3a9eb6ea4f4da1d7eab [1/4] ANDROID: GKI: pwm: core: Add option to config PWM duty/period with u64 data length
config: i386-randconfig-a006-20200615 (attached as .config)
compiler: gcc-4.9 (Ubuntu 4.9.3-13ubuntu2) 4.9.3
reproduce (this is a W=1 build):
git checkout d892c9f3571faa2e691fc3a9eb6ea4f4da1d7eab
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
drivers/pwm/pwm-stm32-lp.c: In function 'stm32_pwm_lp_apply':
>> drivers/pwm/pwm-stm32-lp.c:63:3: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'u64' [-Wformat=]
dev_dbg(priv->chip.dev, "Can't reach %u nsn", state->period);
^
vim +63 drivers/pwm/pwm-stm32-lp.c
e70a540b4e0230 Fabrice Gasnier 2017-08-28 32
e70a540b4e0230 Fabrice Gasnier 2017-08-28 33 static int stm32_pwm_lp_apply(struct pwm_chip *chip, struct pwm_device *pwm,
e70a540b4e0230 Fabrice Gasnier 2017-08-28 34 struct pwm_state *state)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 35 {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 36 struct stm32_pwm_lp *priv = to_stm32_pwm_lp(chip);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 37 unsigned long long prd, div, dty;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 38 struct pwm_state cstate;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 39 u32 val, mask, cfgr, presc = 0;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 40 bool reenable;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 41 int ret;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 42
e70a540b4e0230 Fabrice Gasnier 2017-08-28 43 pwm_get_state(pwm, &cstate);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 44 reenable = !cstate.enabled;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 45
e70a540b4e0230 Fabrice Gasnier 2017-08-28 46 if (!state->enabled) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 47 if (cstate.enabled) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 48 /* Disable LP timer */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 49 ret = regmap_write(priv->regmap, STM32_LPTIM_CR, 0);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 50 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 51 return ret;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 52 /* disable clock to PWM counter */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 53 clk_disable(priv->clk);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 54 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 55 return 0;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 56 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 57
e70a540b4e0230 Fabrice Gasnier 2017-08-28 58 /* Calculate the period and prescaler value */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 59 div = (unsigned long long)clk_get_rate(priv->clk) * state->period;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 60 do_div(div, NSEC_PER_SEC);
65348659535d23 Fabrice Gasnier 2019-09-18 61 if (!div) {
65348659535d23 Fabrice Gasnier 2019-09-18 62 /* Clock is too slow to achieve requested period. */
65348659535d23 Fabrice Gasnier 2019-09-18 @63 dev_dbg(priv->chip.dev, "Can't reach %u ns\n", state->period);
65348659535d23 Fabrice Gasnier 2019-09-18 64 return -EINVAL;
65348659535d23 Fabrice Gasnier 2019-09-18 65 }
65348659535d23 Fabrice Gasnier 2019-09-18 66
e70a540b4e0230 Fabrice Gasnier 2017-08-28 67 prd = div;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 68 while (div > STM32_LPTIM_MAX_ARR) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 69 presc++;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 70 if ((1 << presc) > STM32_LPTIM_MAX_PRESCALER) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 71 dev_err(priv->chip.dev, "max prescaler exceeded\n");
e70a540b4e0230 Fabrice Gasnier 2017-08-28 72 return -EINVAL;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 73 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 74 div = prd >> presc;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 75 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 76 prd = div;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 77
e70a540b4e0230 Fabrice Gasnier 2017-08-28 78 /* Calculate the duty cycle */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 79 dty = prd * state->duty_cycle;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 80 do_div(dty, state->period);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 81
e70a540b4e0230 Fabrice Gasnier 2017-08-28 82 if (!cstate.enabled) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 83 /* enable clock to drive PWM counter */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 84 ret = clk_enable(priv->clk);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 85 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 86 return ret;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 87 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 88
e70a540b4e0230 Fabrice Gasnier 2017-08-28 89 ret = regmap_read(priv->regmap, STM32_LPTIM_CFGR, &cfgr);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 90 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 91 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 92
e70a540b4e0230 Fabrice Gasnier 2017-08-28 93 if ((FIELD_GET(STM32_LPTIM_PRESC, cfgr) != presc) ||
e70a540b4e0230 Fabrice Gasnier 2017-08-28 94 (FIELD_GET(STM32_LPTIM_WAVPOL, cfgr) != state->polarity)) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 95 val = FIELD_PREP(STM32_LPTIM_PRESC, presc);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 96 val |= FIELD_PREP(STM32_LPTIM_WAVPOL, state->polarity);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 97 mask = STM32_LPTIM_PRESC | STM32_LPTIM_WAVPOL;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 98
e70a540b4e0230 Fabrice Gasnier 2017-08-28 99 /* Must disable LP timer to modify CFGR */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 100 reenable = true;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 101 ret = regmap_write(priv->regmap, STM32_LPTIM_CR, 0);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 102 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 103 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 104
e70a540b4e0230 Fabrice Gasnier 2017-08-28 105 ret = regmap_update_bits(priv->regmap, STM32_LPTIM_CFGR, mask,
e70a540b4e0230 Fabrice Gasnier 2017-08-28 106 val);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 107 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 108 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 109 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 110
e70a540b4e0230 Fabrice Gasnier 2017-08-28 111 if (reenable) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 112 /* Must (re)enable LP timer to modify CMP & ARR */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 113 ret = regmap_write(priv->regmap, STM32_LPTIM_CR,
e70a540b4e0230 Fabrice Gasnier 2017-08-28 114 STM32_LPTIM_ENABLE);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 115 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 116 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 117 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 118
e70a540b4e0230 Fabrice Gasnier 2017-08-28 119 ret = regmap_write(priv->regmap, STM32_LPTIM_ARR, prd - 1);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 120 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 121 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 122
e70a540b4e0230 Fabrice Gasnier 2017-08-28 123 ret = regmap_write(priv->regmap, STM32_LPTIM_CMP, prd - (1 + dty));
e70a540b4e0230 Fabrice Gasnier 2017-08-28 124 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 125 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 126
e70a540b4e0230 Fabrice Gasnier 2017-08-28 127 /* ensure CMP & ARR registers are properly written */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 128 ret = regmap_read_poll_timeout(priv->regmap, STM32_LPTIM_ISR, val,
e70a540b4e0230 Fabrice Gasnier 2017-08-28 129 (val & STM32_LPTIM_CMPOK_ARROK),
e70a540b4e0230 Fabrice Gasnier 2017-08-28 130 100, 1000);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 131 if (ret) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 132 dev_err(priv->chip.dev, "ARR/CMP registers write issue\n");
e70a540b4e0230 Fabrice Gasnier 2017-08-28 133 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 134 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 135 ret = regmap_write(priv->regmap, STM32_LPTIM_ICR,
e70a540b4e0230 Fabrice Gasnier 2017-08-28 136 STM32_LPTIM_CMPOKCF_ARROKCF);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 137 if (ret)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 138 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 139
e70a540b4e0230 Fabrice Gasnier 2017-08-28 140 if (reenable) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 141 /* Start LP timer in continuous mode */
e70a540b4e0230 Fabrice Gasnier 2017-08-28 142 ret = regmap_update_bits(priv->regmap, STM32_LPTIM_CR,
e70a540b4e0230 Fabrice Gasnier 2017-08-28 143 STM32_LPTIM_CNTSTRT,
e70a540b4e0230 Fabrice Gasnier 2017-08-28 144 STM32_LPTIM_CNTSTRT);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 145 if (ret) {
e70a540b4e0230 Fabrice Gasnier 2017-08-28 146 regmap_write(priv->regmap, STM32_LPTIM_CR, 0);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 147 goto err;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 148 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 149 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 150
e70a540b4e0230 Fabrice Gasnier 2017-08-28 151 return 0;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 152 err:
e70a540b4e0230 Fabrice Gasnier 2017-08-28 153 if (!cstate.enabled)
e70a540b4e0230 Fabrice Gasnier 2017-08-28 154 clk_disable(priv->clk);
e70a540b4e0230 Fabrice Gasnier 2017-08-28 155
e70a540b4e0230 Fabrice Gasnier 2017-08-28 156 return ret;
e70a540b4e0230 Fabrice Gasnier 2017-08-28 157 }
e70a540b4e0230 Fabrice Gasnier 2017-08-28 158
:::::: The code at line 63 was first introduced by commit
:::::: 65348659535d23e6fb7a79aa9d54332479cf980e pwm: stm32-lp: Add check in case requested period cannot be achieved
:::::: TO: Fabrice Gasnier <fabrice.gasnier(a)st.com>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH] media: i2c: adv748x: add enuminput control to adv748x hdmi subdev
by kernel test robot
Hi Ramzi,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v5.8-rc1 next-20200615]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Ramzi-BEN-MEFTAH/media-i2c-adv74...
base: git://linuxtv.org/media_tree.git master
config: s390-allyesconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
drivers/media/i2c/adv748x/adv748x-hdmi.c:405:3: error: 'const struct v4l2_subdev_video_ops' has no member named 'enuminput'
405 | .enuminput = adv748x_hdmi_enuminput,
| ^~~~~~~~~
>> drivers/media/i2c/adv748x/adv748x-hdmi.c:405:15: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]
405 | .enuminput = adv748x_hdmi_enuminput,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/adv748x/adv748x-hdmi.c:405:15: note: (near initialization for 'adv748x_video_ops_hdmi')
drivers/media/i2c/adv748x/adv748x-hdmi.c:405:15: error: initialization of 'int (*)(struct v4l2_subdev *, struct v4l2_dv_timings *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_input *)' [-Werror=incompatible-pointer-types]
drivers/media/i2c/adv748x/adv748x-hdmi.c:405:15: note: (near initialization for 'adv748x_video_ops_hdmi.g_dv_timings')
drivers/media/i2c/adv748x/adv748x-hdmi.c:405:15: warning: initialized field overwritten [-Woverride-init]
drivers/media/i2c/adv748x/adv748x-hdmi.c:405:15: note: (near initialization for 'adv748x_video_ops_hdmi.g_dv_timings')
cc1: some warnings being treated as errors
vim +405 drivers/media/i2c/adv748x/adv748x-hdmi.c
399
400 static const struct v4l2_subdev_video_ops adv748x_video_ops_hdmi = {
401 .s_dv_timings = adv748x_hdmi_s_dv_timings,
402 .g_dv_timings = adv748x_hdmi_g_dv_timings,
403 .query_dv_timings = adv748x_hdmi_query_dv_timings,
404 .g_input_status = adv748x_hdmi_g_input_status,
> 405 .enuminput = adv748x_hdmi_enuminput,
406 .s_stream = adv748x_hdmi_s_stream,
407 .g_pixelaspect = adv748x_hdmi_g_pixelaspect,
408 };
409
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH 1/2] video: ssd1307fb: Print PWM period using 64-bit format specifier
by kernel test robot
Hi Thierry,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.8-rc1 next-20200615]
[cannot apply to pwm/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Thierry-Reding/pwm-Miscellaneous...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b3a9e3b9622ae10064826dccb4f7a52bd88c7407
config: h8300-randconfig-r004-20200615 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/linux/printk.h:404,
from include/linux/kernel.h:15,
from include/asm-generic/bug.h:19,
from arch/h8300/include/asm/bug.h:8,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from include/asm-generic/current.h:5,
from ./arch/h8300/include/generated/asm/current.h:1,
from include/linux/sched.h:12,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from include/linux/backlight.h:12,
from drivers/video/fbdev/ssd1307fb.c:8:
drivers/video/fbdev/ssd1307fb.c: In function 'ssd1307fb_init':
>> drivers/video/fbdev/ssd1307fb.c:315:30: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 5 has type 'unsigned int' [-Wformat=]
315 | dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:125:15: note: in definition of macro '__dynamic_func_call'
125 | func(&id, ##__VA_ARGS__); | ^~~~~~~~~~~
include/linux/dynamic_debug.h:157:2: note: in expansion of macro '_dynamic_func_call'
157 | _dynamic_func_call(fmt,__dynamic_dev_dbg, | ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:23: note: in expansion of macro 'dev_fmt'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/video/fbdev/ssd1307fb.c:315:3: note: in expansion of macro 'dev_dbg'
315 | dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.n",
| ^~~~~~~
drivers/video/fbdev/ssd1307fb.c:315:53: note: format string is defined here
315 | dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.n",
| ~~~^
| |
| long long unsigned int
| %u
vim +315 drivers/video/fbdev/ssd1307fb.c
294
295 static int ssd1307fb_init(struct ssd1307fb_par *par)
296 {
297 struct pwm_state pwmstate;
298 int ret;
299 u32 precharge, dclk, com_invdir, compins;
300
301 if (par->device_info->need_pwm) {
302 par->pwm = pwm_get(&par->client->dev, NULL);
303 if (IS_ERR(par->pwm)) {
304 dev_err(&par->client->dev, "Could not get PWM from device tree!\n");
305 return PTR_ERR(par->pwm);
306 }
307
308 pwm_init_state(par->pwm, &pwmstate);
309 pwm_set_relative_duty_cycle(&pwmstate, 50, 100);
310 pwm_apply_state(par->pwm, &pwmstate);
311
312 /* Enable the PWM */
313 pwm_enable(par->pwm);
314
> 315 dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.\n",
316 par->pwm->pwm, pwm_get_period(par->pwm));
317 }
318
319 /* Set initial contrast */
320 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_CONTRAST);
321 if (ret < 0)
322 return ret;
323
324 ret = ssd1307fb_write_cmd(par->client, par->contrast);
325 if (ret < 0)
326 return ret;
327
328 /* Set segment re-map */
329 if (par->seg_remap) {
330 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SEG_REMAP_ON);
331 if (ret < 0)
332 return ret;
333 }
334
335 /* Set COM direction */
336 com_invdir = 0xc0 | par->com_invdir << 3;
337 ret = ssd1307fb_write_cmd(par->client, com_invdir);
338 if (ret < 0)
339 return ret;
340
341 /* Set multiplex ratio value */
342 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_MULTIPLEX_RATIO);
343 if (ret < 0)
344 return ret;
345
346 ret = ssd1307fb_write_cmd(par->client, par->height - 1);
347 if (ret < 0)
348 return ret;
349
350 /* set display offset value */
351 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_DISPLAY_OFFSET);
352 if (ret < 0)
353 return ret;
354
355 ret = ssd1307fb_write_cmd(par->client, par->com_offset);
356 if (ret < 0)
357 return ret;
358
359 /* Set clock frequency */
360 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_CLOCK_FREQ);
361 if (ret < 0)
362 return ret;
363
364 dclk = ((par->dclk_div - 1) & 0xf) | (par->dclk_frq & 0xf) << 4;
365 ret = ssd1307fb_write_cmd(par->client, dclk);
366 if (ret < 0)
367 return ret;
368
369 /* Set Set Area Color Mode ON/OFF & Low Power Display Mode */
370 if (par->area_color_enable || par->low_power) {
371 u32 mode;
372
373 ret = ssd1307fb_write_cmd(par->client,
374 SSD1307FB_SET_AREA_COLOR_MODE);
375 if (ret < 0)
376 return ret;
377
378 mode = (par->area_color_enable ? 0x30 : 0) |
379 (par->low_power ? 5 : 0);
380 ret = ssd1307fb_write_cmd(par->client, mode);
381 if (ret < 0)
382 return ret;
383 }
384
385 /* Set precharge period in number of ticks from the internal clock */
386 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PRECHARGE_PERIOD);
387 if (ret < 0)
388 return ret;
389
390 precharge = (par->prechargep1 & 0xf) | (par->prechargep2 & 0xf) << 4;
391 ret = ssd1307fb_write_cmd(par->client, precharge);
392 if (ret < 0)
393 return ret;
394
395 /* Set COM pins configuration */
396 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COM_PINS_CONFIG);
397 if (ret < 0)
398 return ret;
399
400 compins = 0x02 | !par->com_seq << 4 | par->com_lrremap << 5;
401 ret = ssd1307fb_write_cmd(par->client, compins);
402 if (ret < 0)
403 return ret;
404
405 /* Set VCOMH */
406 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_VCOMH);
407 if (ret < 0)
408 return ret;
409
410 ret = ssd1307fb_write_cmd(par->client, par->vcomh);
411 if (ret < 0)
412 return ret;
413
414 /* Turn on the DC-DC Charge Pump */
415 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_CHARGE_PUMP);
416 if (ret < 0)
417 return ret;
418
419 ret = ssd1307fb_write_cmd(par->client,
420 BIT(4) | (par->device_info->need_chargepump ? BIT(2) : 0));
421 if (ret < 0)
422 return ret;
423
424 /* Set lookup table */
425 if (par->lookup_table_set) {
426 int i;
427
428 ret = ssd1307fb_write_cmd(par->client,
429 SSD1307FB_SET_LOOKUP_TABLE);
430 if (ret < 0)
431 return ret;
432
433 for (i = 0; i < ARRAY_SIZE(par->lookup_table); ++i) {
434 u8 val = par->lookup_table[i];
435
436 if (val < 31 || val > 63)
437 dev_warn(&par->client->dev,
438 "lookup table index %d value out of range 31 <= %d <= 63\n",
439 i, val);
440 ret = ssd1307fb_write_cmd(par->client, val);
441 if (ret < 0)
442 return ret;
443 }
444 }
445
446 /* Switch to horizontal addressing mode */
447 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_ADDRESS_MODE);
448 if (ret < 0)
449 return ret;
450
451 ret = ssd1307fb_write_cmd(par->client,
452 SSD1307FB_SET_ADDRESS_MODE_HORIZONTAL);
453 if (ret < 0)
454 return ret;
455
456 /* Set column range */
457 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COL_RANGE);
458 if (ret < 0)
459 return ret;
460
461 ret = ssd1307fb_write_cmd(par->client, 0x0);
462 if (ret < 0)
463 return ret;
464
465 ret = ssd1307fb_write_cmd(par->client, par->width - 1);
466 if (ret < 0)
467 return ret;
468
469 /* Set page range */
470 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PAGE_RANGE);
471 if (ret < 0)
472 return ret;
473
474 ret = ssd1307fb_write_cmd(par->client, par->page_offset);
475 if (ret < 0)
476 return ret;
477
478 ret = ssd1307fb_write_cmd(par->client,
479 par->page_offset +
480 DIV_ROUND_UP(par->height, 8) - 1);
481 if (ret < 0)
482 return ret;
483
484 /* Clear the screen */
485 ssd1307fb_update_display(par);
486
487 /* Turn on the display */
488 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_DISPLAY_ON);
489 if (ret < 0)
490 return ret;
491
492 return 0;
493 }
494
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
[peterz-queue:modules/WIP 23/24] module.c:undefined reference to `ftrace_module_release'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git modules/WIP
head: d88189bbcb34495cba45b775e321eab6f770c6f3
commit: ef2573d9a6bc94c49ab2fe3bcb2ddba37fcbbddc [23/24] ftrace: Merge ftrace_module_{init,enable}()
config: powerpc-rhel-kconfig (attached as .config)
compiler: powerpc64le-linux-gcc (GCC) 9.3.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
git checkout ef2573d9a6bc94c49ab2fe3bcb2ddba37fcbbddc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
powerpc64le-linux-ld: kernel/module.o: in function `__se_sys_delete_module':
>> module.c:(.text+0x68d0): undefined reference to `ftrace_module_release'
powerpc64le-linux-ld: kernel/module.o: in function `do_init_module':
module.c:(.text+0x6ca0): undefined reference to `ftrace_module_release'
powerpc64le-linux-ld: kernel/module.o: in function `load_module':
module.c:(.text+0x9d44): undefined reference to `ftrace_module_release'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH 1/2] video: ssd1307fb: Print PWM period using 64-bit format specifier
by kernel test robot
Hi Thierry,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.8-rc1 next-20200615]
[cannot apply to pwm/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Thierry-Reding/pwm-Miscellaneous...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b3a9e3b9622ae10064826dccb4f7a52bd88c7407
config: sparc-allyesconfig (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/linux/printk.h:404,
from include/linux/kernel.h:15,
from include/asm-generic/bug.h:19,
from arch/sparc/include/asm/bug.h:25,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from arch/sparc/include/asm/current.h:15,
from include/linux/sched.h:12,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from include/linux/backlight.h:12,
from drivers/video/fbdev/ssd1307fb.c:8:
drivers/video/fbdev/ssd1307fb.c: In function 'ssd1307fb_init':
>> drivers/video/fbdev/ssd1307fb.c:315:30: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 5 has type 'unsigned int' [-Wformat=]
315 | dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:125:15: note: in definition of macro '__dynamic_func_call'
125 | func(&id, ##__VA_ARGS__); | ^~~~~~~~~~~
include/linux/dynamic_debug.h:157:2: note: in expansion of macro '_dynamic_func_call'
157 | _dynamic_func_call(fmt,__dynamic_dev_dbg, | ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:2: note: in expansion of macro 'dynamic_dev_dbg'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:115:23: note: in expansion of macro 'dev_fmt'
115 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/video/fbdev/ssd1307fb.c:315:3: note: in expansion of macro 'dev_dbg'
315 | dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.n",
| ^~~~~~~
drivers/video/fbdev/ssd1307fb.c:315:53: note: format string is defined here
315 | dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.n",
| ~~~^
| |
| long long unsigned int
| %u
vim +315 drivers/video/fbdev/ssd1307fb.c
294
295 static int ssd1307fb_init(struct ssd1307fb_par *par)
296 {
297 struct pwm_state pwmstate;
298 int ret;
299 u32 precharge, dclk, com_invdir, compins;
300
301 if (par->device_info->need_pwm) {
302 par->pwm = pwm_get(&par->client->dev, NULL);
303 if (IS_ERR(par->pwm)) {
304 dev_err(&par->client->dev, "Could not get PWM from device tree!\n");
305 return PTR_ERR(par->pwm);
306 }
307
308 pwm_init_state(par->pwm, &pwmstate);
309 pwm_set_relative_duty_cycle(&pwmstate, 50, 100);
310 pwm_apply_state(par->pwm, &pwmstate);
311
312 /* Enable the PWM */
313 pwm_enable(par->pwm);
314
> 315 dev_dbg(&par->client->dev, "Using PWM%d with a %lluns period.\n",
316 par->pwm->pwm, pwm_get_period(par->pwm));
317 }
318
319 /* Set initial contrast */
320 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_CONTRAST);
321 if (ret < 0)
322 return ret;
323
324 ret = ssd1307fb_write_cmd(par->client, par->contrast);
325 if (ret < 0)
326 return ret;
327
328 /* Set segment re-map */
329 if (par->seg_remap) {
330 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SEG_REMAP_ON);
331 if (ret < 0)
332 return ret;
333 }
334
335 /* Set COM direction */
336 com_invdir = 0xc0 | par->com_invdir << 3;
337 ret = ssd1307fb_write_cmd(par->client, com_invdir);
338 if (ret < 0)
339 return ret;
340
341 /* Set multiplex ratio value */
342 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_MULTIPLEX_RATIO);
343 if (ret < 0)
344 return ret;
345
346 ret = ssd1307fb_write_cmd(par->client, par->height - 1);
347 if (ret < 0)
348 return ret;
349
350 /* set display offset value */
351 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_DISPLAY_OFFSET);
352 if (ret < 0)
353 return ret;
354
355 ret = ssd1307fb_write_cmd(par->client, par->com_offset);
356 if (ret < 0)
357 return ret;
358
359 /* Set clock frequency */
360 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_CLOCK_FREQ);
361 if (ret < 0)
362 return ret;
363
364 dclk = ((par->dclk_div - 1) & 0xf) | (par->dclk_frq & 0xf) << 4;
365 ret = ssd1307fb_write_cmd(par->client, dclk);
366 if (ret < 0)
367 return ret;
368
369 /* Set Set Area Color Mode ON/OFF & Low Power Display Mode */
370 if (par->area_color_enable || par->low_power) {
371 u32 mode;
372
373 ret = ssd1307fb_write_cmd(par->client,
374 SSD1307FB_SET_AREA_COLOR_MODE);
375 if (ret < 0)
376 return ret;
377
378 mode = (par->area_color_enable ? 0x30 : 0) |
379 (par->low_power ? 5 : 0);
380 ret = ssd1307fb_write_cmd(par->client, mode);
381 if (ret < 0)
382 return ret;
383 }
384
385 /* Set precharge period in number of ticks from the internal clock */
386 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PRECHARGE_PERIOD);
387 if (ret < 0)
388 return ret;
389
390 precharge = (par->prechargep1 & 0xf) | (par->prechargep2 & 0xf) << 4;
391 ret = ssd1307fb_write_cmd(par->client, precharge);
392 if (ret < 0)
393 return ret;
394
395 /* Set COM pins configuration */
396 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COM_PINS_CONFIG);
397 if (ret < 0)
398 return ret;
399
400 compins = 0x02 | !par->com_seq << 4 | par->com_lrremap << 5;
401 ret = ssd1307fb_write_cmd(par->client, compins);
402 if (ret < 0)
403 return ret;
404
405 /* Set VCOMH */
406 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_VCOMH);
407 if (ret < 0)
408 return ret;
409
410 ret = ssd1307fb_write_cmd(par->client, par->vcomh);
411 if (ret < 0)
412 return ret;
413
414 /* Turn on the DC-DC Charge Pump */
415 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_CHARGE_PUMP);
416 if (ret < 0)
417 return ret;
418
419 ret = ssd1307fb_write_cmd(par->client,
420 BIT(4) | (par->device_info->need_chargepump ? BIT(2) : 0));
421 if (ret < 0)
422 return ret;
423
424 /* Set lookup table */
425 if (par->lookup_table_set) {
426 int i;
427
428 ret = ssd1307fb_write_cmd(par->client,
429 SSD1307FB_SET_LOOKUP_TABLE);
430 if (ret < 0)
431 return ret;
432
433 for (i = 0; i < ARRAY_SIZE(par->lookup_table); ++i) {
434 u8 val = par->lookup_table[i];
435
436 if (val < 31 || val > 63)
437 dev_warn(&par->client->dev,
438 "lookup table index %d value out of range 31 <= %d <= 63\n",
439 i, val);
440 ret = ssd1307fb_write_cmd(par->client, val);
441 if (ret < 0)
442 return ret;
443 }
444 }
445
446 /* Switch to horizontal addressing mode */
447 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_ADDRESS_MODE);
448 if (ret < 0)
449 return ret;
450
451 ret = ssd1307fb_write_cmd(par->client,
452 SSD1307FB_SET_ADDRESS_MODE_HORIZONTAL);
453 if (ret < 0)
454 return ret;
455
456 /* Set column range */
457 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_COL_RANGE);
458 if (ret < 0)
459 return ret;
460
461 ret = ssd1307fb_write_cmd(par->client, 0x0);
462 if (ret < 0)
463 return ret;
464
465 ret = ssd1307fb_write_cmd(par->client, par->width - 1);
466 if (ret < 0)
467 return ret;
468
469 /* Set page range */
470 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_SET_PAGE_RANGE);
471 if (ret < 0)
472 return ret;
473
474 ret = ssd1307fb_write_cmd(par->client, par->page_offset);
475 if (ret < 0)
476 return ret;
477
478 ret = ssd1307fb_write_cmd(par->client,
479 par->page_offset +
480 DIV_ROUND_UP(par->height, 8) - 1);
481 if (ret < 0)
482 return ret;
483
484 /* Clear the screen */
485 ssd1307fb_update_display(par);
486
487 /* Turn on the display */
488 ret = ssd1307fb_write_cmd(par->client, SSD1307FB_DISPLAY_ON);
489 if (ret < 0)
490 return ret;
491
492 return 0;
493 }
494
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
powerpc64le-linux-ld: arch/powerpc/platforms/pseries/lpar.o:undefined reference to `mmu_pid_bits'
by kernel test robot
Hi Stephen,
It's probably a bug fix that unveils the link errors.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b3a9e3b9622ae10064826dccb4f7a52bd88c7407
commit: 18217da36103c25d87870624dfa569e6b9906a90 powerpc/64s/radix: Fix build failure with RADIX_MMU=n
date: 8 months ago
config: powerpc64-randconfig-c004-20200615 (attached as .config)
compiler: powerpc64le-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/ndisc.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/udp.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/udplite.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/raw.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/icmp.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/mcast.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/reassembly.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/tcp_ipv6.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/ping.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/exthdrs.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/datagram.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/ip6_flowlabel.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/inet6_connection_sock.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/udp_offload.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/seg6.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/fib6_notifier.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/sysctl_net_ipv6.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/proc.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/sit.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/addrconf_core.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/exthdrs_core.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/ip6_checksum.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/ip6_icmp.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/output_core.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/protocol.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/ip6_offload.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/tcpv6_offload.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/exthdrs_offload.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/inet6_hashtables.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/ipv6/mcast_snoop.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/clnt.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/xprt.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/socklib.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/xprtsock.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/sched.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/auth.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/auth_null.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/auth_unix.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/svc.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/svcsock.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/svcauth.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/svcauth_unix.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/addr.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/rpcb_clnt.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/timer.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/xdr.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/sunrpc_syms.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/cache.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/rpc_pipe.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/svc_xprt.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/xprtmultipath.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sunrpc/stats.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/9p/mod.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/9p/client.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/9p/error.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/9p/protocol.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/9p/trans_fd.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/9p/trans_common.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/9p/trans_virtio.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `net/sysctl_net.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `virt/lib/irqbypass.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/argv_split.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/bug.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/chacha.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/cmdline.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/cpumask.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/dec_and_lock.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/decompress.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/decompress_inflate.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/decompress_unxz.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/dump_stack.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/extable.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt_ro.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt_rw.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt_strerror.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/fdt_wip.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/flex_proportions.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/idr.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/ioremap.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/is_single_threaded.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/klist.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/kobject.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/kobject_uevent.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/memcat_p.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/nmi_backtrace.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/nodemask.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/plist.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/radix-tree.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/ratelimit.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/rbtree.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/seq_buf.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/sha1.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/show_mem.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/siphash.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/string.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/timerqueue.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/vsprintf.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/win_minmax.o' being placed in section `.ctors.65435'
powerpc64le-linux-ld: warning: orphan section `.ctors.65435' from `lib/xarray.o' being placed in section `.ctors.65435'
>> powerpc64le-linux-ld: arch/powerpc/platforms/pseries/lpar.o:(.toc+0x0): undefined reference to `mmu_pid_bits'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH v8 1/4] bitops: Introduce the for_each_set_clump macro
by kernel test robot
Hi Syed,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on 444fc5cde64330661bf59944c43844e7d4c2ccd8]
url: https://github.com/0day-ci/linux/commits/Syed-Nayyar-Waris/Introduce-the-...
base: 444fc5cde64330661bf59944c43844e7d4c2ccd8
config: ia64-randconfig-r003-20200615 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
scripts/Makefile.build:59: 'arch/ia64/kernel/palinfo.ko' 'arch/ia64/kernel/mca_recovery.ko' 'arch/ia64/kernel/err_inject.ko' will not be built even though obj-m is specified.
scripts/Makefile.build:60: You cannot use subdir-y/m to visit a module Makefile. Use obj-y/m instead.
In file included from include/linux/bits.h:23,
from include/linux/bitops.h:5,
from include/linux/kernel.h:12,
from include/linux/list.h:9,
from include/linux/rculist.h:10,
from include/linux/sched/signal.h:5,
from arch/ia64/kernel/asm-offsets.c:10:
include/linux/bitmap.h: In function 'bitmap_get_value':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/bitmap.h:590:35: note: in expansion of macro 'GENMASK'
590 | return (map[index] >> offset) & GENMASK(nbits - 1, 0);
| ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/bitmap.h:590:35: note: in expansion of macro 'GENMASK'
590 | return (map[index] >> offset) & GENMASK(nbits - 1, 0);
| ^~~~~~~
include/linux/bitmap.h: In function 'bitmap_set_value':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
include/linux/bitmap.h:630:11: note: in expansion of macro 'GENMASK'
630 | value &= GENMASK(nbits - 1, 0);
| ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
include/linux/bitmap.h:630:11: note: in expansion of macro 'GENMASK'
630 | value &= GENMASK(nbits - 1, 0);
| ^~~~~~~
In file included from arch/ia64/include/asm/pgtable.h:154,
from arch/ia64/include/asm/uaccess.h:40,
from include/linux/uaccess.h:11,
from include/linux/sched/task.h:11,
from include/linux/sched/signal.h:9,
from arch/ia64/kernel/asm-offsets.c:10:
arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
arch/ia64/include/asm/mmu_context.h:137:41: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
137 | unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
| ^~~~~~~
arch/ia64/kernel/asm-offsets.c: At top level:
arch/ia64/kernel/asm-offsets.c:23:6: warning: no previous prototype for 'foo' [-Wmissing-prototypes]
23 | void foo(void)
| ^~~
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
vim +/GENMASK +590 include/linux/bitmap.h
569
570 /**
571 * bitmap_get_value - get a value of n-bits from the memory region
572 * @map: address to the bitmap memory region
573 * @start: bit offset of the n-bit value
574 * @nbits: size of value in bits
575 *
576 * Returns value of nbits located at the @start bit offset within the @map
577 * memory region.
578 */
579 static inline unsigned long bitmap_get_value(const unsigned long *map,
580 unsigned long start,
581 unsigned long nbits)
582 {
583 const size_t index = BIT_WORD(start);
584 const unsigned long offset = start % BITS_PER_LONG;
585 const unsigned long ceiling = roundup(start + 1, BITS_PER_LONG);
586 const unsigned long space = ceiling - start;
587 unsigned long value_low, value_high;
588
589 if (space >= nbits)
> 590 return (map[index] >> offset) & GENMASK(nbits - 1, 0);
591 else {
592 value_low = map[index] & BITMAP_FIRST_WORD_MASK(start);
593 value_high = map[index + 1] & BITMAP_LAST_WORD_MASK(start + nbits);
594 return (value_low >> offset) | (value_high << space);
595 }
596 }
597
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
[peterz-queue:sched/urgent 6/7] arch/powerpc/kernel/time.c:527:20: error: 'irq_work_pending' redeclared as different kind of symbol
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/urgent
head: 0602ec6c74e25dcb8a43961b00eef168fafb8e5e
commit: 2726fde5f3900552fcae2d2ac07a05ffba11a491 [6/7] irq_work: Cleanup
config: powerpc-randconfig-r021-20200615 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.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
git checkout 2726fde5f3900552fcae2d2ac07a05ffba11a491
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/asm-generic/percpu.h:7,
from arch/powerpc/include/asm/percpu.h:20,
from include/linux/percpu.h:13,
from include/linux/hrtimer.h:19,
from include/linux/sched.h:20,
from arch/powerpc/kernel/time.c:32:
>> arch/powerpc/kernel/time.c:527:20: error: 'irq_work_pending' redeclared as different kind of symbol
527 | DEFINE_PER_CPU(u8, irq_work_pending);
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:94:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION'
94 | extern __PCPU_ATTRS(sec) __typeof__(type) name; | ^~~~
>> arch/powerpc/kernel/time.c:527:1: note: in expansion of macro 'DEFINE_PER_CPU'
527 | DEFINE_PER_CPU(u8, irq_work_pending);
| ^~~~~~~~~~~~~~
In file included from arch/powerpc/kernel/time.c:52:
include/linux/irq_work.h:39:20: note: previous definition of 'irq_work_pending' was here
39 | static inline bool irq_work_pending(struct irq_work *work)
| ^~~~~~~~~~~~~~~~
vim +/irq_work_pending +527 arch/powerpc/kernel/time.c
0fe1ac48bef018 Paul Mackerras 2010-04-13 526
e360adbe29241a Peter Zijlstra 2010-10-14 @527 DEFINE_PER_CPU(u8, irq_work_pending);
0fe1ac48bef018 Paul Mackerras 2010-04-13 528
:::::: The code at line 527 was first introduced by commit
:::::: e360adbe29241a0194e10e20595360dd7b98a2b3 irq_work: Add generic hardirq context callbacks
:::::: TO: Peter Zijlstra <a.p.zijlstra(a)chello.nl>
:::::: CC: Ingo Molnar <mingo(a)elte.hu>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months