[asahilinux:bits/090-spi-hid 17/21] drivers/hid/dockchannel-hid/dockchannel-hid.c:303:21: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations
From: kernel test robot
Date: Sun Jul 31 2022 - 01:09:29 EST
tree: https://github.com/AsahiLinux/linux bits/090-spi-hid
head: e784b825a3358d79e5da5d9426c6eb37f79819b3
commit: fca5de56d067159949909e595e6bf3ee10af0a91 [17/21] hid: Add Apple DockChannel HID transport driver
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20220731/202207311303.fsxdJJ2i-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 52cd00cabf479aa7eb6dbb063b7ba41ea57bce9e)
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/AsahiLinux/linux/commit/fca5de56d067159949909e595e6bf3ee10af0a91
git remote add asahilinux https://github.com/AsahiLinux/linux
git fetch --no-tags asahilinux bits/090-spi-hid
git checkout fca5de56d067159949909e595e6bf3ee10af0a91
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/hid/dockchannel-hid/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All error/warnings (new ones prefixed by >>):
>> drivers/hid/dockchannel-hid/dockchannel-hid.c:303:21: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
iface->out_flags = FIELD_PREP(FLAGS_GROUP, type) | FIELD_PREP(FLAGS_REQ, req);
^
>> drivers/hid/dockchannel-hid/dockchannel-hid.c:569:62: warning: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
dev_err(dchid->dev, "Bad length for ready message: %ld\n", length);
~~~ ^~~~~~
%zu
include/linux/dev_printk.h:144:65: note: expanded from macro 'dev_err'
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
_p_func(dev, fmt, ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~
>> drivers/hid/dockchannel-hid/dockchannel-hid.c:825:13: error: call to undeclared function 'FIELD_GET'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
int type = FIELD_GET(FLAGS_GROUP, shdr->flags);
^
>> drivers/hid/dockchannel-hid/dockchannel-hid.c:830:18: warning: format specifies type 'long' but the argument has type 'unsigned int' [-Wformat]
shdr->length, work->hdr.length - sizeof(*shdr));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:144:65: note: expanded from macro 'dev_err'
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
_p_func(dev, fmt, ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~
drivers/hid/dockchannel-hid/dockchannel-hid.c:856:18: warning: format specifies type 'long' but the argument has type 'unsigned int' [-Wformat]
shdr->length, hdr->length - sizeof(*shdr));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:144:65: note: expanded from macro 'dev_err'
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
_p_func(dev, fmt, ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~
drivers/hid/dockchannel-hid/dockchannel-hid.c:975:7: warning: variable 'defer' set but not used [-Wunused-but-set-variable]
bool defer = false;
^
4 warnings and 2 errors generated.
vim +/FIELD_PREP +303 drivers/hid/dockchannel-hid/dockchannel-hid.c
292
293 static int dchid_cmd(struct dchid_iface *iface, u32 type, u32 req,
294 void *data, size_t size, void *resp_buf, size_t resp_size)
295 {
296 int ret;
297 int report_id = *(u8*)data;
298
299 mutex_lock(&iface->out_mutex);
300
301 WARN_ON(iface->out_report != -1);
302 iface->out_report = report_id;
> 303 iface->out_flags = FIELD_PREP(FLAGS_GROUP, type) | FIELD_PREP(FLAGS_REQ, req);
304 iface->resp_buf = resp_buf;
305 iface->resp_size = resp_size;
306 reinit_completion(&iface->out_complete);
307
308 ret = dchid_send(iface, iface->out_flags, data, size);
309 if (ret < 0)
310 goto done;
311
312 if (!wait_for_completion_timeout(&iface->out_complete, msecs_to_jiffies(1000))) {
313 dev_err(iface->dchid->dev, "output report 0x%x to iface %d (%s) timed out\n",
314 report_id, iface->index, iface->name);
315 ret = -ETIMEDOUT;
316 goto done;
317 }
318
319 ret = iface->resp_size;
320 if (iface->retcode) {
321 dev_err(iface->dchid->dev,
322 "output report 0x%x to iface %d (%s) failed with err 0x%x\n",
323 report_id, iface->index, iface->name, iface->retcode);
324 ret = -EIO;
325 }
326
327 done:
328 iface->tx_seq++;
329 iface->out_report = -1;
330 iface->out_flags = 0;
331 iface->resp_buf = NULL;
332 iface->resp_size = 0;
333 mutex_unlock(&iface->out_mutex);
334 return ret;
335 }
336
--
0-DAY CI Kernel Test Service
https://01.org/lkp