Hi Kai-Heng,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.0-rc1]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Kai-Heng-Feng/HID-i2c-hid-Ignore-input-report-if-there-s-no-data-present-on-Elan-touchpanels/20190107-142834
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 8.1.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=8.1.0 make.cross ARCH=xtensa 

All errors (new ones prefixed by >>):

   drivers/hid/i2c-hid/i2c-hid-core.c: In function 'i2c_hid_get_input':
   drivers/hid/i2c-hid/i2c-hid-core.c:510:37: warning: missing terminating " 
character
      dev_warn_once(&ihid->client->dev, "%s: IRQ triggered but
                                        ^
   drivers/hid/i2c-hid/i2c-hid-core.c:511:15: warning: missing terminating ' 
character
             there's no data\n", __func__);
                  ^
   drivers/hid/i2c-hid/i2c-hid-core.c:1359: error: unterminated argument list 
invoking macro "dev_warn_once"
    MODULE_LICENSE("GPL");
    
>> drivers/hid/i2c-hid/i2c-hid-core.c:510:3: error: 'dev_warn_once' undeclared 
>> (first use in this function); did you mean 'dev_fwnode'?
      dev_warn_once(&ihid->client->dev, "%s: IRQ triggered but
      ^~~~~~~~~~~~~
      dev_fwnode
   drivers/hid/i2c-hid/i2c-hid-core.c:510:3: note: each undeclared identifier 
is reported only once for each function it appears in
   drivers/hid/i2c-hid/i2c-hid-core.c:510:16: error: expected ';' at end of 
input
      dev_warn_once(&ihid->client->dev, "%s: IRQ triggered but
                   ^
                   ;
   drivers/hid/i2c-hid/i2c-hid-core.c:1359:
    MODULE_LICENSE("GPL");
                    
   drivers/hid/i2c-hid/i2c-hid-core.c:510:3: error: expected declaration or 
statement at end of input
      dev_warn_once(&ihid->client->dev, "%s: IRQ triggered but
      ^~~~~~~~~~~~~
   drivers/hid/i2c-hid/i2c-hid-core.c:510:3: error: expected declaration or 
statement at end of input
   At top level:
   drivers/hid/i2c-hid/i2c-hid-core.c:481:13: warning: 'i2c_hid_get_input' 
defined but not used [-Wunused-function]
    static void i2c_hid_get_input(struct i2c_hid *ihid)
                ^~~~~~~~~~~~~~~~~
   drivers/hid/i2c-hid/i2c-hid-core.c:441:12: warning: 'i2c_hid_hwreset' 
defined but not used [-Wunused-function]
    static int i2c_hid_hwreset(struct i2c_client *client)
               ^~~~~~~~~~~~~~~
   drivers/hid/i2c-hid/i2c-hid-core.c:330:12: warning: 
'i2c_hid_set_or_send_report' defined but not used [-Wunused-function]
    static int i2c_hid_set_or_send_report(struct i2c_client *client, u8 
reportType,
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/i2c-hid/i2c-hid-core.c:291:12: warning: 'i2c_hid_get_report' 
defined but not used [-Wunused-function]
    static int i2c_hid_get_report(struct i2c_client *client, u8 reportType,
               ^~~~~~~~~~~~~~~~~~
   drivers/hid/i2c-hid/i2c-hid-core.c:195:12: warning: 'i2c_hid_lookup_quirk' 
defined but not used [-Wunused-function]
    static u32 i2c_hid_lookup_quirk(const u16 idVendor, const u16 idProduct)
               ^~~~~~~~~~~~~~~~~~~~

vim +510 drivers/hid/i2c-hid/i2c-hid-core.c

   480  
   481  static void i2c_hid_get_input(struct i2c_hid *ihid)
   482  {
   483          int ret;
   484          u32 ret_size;
   485          int size = le16_to_cpu(ihid->hdesc.wMaxInputLength);
   486  
   487          if (size > ihid->bufsize)
   488                  size = ihid->bufsize;
   489  
   490          ret = i2c_master_recv(ihid->client, ihid->inbuf, size);
   491          if (ret != size) {
   492                  if (ret < 0)
   493                          return;
   494  
   495                  dev_err(&ihid->client->dev, "%s: got %d data instead of 
%d\n",
   496                          __func__, ret, size);
   497                  return;
   498          }
   499  
   500          ret_size = ihid->inbuf[0] | ihid->inbuf[1] << 8;
   501  
   502          if (!ret_size) {
   503                  /* host or device initiated RESET completed */
   504                  if (test_and_clear_bit(I2C_HID_RESET_PENDING, 
&ihid->flags))
   505                          wake_up(&ihid->wait);
   506                  return;
   507          }
   508  
   509          if (ihid->quirks & I2C_HID_QUIRK_BOGUS_IRQ && ret_size == 
0xffff) {
 > 510                  dev_warn_once(&ihid->client->dev, "%s: IRQ triggered but
   511                                there's no data\n", __func__);
   512                  return;
   513          }
   514  
   515          if ((ret_size > size) || (ret_size < 2)) {
   516                  dev_err(&ihid->client->dev, "%s: incomplete report 
(%d/%d)\n",
   517                          __func__, size, ret_size);
   518                  return;
   519          }
   520  
   521          i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf);
   522  
   523          if (test_bit(I2C_HID_STARTED, &ihid->flags))
   524                  hid_input_report(ihid->hid, HID_INPUT_REPORT, 
ihid->inbuf + 2,
   525                                  ret_size - 2, 1);
   526  
   527          return;
   528  }
   529  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to