Re: [PATCH v7 3/3] soc: fsl: add RCPM driver

From: kbuild test robot
Date: Wed Oct 23 2019 - 22:57:47 EST


Hi Ran,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.4-rc4 next-20191023]
[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/Ran-Wang/PM-wakeup-Add-routine-to-help-fetch-wakeup-source-object/20191024-101743
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 13b86bc4cd648eae69fdcf3d04b2750c76350053
config: mips-allmodconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 7.4.0
reproduce:
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
GCC_VERSION=7.4.0 make.cross ARCH=mips

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

drivers/soc/fsl/rcpm.c: In function 'rcpm_pm_prepare':
>> drivers/soc/fsl/rcpm.c:72:11: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
} while (ws = wakeup_source_get_next(ws));
^~

vim +72 drivers/soc/fsl/rcpm.c

24
25 static int rcpm_pm_prepare(struct device *dev)
26 {
27 int i, ret, idx;
28 void __iomem *base;
29 struct wakeup_source *ws;
30 struct rcpm *rcpm;
31 struct device_node *np = dev->of_node;
32 u32 value[RCPM_WAKEUP_CELL_MAX_SIZE + 1], tmp;
33
34 rcpm = dev_get_drvdata(dev);
35 if (!rcpm)
36 return -EINVAL;
37
38 base = rcpm->ippdexpcr_base;
39
40 /* Begin with first registered wakeup source */
41 ws = wakeup_source_get_start(&idx);
42 do {
43 /* skip object which is not attached to device */
44 if (!ws->dev->parent)
45 continue;
46
47 ret = device_property_read_u32_array(ws->dev->parent,
48 "fsl,rcpm-wakeup", value,
49 rcpm->wakeup_cells + 1);
50
51 /* Wakeup source should refer to current rcpm device */
52 if (ret || (np->phandle != value[0])) {
53 dev_info(dev, "%s doesn't refer to this rcpm\n",
54 ws->name);
55 continue;
56 }
57
58 for (i = 0; i < rcpm->wakeup_cells; i++) {
59 /* We can only OR related bits */
60 if (value[i + 1]) {
61 if (rcpm->little_endian) {
62 tmp = ioread32(base + i * 4);
63 tmp |= value[i + 1];
64 iowrite32(tmp, base + i * 4);
65 } else {
66 tmp = ioread32be(base + i * 4);
67 tmp |= value[i + 1];
68 iowrite32be(tmp, base + i * 4);
69 }
70 }
71 }
> 72 } while (ws = wakeup_source_get_next(ws));
73
74 wakeup_source_get_stop(idx);
75
76 return 0;
77 }
78

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip