Linux Input/HID development
 help / color / mirror / Atom feed
* [hid:for-7.4/nintendo 2/5] drivers/hid/hid-nintendo.c:3993:undefined reference to `hid_is_usb'
@ 2026-10-17  7:25 kernel test robot
  2026-10-17 13:12 ` Silvan Jegen
  0 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2026-10-17  7:25 UTC (permalink / raw)
  To: Vicki Pfau; +Cc: oe-kbuild-all, linux-input, Jiri Kosina, Silvan Jegen

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-7.4/nintendo
head:   77c7155e2707ba5b1d56f3dc1acead48cf17f98d
commit: 9417132df63e5cd7230433af05198538e759f3ae [2/5] HID: nintendo: Add preliminary Switch 2 controller driver
config: i386-randconfig-1001-20261016 (https://download.01.org/0day-ci/archive/20261017/202610171559.gZ0QBMFv-lkp@intel.com/config)
compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261017/202610171559.gZ0QBMFv-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610171559.gZ0QBMFv-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: drivers/hid/hid-nintendo.o: in function `switch2_probe':
>> drivers/hid/hid-nintendo.c:3993:(.text+0x6cd7): undefined reference to `hid_is_usb'


vim +3993 drivers/hid/hid-nintendo.c

  3985	
  3986	static int switch2_probe(struct hid_device *hdev, const struct hid_device_id *id)
  3987	{
  3988		struct switch2_controller *ns2;
  3989		struct usb_device *udev;
  3990		char phys[64];
  3991		int ret;
  3992	
> 3993		if (!hid_is_usb(hdev))
  3994			return -ENODEV;
  3995	
  3996		udev = hid_to_usb_dev(hdev);
  3997		if (usb_make_path(udev, phys, sizeof(phys)) < 0)
  3998			return -EINVAL;
  3999	
  4000		ret = hid_parse(hdev);
  4001		if (ret) {
  4002			hid_err(hdev, "parse failed %d\n", ret);
  4003			return ret;
  4004		}
  4005	
  4006		ns2 = switch2_get_controller(phys);
  4007		if (IS_ERR(ns2))
  4008			return PTR_ERR(ns2);
  4009	
  4010		mutex_lock(&ns2->lock);
  4011		if (ns2->hdev) {
  4012			mutex_unlock(&ns2->lock);
  4013			hid_err(hdev,
  4014				"Second hdev tried to claim same controller, first=%p vs second=%p\n",
  4015				ns2->hdev, hdev);
  4016			kref_put(&ns2->refcount, switch2_kref_put);
  4017			return -EBUSY;
  4018		}
  4019		ns2->hdev = hdev;
  4020		hid_set_drvdata(hdev, ns2);
  4021	
  4022		switch (hdev->product | (hdev->vendor << 16)) {
  4023		default:
  4024			strscpy(ns2->name, hdev->name, sizeof(ns2->name));
  4025			break;
  4026		/* Some controllers have slightly wrong names so we override them */
  4027		case USB_DEVICE_ID_NINTENDO_NS2_JOYCONR | (USB_VENDOR_ID_NINTENDO << 16):
  4028			/* Missing the "2" in the name */
  4029			strscpy(ns2->name, "Nintendo Joy-Con 2 (R)", sizeof(ns2->name));
  4030			break;
  4031		case USB_DEVICE_ID_NINTENDO_NS2_GCCON | (USB_VENDOR_ID_NINTENDO << 16):
  4032			/* Has "Nintendo" in the name twice */
  4033			strscpy(ns2->name, "Nintendo GameCube Controller", sizeof(ns2->name));
  4034			break;
  4035		}
  4036	
  4037		ns2->player_id = U32_MAX;
  4038		ret = ida_alloc(&nintendo_player_id_allocator, GFP_KERNEL);
  4039		if (ret < 0)
  4040			hid_warn(hdev, "Failed to allocate player ID, skipping; ret=%d\n", ret);
  4041		else
  4042			ns2->player_id = ret;
  4043	
  4044		ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
  4045		if (ret) {
  4046			hid_err(hdev, "hw_start failed %d\n", ret);
  4047			goto err_cleanup;
  4048		}
  4049	
  4050		ret = hid_hw_open(hdev);
  4051		if (ret) {
  4052			hid_err(hdev, "hw_open failed %d\n", ret);
  4053			goto err_stop;
  4054		}
  4055	
  4056		ret = 0;
  4057		if (ns2->cfg)
  4058			ret = switch2_init_controller(ns2);
  4059	
  4060		if (!ret) {
  4061			mutex_unlock(&ns2->lock);
  4062			return 0;
  4063		}
  4064	
  4065		hid_hw_close(hdev);
  4066	err_stop:
  4067		hid_hw_stop(hdev);
  4068	err_cleanup:
  4069		ida_free(&nintendo_player_id_allocator, ns2->player_id);
  4070		ns2->hdev = NULL;
  4071		mutex_unlock(&ns2->lock);
  4072		switch2_controller_put(ns2);
  4073		kref_put(&ns2->refcount, switch2_kref_put);
  4074	
  4075		return ret;
  4076	}
  4077	

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-17 13:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-17  7:25 [hid:for-7.4/nintendo 2/5] drivers/hid/hid-nintendo.c:3993:undefined reference to `hid_is_usb' kernel test robot
2026-10-17 13:12 ` Silvan Jegen
2026-10-17 13:24   ` Jiri Kosina
2026-10-17 13:55     ` [hid:for-7.4/nintendo 2/5] drivers/hid/hid-nintendo.c:3993:undefined reference to `hid_is_usb Silvan Jegen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox