sound/soc/codecs/rt766-sdca.c:89:undefined reference to `hid_input_report'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   0a0d1d55dad570724bf8c7ea83409639cfb4be9b
commit: b50ecf5873df1ce6ff34f3e3421ebb33750e61f6 ASoC: rt766: add RT766/RT767 SDCA driver
date:   3 weeks ago
config: x86_64-buildonly-randconfig-004-20260825 (https://download.01.org/0day-ci/archive/20260825/[email protected]/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260825/[email protected]/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
| Fixes: b50ecf5873df ("ASoC: rt766: add RT766/RT767 SDCA driver")
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   ld: vmlinux.o: in function `rt766_sdca_btn_detect':
>> sound/soc/codecs/rt766-sdca.c:89:(.text+0x1b497de): undefined reference to `hid_input_report'
   ld: vmlinux.o: in function `sdwhid_parse':
>> sound/soc/sdca/sdca_hid.c:37:(.text+0x1cdeba3): undefined reference to `hid_parse_report'
   ld: vmlinux.o: in function `sdca_add_hid_device':
>> sound/soc/sdca/sdca_hid.c:95:(.text+0x1cdec14): undefined reference to `hid_allocate_device'
>> ld: sound/soc/sdca/sdca_hid.c:114:(.text+0x1cded5d): undefined reference to `hid_add_device'
>> ld: sound/soc/sdca/sdca_hid.c:117:(.text+0x1cded8d): undefined reference to `hid_destroy_device'
   ld: vmlinux.o: in function `sdca_hid_process_report':
>> sound/soc/sdca/sdca_hid.c:160:(.text+0x1cdef92): undefined reference to `hid_input_report'

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SND_SOC_SDCA_HID
   Depends on [n]: SOUND [=y] && SND [=y] && SND_SOC [=y] && SND_SOC_SDCA [=y] && (HID [=n]=y [=y] || HID [=n]=SND_SOC_SDCA [=y])
   Selected by [y]:
   - SND_SOC_RT766_SDCA_SDW [=y] && SOUND [=y] && SND [=y] && SND_SOC [=y] && SOUNDWIRE [=y] && SND_SOC_SDCA [=y]


vim +89 sound/soc/codecs/rt766-sdca.c

    32	
    33	static int rt766_sdca_btn_detect(struct sdca_interrupt *interrupt)
    34	{
    35		struct rt766_sdca_priv *rt766 = interrupt->priv;
    36		struct sdca_entity *ent_hid = interrupt->entity;
    37		unsigned char *buf = NULL;
    38		unsigned int offset, owner, length;
    39		unsigned int det_mode, idx, val;
    40		int ret;
    41	
    42		ret = regmap_read(rt766->regmap,
    43			RT766_SDCA_CTL(UAJ, GE49, SDCA_CTL_GE_DETECTED_MODE),
    44			&det_mode);
    45		if (ret < 0)
    46			goto io_error;
    47	
    48		/* get current UMP message owner */
    49		ret = regmap_read(rt766->regmap,
    50			RT766_SDCA_CTL(HID, HID101, SDCA_CTL_HIDE_HIDTX_CURRENTOWNER),
    51			&owner);
    52		if (ret < 0)
    53			goto io_error;
    54	
    55		/* if owner is device then there is no button event from device */
    56		if (owner == 1)
    57			return 0;
    58	
    59		if (det_mode) {
    60			/* read UMP message length */
    61			ret = regmap_read(rt766->regmap,
    62				RT766_SDCA_CTL(HID, HID101, SDCA_CTL_HIDE_HIDTX_MESSAGELENGTH),
    63				&length);
    64			if (ret < 0)
    65				goto _end_btn_det_;
    66	
    67			/* read UMP message offset */
    68			ret = regmap_read(rt766->regmap,
    69				RT766_SDCA_CTL(HID, HID101, SDCA_CTL_HIDE_HIDTX_MESSAGEOFFSET),
    70				&offset);
    71			if (ret < 0)
    72				goto _end_btn_det_;
    73	
    74			buf = devm_kzalloc(&rt766->slave->dev, length, GFP_KERNEL);
    75			if (!buf) {
    76				dev_err(&rt766->slave->dev, "%s: alloc buf failed\n", __func__);
    77				goto _end_btn_det_;
    78			}
    79	
    80			for (idx = 0; idx < length; idx++) {
    81				ret = regmap_read(rt766->regmap,
    82					RT766_BUF_ADDR_HID1 + offset + idx, &val);
    83				if (ret < 0)
    84					goto _end_btn_det_;
    85				buf[idx] = val & 0xff;
    86			}
    87	
    88			if (ent_hid)
  > 89				hid_input_report(ent_hid->hide.hid, HID_INPUT_REPORT,
    90					buf, length, 1);
    91		}
    92	
    93	_end_btn_det_:
    94		if (buf)
    95			devm_kfree(&rt766->slave->dev, buf);
    96	
    97		/* Host is owner, so set back to device */
    98		if (owner == 0) {
    99			regmap_write(rt766->regmap,
   100				RT766_SDCA_CTL(HID, HID101, SDCA_CTL_HIDE_HIDTX_CURRENTOWNER), 0x01);
   101		}
   102	
   103		return 0;
   104	
   105	io_error:
   106		pr_err_ratelimited("IO error in %s, ret %d\n", __func__, ret);
   107		return ret;
   108	}
   109	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.