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

From: kernel test robot

Date: Tue Aug 25 2026 - 00:02:34 EST


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/202608251149.oUJkk2jH-lkp@xxxxxxxxx/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/202608251149.oUJkk2jH-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
| Fixes: b50ecf5873df ("ASoC: rt766: add RT766/RT767 SDCA driver")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608251149.oUJkk2jH-lkp@xxxxxxxxx/

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