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 <l...@intel.com>

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-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to