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: x86_64-allyesconfig (attached as .config) compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 1d4c87335d5236ea1f35937e1014980ba961ae34) 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 # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> drivers/hwmon/pmbus/adm1266.c:27:5: warning: no previous prototype for function 'pmbus_block_xfer' [-Wmissing-prototypes] int pmbus_block_xfer(struct i2c_client *client, u8 cmd, u8 w_len, ^ drivers/hwmon/pmbus/adm1266.c:27:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int pmbus_block_xfer(struct i2c_client *client, u8 cmd, u8 w_len, ^ static 1 warning generated. 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@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip