Re: [PATCH 1/4] HID: hid-sensor-custom: Add custom sensor iio support
From: kernel test robot
Date: Thu Nov 19 2020 - 01:59:01 EST
Hi Ye,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on iio/togreg]
[also build test WARNING on linus/master v5.10-rc4 next-20201118]
[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/Ye-Xiang/add-custom-hinge-sensor-support/20201119-110842
base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
config: c6x-randconfig-r003-20201119 (attached as .config)
compiler: c6x-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
# https://github.com/0day-ci/linux/commit/1f33733d65038ade4af057df7e5c126485ecb7c6
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ye-Xiang/add-custom-hinge-sensor-support/20201119-110842
git checkout 1f33733d65038ade4af057df7e5c126485ecb7c6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=c6x
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
drivers/hid/hid-sensor-custom.c: In function 'store_value':
drivers/hid/hid-sensor-custom.c:401:7: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
401 | int ret;
| ^~~
In file included from include/linux/device.h:15,
from include/linux/miscdevice.h:7,
from drivers/hid/hid-sensor-custom.c:11:
drivers/hid/hid-sensor-custom.c: In function 'get_known_custom_sensor_index':
>> drivers/hid/hid-sensor-custom.c:847:24: warning: format '%ld' expects argument of type 'long int', but argument 3 has type '__kernel_size_t' {aka 'unsigned int'} [-Wformat=]
847 | hid_err(hsdev->hdev, " %ld != %ld\n", strlen(buf),
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
19 | #define dev_fmt(fmt) fmt
| ^~~
include/linux/hid.h:1180:2: note: in expansion of macro 'dev_err'
1180 | dev_err(&(hid)->dev, fmt, ##__VA_ARGS__)
| ^~~~~~~
drivers/hid/hid-sensor-custom.c:847:3: note: in expansion of macro 'hid_err'
847 | hid_err(hsdev->hdev, " %ld != %ld\n", strlen(buf),
| ^~~~~~~
drivers/hid/hid-sensor-custom.c:847:28: note: format string is defined here
847 | hid_err(hsdev->hdev, " %ld != %ld\n", strlen(buf),
| ~~^
| |
| long int
| %d
In file included from include/linux/device.h:15,
from include/linux/miscdevice.h:7,
from drivers/hid/hid-sensor-custom.c:11:
drivers/hid/hid-sensor-custom.c:847:24: warning: format '%ld' expects argument of type 'long int', but argument 4 has type '__kernel_size_t' {aka 'unsigned int'} [-Wformat=]
847 | hid_err(hsdev->hdev, " %ld != %ld\n", strlen(buf),
| ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
19 | #define dev_fmt(fmt) fmt
| ^~~
include/linux/hid.h:1180:2: note: in expansion of macro 'dev_err'
1180 | dev_err(&(hid)->dev, fmt, ##__VA_ARGS__)
| ^~~~~~~
drivers/hid/hid-sensor-custom.c:847:3: note: in expansion of macro 'hid_err'
847 | hid_err(hsdev->hdev, " %ld != %ld\n", strlen(buf),
| ^~~~~~~
drivers/hid/hid-sensor-custom.c:847:35: note: format string is defined here
847 | hid_err(hsdev->hdev, " %ld != %ld\n", strlen(buf),
| ~~^
| |
| long int
| %d
vim +847 drivers/hid/hid-sensor-custom.c
771
772 static int get_known_custom_sensor_index(struct hid_sensor_hub_device *hsdev)
773 {
774 struct hid_sensor_hub_attribute_info sensor_manufacturer = { 0 };
775 struct hid_sensor_hub_attribute_info sensor_luid_info = { 0 };
776 int report_size;
777 int ret;
778 u16 *w_buf;
779 int w_buf_len;
780 char *buf;
781 int buf_len;
782 int i;
783 int index;
784
785 w_buf_len = sizeof(u16) * HID_CUSTOM_MAX_FEATURE_BYTES;
786 buf_len = sizeof(char) * HID_CUSTOM_MAX_FEATURE_BYTES;
787 w_buf = kzalloc(w_buf_len, GFP_KERNEL);
788 if (!w_buf)
789 return -1;
790
791 buf = kzalloc(buf_len, GFP_KERNEL);
792 if (!buf) {
793 kfree(w_buf);
794 return -1;
795 }
796
797 /* get manufacturer info */
798 ret = sensor_hub_input_get_attribute_info(
799 hsdev, HID_FEATURE_REPORT, hsdev->usage,
800 HID_USAGE_SENSOR_PROP_MANUFACTURER, &sensor_manufacturer);
801 if (ret < 0)
802 goto err_out;
803
804 report_size =
805 sensor_hub_get_feature(hsdev, sensor_manufacturer.report_id,
806 sensor_manufacturer.index, w_buf_len,
807 w_buf);
808 if (report_size <= 0) {
809 hid_err(hsdev->hdev,
810 "Failed to get sensor manufacturer info %d\n",
811 report_size);
812 goto err_out;
813 }
814
815 /* convert from wide char to char */
816 for (i = 0; i < buf_len - 1 && w_buf[i]; i++)
817 buf[i] = (char)w_buf[i];
818
819 /* ensure it's ISH sensor */
820 if (strncmp(buf, "INTEL", strlen("INTEL")))
821 goto err_out;
822
823 memset(w_buf, 0, w_buf_len);
824 memset(buf, 0, buf_len);
825
826 /* get real usage id */
827 ret = sensor_hub_input_get_attribute_info(
828 hsdev, HID_FEATURE_REPORT, hsdev->usage,
829 HID_USAGE_SENSOR_PROP_SERIAL_NUM, &sensor_luid_info);
830 if (ret < 0)
831 goto err_out;
832
833 report_size = sensor_hub_get_feature(hsdev, sensor_luid_info.report_id,
834 sensor_luid_info.index, w_buf_len,
835 w_buf);
836 if (report_size <= 0) {
837 hid_err(hsdev->hdev, "Failed to get real usage info %d\n",
838 report_size);
839 goto err_out;
840 }
841
842 /* convert from wide char to char */
843 for (i = 0; i < buf_len - 1 && w_buf[i]; i++)
844 buf[i] = (char)w_buf[i];
845
846 if (strlen(buf) != strlen(known_sensor_luid[0]) + 5) {
> 847 hid_err(hsdev->hdev, " %ld != %ld\n", strlen(buf),
848 strlen(known_sensor_luid[0]));
849 goto err_out;
850 }
851
852 /* get table index with luid (not matching 'LUID: ' in luid) */
853 index = get_luid_table_index(&buf[5]);
854 kfree(w_buf);
855 kfree(buf);
856 return index;
857
858 err_out:
859 kfree(w_buf);
860 kfree(buf);
861 return -1;
862 }
863
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip