* [groeck-staging:hwmon-next 34/34] drivers/hwmon/asus_rog_ryujin.c:574: undefined reference to `hid_hw_close'
@ 2024-02-03 21:25 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-02-03 21:25 UTC (permalink / raw)
To: Aleksa Savic; +Cc: oe-kbuild-all, linux-hwmon, Guenter Roeck
tree: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
head: 57319c16d5cc3d49067c181c5f5ba49613163144
commit: 57319c16d5cc3d49067c181c5f5ba49613163144 [34/34] hwmon: Add driver for ASUS ROG RYUJIN II 360 AIO cooler
config: i386-randconfig-141-20240204 (https://download.01.org/0day-ci/archive/20240204/202402040512.f0f23Wq1-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240204/202402040512.f0f23Wq1-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/202402040512.f0f23Wq1-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: drivers/hwmon/asus_rog_ryujin.o: in function `rog_ryujin_remove':
>> drivers/hwmon/asus_rog_ryujin.c:574: undefined reference to `hid_hw_close'
>> ld: drivers/hwmon/asus_rog_ryujin.c:575: undefined reference to `hid_hw_stop'
ld: drivers/hwmon/asus_rog_ryujin.o: in function `rog_ryujin_write_expanded':
>> drivers/hwmon/asus_rog_ryujin.c:161: undefined reference to `hid_hw_output_report'
ld: drivers/hwmon/asus_rog_ryujin.o: in function `hid_parse':
>> include/linux/hid.h:1118: undefined reference to `hid_open_report'
ld: drivers/hwmon/asus_rog_ryujin.o: in function `rog_ryujin_probe':
>> drivers/hwmon/asus_rog_ryujin.c:523: undefined reference to `hid_hw_start'
>> ld: drivers/hwmon/asus_rog_ryujin.c:529: undefined reference to `hid_hw_open'
ld: drivers/hwmon/asus_rog_ryujin.c:564: undefined reference to `hid_hw_stop'
>> ld: drivers/hwmon/asus_rog_ryujin.c:562: undefined reference to `hid_hw_close'
ld: drivers/hwmon/asus_rog_ryujin.o: in function `rog_ryujin_exit':
>> drivers/hwmon/asus_rog_ryujin.c:600: undefined reference to `hid_unregister_driver'
ld: drivers/hwmon/asus_rog_ryujin.o: in function `rog_ryujin_init':
>> drivers/hwmon/asus_rog_ryujin.c:595: undefined reference to `__hid_register_driver'
vim +574 drivers/hwmon/asus_rog_ryujin.c
496
497 static int rog_ryujin_probe(struct hid_device *hdev, const struct hid_device_id *id)
498 {
499 struct rog_ryujin_data *priv;
500 int ret;
501
502 priv = devm_kzalloc(&hdev->dev, sizeof(*priv), GFP_KERNEL);
503 if (!priv)
504 return -ENOMEM;
505
506 priv->hdev = hdev;
507 hid_set_drvdata(hdev, priv);
508
509 /*
510 * Initialize priv->updated to STATUS_VALIDITY seconds in the past, making
511 * the initial empty data invalid for rog_ryujin_read() without the need for
512 * a special case there.
513 */
514 priv->updated = jiffies - msecs_to_jiffies(STATUS_VALIDITY);
515
516 ret = hid_parse(hdev);
517 if (ret) {
518 hid_err(hdev, "hid parse failed with %d\n", ret);
519 return ret;
520 }
521
522 /* Enable hidraw so existing user-space tools can continue to work */
> 523 ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
524 if (ret) {
525 hid_err(hdev, "hid hw start failed with %d\n", ret);
526 return ret;
527 }
528
> 529 ret = hid_hw_open(hdev);
530 if (ret) {
531 hid_err(hdev, "hid hw open failed with %d\n", ret);
532 goto fail_and_stop;
533 }
534
535 priv->buffer = devm_kzalloc(&hdev->dev, MAX_REPORT_LENGTH, GFP_KERNEL);
536 if (!priv->buffer) {
537 ret = -ENOMEM;
538 goto fail_and_close;
539 }
540
541 mutex_init(&priv->status_report_request_mutex);
542 mutex_init(&priv->buffer_lock);
543 spin_lock_init(&priv->status_report_request_lock);
544 init_completion(&priv->cooler_status_received);
545 init_completion(&priv->controller_status_received);
546 init_completion(&priv->cooler_duty_received);
547 init_completion(&priv->controller_duty_received);
548 init_completion(&priv->cooler_duty_set);
549 init_completion(&priv->controller_duty_set);
550
551 priv->hwmon_dev = hwmon_device_register_with_info(&hdev->dev, "rog_ryujin",
552 priv, &rog_ryujin_chip_info, NULL);
553 if (IS_ERR(priv->hwmon_dev)) {
554 ret = PTR_ERR(priv->hwmon_dev);
555 hid_err(hdev, "hwmon registration failed with %d\n", ret);
556 goto fail_and_close;
557 }
558
559 return 0;
560
561 fail_and_close:
> 562 hid_hw_close(hdev);
563 fail_and_stop:
564 hid_hw_stop(hdev);
565 return ret;
566 }
567
568 static void rog_ryujin_remove(struct hid_device *hdev)
569 {
570 struct rog_ryujin_data *priv = hid_get_drvdata(hdev);
571
572 hwmon_device_unregister(priv->hwmon_dev);
573
> 574 hid_hw_close(hdev);
> 575 hid_hw_stop(hdev);
576 }
577
578 static const struct hid_device_id rog_ryujin_table[] = {
579 { HID_USB_DEVICE(USB_VENDOR_ID_ASUS_ROG, USB_PRODUCT_ID_RYUJIN_AIO) },
580 { }
581 };
582
583 MODULE_DEVICE_TABLE(hid, rog_ryujin_table);
584
585 static struct hid_driver rog_ryujin_driver = {
586 .name = "rog_ryujin",
587 .id_table = rog_ryujin_table,
588 .probe = rog_ryujin_probe,
589 .remove = rog_ryujin_remove,
590 .raw_event = rog_ryujin_raw_event,
591 };
592
593 static int __init rog_ryujin_init(void)
594 {
> 595 return hid_register_driver(&rog_ryujin_driver);
596 }
597
598 static void __exit rog_ryujin_exit(void)
599 {
> 600 hid_unregister_driver(&rog_ryujin_driver);
601 }
602
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-02-03 21:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-03 21:25 [groeck-staging:hwmon-next 34/34] drivers/hwmon/asus_rog_ryujin.c:574: undefined reference to `hid_hw_close' kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox