Re: [PATCH v12 3/3] Input: Add TouchNetix axiom i2c touchscreen driver

From: kernel test robot
Date: Thu May 30 2024 - 22:14:38 EST


Hi Kamel,

kernel test robot noticed the following build errors:

[auto build test ERROR on dtor-input/next]
[also build test ERROR on dtor-input/for-linus robh/for-next krzk-dt/for-next linus/master v6.10-rc1 next-20240529]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Kamel-Bouhara/dt-bindings-vendor-prefixes-Add-TouchNetix-AS/20240529-171328
base: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next
patch link: https://lore.kernel.org/r/20240529091004.107256-4-kamel.bouhara%40bootlin.com
patch subject: [PATCH v12 3/3] Input: Add TouchNetix axiom i2c touchscreen driver
config: x86_64-randconfig-103-20240531 (https://download.01.org/0day-ci/archive/20240531/202405311035.5QZSREJv-lkp@xxxxxxxxx/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240531/202405311035.5QZSREJv-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405311035.5QZSREJv-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

ld: drivers/input/touchscreen/touchnetix_axiom.o: in function `axiom_handle_events':
>> drivers/input/touchscreen/touchnetix_axiom.c:473:(.text+0x245f): undefined reference to `crc16'


vim +473 drivers/input/touchscreen/touchnetix_axiom.c

442
443 /*
444 * Validates the crc and demultiplexes the axiom reports to the appropriate
445 * report handler
446 */
447 static int axiom_handle_events(struct axiom_data *ts)
448 {
449 struct input_dev *input_dev = ts->input_dev;
450 u8 *report_data = ts->rx_buf;
451 struct device *dev = ts->dev;
452 u16 crc_report;
453 u8 *crc_bytes;
454 u16 crc_calc;
455 int error;
456 u8 len;
457
458 error = axiom_read(ts, AXIOM_REPORT_USAGE_ID, 0, report_data, ts->max_report_len);
459 if (error)
460 return error;
461
462 len = (report_data[0] & AXIOM_COMMS_REPORT_LEN_MASK) << 1;
463 if (len <= 2) {
464 dev_err(dev, "Zero length report discarded.\n");
465 return -ENODATA;
466 }
467
468 /* Validate the report CRC */
469 crc_bytes = &report_data[len];
470
471 crc_report = get_unaligned_le16(crc_bytes - 2);
472 /* Length is in 16 bit words and remove the size of the CRC16 itself */
> 473 crc_calc = crc16(0, report_data, (len - 2));
474
475 if (crc_calc != crc_report) {
476 dev_err(dev,
477 "CRC mismatch! Expected: %#x, Calculated CRC: %#x.\n",
478 crc_report, crc_calc);
479 return -EINVAL;
480 }
481
482 switch (report_data[1]) {
483 case AXIOM_USAGE_2DCTS_REPORT_ID:
484 if (axiom_process_u41_report(ts, &report_data[1])) {
485 input_mt_sync_frame(input_dev);
486 input_sync(input_dev);
487 }
488 break;
489
490 case AXIOM_USAGE_2AUX_REPORT_ID:
491 /* This is an aux report (force) */
492 axiom_process_u46_report(ts, &report_data[1]);
493 input_mt_sync(input_dev);
494 input_sync(input_dev);
495 break;
496
497 case AXIOM_USAGE_2HB_REPORT_ID:
498 /* This is a heartbeat report */
499 break;
500 default:
501 return -EINVAL;
502 }
503
504 return 0;
505 }
506

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki