[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202006250010.3IYt8SSo%lkp@intel.com>
Date: Thu, 25 Jun 2020 01:00:22 +0800
From: kernel test robot <lkp@...el.com>
To: alexandru.tachici@...log.com, linux-hwmon@...r.kernel.org,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org
Cc: kbuild-all@...ts.01.org, robh+dt@...nel.org, linux@...ck-us.net,
Alexandru Tachici <alexandru.tachici@...log.com>
Subject: Re: [PATCH v5 2/7] hwmon: pmbus: adm1266: Add Block process call
Hi,
I love your patch! Perhaps something to improve:
[auto build test WARNING on hwmon/hwmon-next]
[also build test WARNING on linux/master robh/for-next linus/master v5.8-rc2 next-20200624]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/alexandru-tachici-analog-com/hwmon-pmbus-adm1266-add-support/20200624-232203
base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
config: mips-allyesconfig (attached as .config)
compiler: mips-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=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All warnings (new ones prefixed by >>):
>> drivers/hwmon/pmbus/adm1266.c:27:5: warning: no previous prototype for 'pmbus_block_xfer' [-Wmissing-prototypes]
27 | int pmbus_block_xfer(struct i2c_client *client, u8 cmd, u8 w_len,
| ^~~~~~~~~~~~~~~~
vim +/pmbus_block_xfer +27 drivers/hwmon/pmbus/adm1266.c
21
22 /* Different from Block Read as it sends data and waits for the slave to
23 * return a value dependent on that data. The protocol is simply a Write Block
24 * followed by a Read Block without the Read-Block command field and the
25 * Write-Block STOP bit.
26 */
> 27 int pmbus_block_xfer(struct i2c_client *client, u8 cmd, u8 w_len,
28 u8 *data_w, u8 *data_r)
29 {
30 u8 write_buf[ADM1266_PMBUS_BLOCK_MAX + 2];
31 struct i2c_msg msgs[2] = {
32 {
33 .addr = client->addr,
34 .flags = 0,
35 .buf = write_buf,
36 .len = w_len + 2,
37 },
38 {
39 .addr = client->addr,
40 .flags = I2C_M_RD,
41 .len = ADM1266_PMBUS_BLOCK_MAX + 2,
42 }
43 };
44 u8 addr = 0;
45 u8 crc = 0;
46 int ret;
47
48 msgs[0].buf[0] = cmd;
49 msgs[0].buf[1] = w_len;
50 memcpy(&msgs[0].buf[2], data_w, w_len);
51
52 msgs[0].buf = i2c_get_dma_safe_msg_buf(&msgs[0], 1);
53 if (!msgs[0].buf)
54 return -ENOMEM;
55
56 msgs[1].buf = i2c_get_dma_safe_msg_buf(&msgs[1], 1);
57 if (!msgs[1].buf) {
58 i2c_put_dma_safe_msg_buf(msgs[0].buf, &msgs[0], false);
59 return -ENOMEM;
60 }
61
62 ret = i2c_transfer(client->adapter, msgs, 2);
63 if (ret != 2) {
64 ret = -EPROTO;
65 goto cleanup;
66 }
67
68 if (client->flags & I2C_CLIENT_PEC) {
69 addr = i2c_8bit_addr_from_msg(&msgs[0]);
70 crc = crc8(pmbus_crc_table, &addr, 1, crc);
71 crc = crc8(pmbus_crc_table, msgs[0].buf, msgs[0].len, crc);
72
73 addr = i2c_8bit_addr_from_msg(&msgs[1]);
74 crc = crc8(pmbus_crc_table, &addr, 1, crc);
75 crc = crc8(pmbus_crc_table, msgs[1].buf, msgs[1].buf[0] + 1,
76 crc);
77
78 if (crc != msgs[1].buf[msgs[1].buf[0] + 1]) {
79 ret = -EBADMSG;
80 goto cleanup;
81 }
82 }
83
84 memcpy(data_r, &msgs[1].buf[1], msgs[1].buf[0]);
85 ret = msgs[1].buf[0];
86
87 cleanup:
88 i2c_put_dma_safe_msg_buf(msgs[0].buf, &msgs[0], true);
89 i2c_put_dma_safe_msg_buf(msgs[1].buf, &msgs[1], true);
90
91 return ret;
92 }
93
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Download attachment ".config.gz" of type "application/gzip" (67044 bytes)
Powered by blists - more mailing lists