Hi Mauro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on lee-mfd/for-mfd-next]
[also build test WARNING on regulator/for-next robh/for-next linus/master v5.8 
next-20200811]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/Add-driver-for-HiSilicon-SPMI-PMIC-for-Hikey-970/20200811-234737
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: arc-allyesconfig (attached as .config)
compiler: arc-elf-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=arc 

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 >>):

   In file included from include/linux/device.h:15,
                    from include/linux/platform_device.h:13,
                    from drivers/spmi/hisi-spmi-controller.c:7:
   drivers/spmi/hisi-spmi-controller.c: In function 'spmi_read_cmd':
>> drivers/spmi/hisi-spmi-controller.c:149:5: warning: format '%ld' expects 
>> argument of type 'long int', but argument 4 has type 'size_t' {aka 'unsigned 
>> int'} [-Wformat=]
     149 |   , "spmi_controller supports 1..%d bytes per trans, but:%ld 
requested"
         |     
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   drivers/spmi/hisi-spmi-controller.c:148:3: note: in expansion of macro 
'dev_err'
     148 |   dev_err(spmi_controller->dev
         |   ^~~~~~~
   drivers/spmi/hisi-spmi-controller.c:149:60: note: format string is defined 
here
     149 |   , "spmi_controller supports 1..%d bytes per trans, but:%ld 
requested"
         |                                                          ~~^
         |                                                            |
         |                                                            long int
         |                                                          %d
   In file included from include/linux/device.h:15,
                    from include/linux/platform_device.h:13,
                    from drivers/spmi/hisi-spmi-controller.c:7:
   drivers/spmi/hisi-spmi-controller.c:198:33: warning: format '%ld' expects 
argument of type 'long int', but argument 6 has type 'size_t' {aka 'unsigned 
int'} [-Wformat=]
     198 |   dev_err(spmi_controller->dev, "spmi read wait timeout op:0x%x 
sid:%d addr:0x%x bc:%ld\n",
         |                                 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   drivers/spmi/hisi-spmi-controller.c:198:3: note: in expansion of macro 
'dev_err'
     198 |   dev_err(spmi_controller->dev, "spmi read wait timeout op:0x%x 
sid:%d addr:0x%x bc:%ld\n",
         |   ^~~~~~~
   drivers/spmi/hisi-spmi-controller.c:198:87: note: format string is defined 
here
     198 |   dev_err(spmi_controller->dev, "spmi read wait timeout op:0x%x 
sid:%d addr:0x%x bc:%ld\n",
         |                                                                      
               ~~^
         |                                                                      
                 |
         |                                                                      
                 long int
         |                                                                      
               %d
   In file included from include/linux/device.h:15,
                    from include/linux/platform_device.h:13,
                    from drivers/spmi/hisi-spmi-controller.c:7:
   drivers/spmi/hisi-spmi-controller.c: In function 'spmi_write_cmd':
   drivers/spmi/hisi-spmi-controller.c:220:5: warning: format '%ld' expects 
argument of type 'long int', but argument 4 has type 'size_t' {aka 'unsigned 
int'} [-Wformat=]
     220 |   , "spmi_controller supports 1..%d bytes per trans, but:%ld 
requested"
         |     
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   drivers/spmi/hisi-spmi-controller.c:219:3: note: in expansion of macro 
'dev_err'
     219 |   dev_err(spmi_controller->dev
         |   ^~~~~~~
   drivers/spmi/hisi-spmi-controller.c:220:60: note: format string is defined 
here
     220 |   , "spmi_controller supports 1..%d bytes per trans, but:%ld 
requested"
         |                                                          ~~^
         |                                                            |
         |                                                            long int
         |                                                          %d
   In file included from include/linux/device.h:15,
                    from include/linux/platform_device.h:13,
                    from drivers/spmi/hisi-spmi-controller.c:7:
   drivers/spmi/hisi-spmi-controller.c:269:33: warning: format '%ld' expects 
argument of type 'long int', but argument 6 has type 'size_t' {aka 'unsigned 
int'} [-Wformat=]
     269 |   dev_err(spmi_controller->dev, "spmi write wait timeout op:0x%x 
sid:%d addr:0x%x bc:%ld\n",
         |                                 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   drivers/spmi/hisi-spmi-controller.c:269:3: note: in expansion of macro 
'dev_err'
     269 |   dev_err(spmi_controller->dev, "spmi write wait timeout op:0x%x 
sid:%d addr:0x%x bc:%ld\n",
         |   ^~~~~~~
   drivers/spmi/hisi-spmi-controller.c:269:88: note: format string is defined 
here
     269 |   dev_err(spmi_controller->dev, "spmi write wait timeout op:0x%x 
sid:%d addr:0x%x bc:%ld\n",
         |                                                                      
                ~~^
         |                                                                      
                  |
         |                                                                      
                  long int
         |                                                                      
                %d

vim +149 drivers/spmi/hisi-spmi-controller.c

3f5f1801bf6c4a3 Mayulong              2020-08-11  135  
3f5f1801bf6c4a3 Mayulong              2020-08-11  136  static int 
spmi_read_cmd(struct spmi_controller *ctrl,
a93f9ffda101599 Mauro Carvalho Chehab 2020-08-11  137                    u8 
opc, u8 sid, u16 addr, u8 *__buf, size_t bc)
3f5f1801bf6c4a3 Mayulong              2020-08-11  138  {
3f5f1801bf6c4a3 Mayulong              2020-08-11  139   struct 
spmi_controller_dev *spmi_controller = dev_get_drvdata(&ctrl->dev);
3f5f1801bf6c4a3 Mayulong              2020-08-11  140   unsigned long flags;
a93f9ffda101599 Mauro Carvalho Chehab 2020-08-11  141   u8 *buf = __buf;
3f5f1801bf6c4a3 Mayulong              2020-08-11  142   u32 cmd, data;
3f5f1801bf6c4a3 Mayulong              2020-08-11  143   int rc;
3f5f1801bf6c4a3 Mayulong              2020-08-11  144   u32 chnl_ofst = 
SPMI_CHANNEL_OFFSET * spmi_controller->channel;
3f5f1801bf6c4a3 Mayulong              2020-08-11  145   u8 op_code, i;
3f5f1801bf6c4a3 Mayulong              2020-08-11  146  
3f5f1801bf6c4a3 Mayulong              2020-08-11  147   if (bc > 
SPMI_CONTROLLER_MAX_TRANS_BYTES) {
3f5f1801bf6c4a3 Mayulong              2020-08-11  148           
dev_err(spmi_controller->dev
3f5f1801bf6c4a3 Mayulong              2020-08-11 @149           , 
"spmi_controller supports 1..%d bytes per trans, but:%ld requested"
3f5f1801bf6c4a3 Mayulong              2020-08-11  150                           
        , SPMI_CONTROLLER_MAX_TRANS_BYTES, bc);
3f5f1801bf6c4a3 Mayulong              2020-08-11  151           return  -EINVAL;
3f5f1801bf6c4a3 Mayulong              2020-08-11  152   }
3f5f1801bf6c4a3 Mayulong              2020-08-11  153  
3f5f1801bf6c4a3 Mayulong              2020-08-11  154   /* Check the opcode */
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  155   if (opc == 
SPMI_CMD_READ) {
3f5f1801bf6c4a3 Mayulong              2020-08-11  156           op_code = 
SPMI_CMD_REG_READ;
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  157   } else if (opc == 
SPMI_CMD_EXT_READ) {
3f5f1801bf6c4a3 Mayulong              2020-08-11  158           op_code = 
SPMI_CMD_EXT_REG_READ;
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  159   } else if (opc == 
SPMI_CMD_EXT_READL) {
3f5f1801bf6c4a3 Mayulong              2020-08-11  160           op_code = 
SPMI_CMD_EXT_REG_READ_L;
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  161   } else {
3f5f1801bf6c4a3 Mayulong              2020-08-11  162           
dev_err(spmi_controller->dev, "invalid read cmd 0x%x", opc);
3f5f1801bf6c4a3 Mayulong              2020-08-11  163           return -EINVAL;
3f5f1801bf6c4a3 Mayulong              2020-08-11  164   }
3f5f1801bf6c4a3 Mayulong              2020-08-11  165  
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  166   cmd = 
SPMI_APB_SPMI_CMD_EN |
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  167        (op_code << 
SPMI_APB_SPMI_CMD_TYPE_OFFSET) |
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  168        ((bc - 1) << 
SPMI_APB_SPMI_CMD_LENGTH_OFFSET) |
3f5f1801bf6c4a3 Mayulong              2020-08-11  169        ((sid & 0xf) << 
SPMI_APB_SPMI_CMD_SLAVEID_OFFSET) |  /* slvid */
3f5f1801bf6c4a3 Mayulong              2020-08-11  170        ((addr & 0xffff)  
<< SPMI_APB_SPMI_CMD_ADDR_OFFSET); /* slave_addr */
3f5f1801bf6c4a3 Mayulong              2020-08-11  171  
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  172   
spin_lock_irqsave(&spmi_controller->lock, flags);
3f5f1801bf6c4a3 Mayulong              2020-08-11  173  
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  174   writel(cmd, 
spmi_controller->base + chnl_ofst + SPMI_APB_SPMI_CMD_BASE_ADDR);
3f5f1801bf6c4a3 Mayulong              2020-08-11  175  
afd5339d05a6fd2 Mauro Carvalho Chehab 2020-08-11  176   rc = 
spmi_controller_wait_for_done(spmi_controller,
afd5339d05a6fd2 Mauro Carvalho Chehab 2020-08-11  177                           
           spmi_controller->base, sid, addr);
3f5f1801bf6c4a3 Mayulong              2020-08-11  178   if (rc)
3f5f1801bf6c4a3 Mayulong              2020-08-11  179           goto done;
3f5f1801bf6c4a3 Mayulong              2020-08-11  180  
3f5f1801bf6c4a3 Mayulong              2020-08-11  181   i = 0;
3f5f1801bf6c4a3 Mayulong              2020-08-11  182   do {
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  183           data = 
readl(spmi_controller->base + chnl_ofst + SPMI_SLAVE_OFFSET * sid + 
SPMI_APB_SPMI_RDATA0_BASE_ADDR + i * SPMI_PER_DATAREG_BYTE);
afd5339d05a6fd2 Mauro Carvalho Chehab 2020-08-11  184           data = 
be32_to_cpu((__be32)data);
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  185           if ((bc - i * 
SPMI_PER_DATAREG_BYTE) >> 2) {
3f5f1801bf6c4a3 Mayulong              2020-08-11  186                   
memcpy(buf, &data, sizeof(data));
3f5f1801bf6c4a3 Mayulong              2020-08-11  187                   buf += 
sizeof(data);
3f5f1801bf6c4a3 Mayulong              2020-08-11  188           } else {
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  189                   
memcpy(buf, &data, bc % SPMI_PER_DATAREG_BYTE);
3f5f1801bf6c4a3 Mayulong              2020-08-11  190                   buf += 
(bc % SPMI_PER_DATAREG_BYTE);
3f5f1801bf6c4a3 Mayulong              2020-08-11  191           }
3f5f1801bf6c4a3 Mayulong              2020-08-11  192           i++;
3f5f1801bf6c4a3 Mayulong              2020-08-11  193   } while (bc > i * 
SPMI_PER_DATAREG_BYTE);
3f5f1801bf6c4a3 Mayulong              2020-08-11  194  
3f5f1801bf6c4a3 Mayulong              2020-08-11  195  done:
3f5f1801bf6c4a3 Mayulong              2020-08-11  196   
spin_unlock_irqrestore(&spmi_controller->lock, flags);
3f5f1801bf6c4a3 Mayulong              2020-08-11  197   if (rc)
3f5f1801bf6c4a3 Mayulong              2020-08-11  198           
dev_err(spmi_controller->dev, "spmi read wait timeout op:0x%x sid:%d addr:0x%x 
bc:%ld\n",
3f5f1801bf6c4a3 Mayulong              2020-08-11  199                   opc, 
sid, addr, bc + 1);
a93f9ffda101599 Mauro Carvalho Chehab 2020-08-11  200   else
a93f9ffda101599 Mauro Carvalho Chehab 2020-08-11  201           
dev_dbg(spmi_controller->dev, "%s: id:%d addr:0x%x, read value: %*ph\n",
a93f9ffda101599 Mauro Carvalho Chehab 2020-08-11  202                   
__func__, sid, addr, (int)bc, __buf);
a93f9ffda101599 Mauro Carvalho Chehab 2020-08-11  203  
3f5f1801bf6c4a3 Mayulong              2020-08-11  204   return rc;
43091a1c2b8d45e Mauro Carvalho Chehab 2020-08-11  205  }
3f5f1801bf6c4a3 Mayulong              2020-08-11  206  

---
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