Re: [PATCH v2] HID: i2c-hid: Ignore input report if there's no data present on Elan touchpanels

From: kbuild test robot
Date: Mon Jan 07 2019 - 02:32:41 EST


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