Re: [PATCH v4 09/11] HID: asus: add basic RGB support
From: Antheas Kapenekakis
Date: Tue Mar 25 2025 - 04:53:12 EST
My email is not doing too well it seems. It is not just yours Luke.
Hopefully my shared host does not bite me for abusing the IP
On Tue, 25 Mar 2025 at 07:34, kernel test robot <lkp@xxxxxxxxx> wrote:
>
> Hi Antheas,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on 38fec10eb60d687e30c8c6b5420d86e8149f7557]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Antheas-Kapenekakis/HID-asus-refactor-init-sequence-per-spec/20250325-051852
> base: 38fec10eb60d687e30c8c6b5420d86e8149f7557
> patch link: https://lore.kernel.org/r/20250324210151.6042-10-lkml%40antheas.dev
> patch subject: [PATCH v4 09/11] HID: asus: add basic RGB support
> config: riscv-randconfig-002-20250325 (https://download.01.org/0day-ci/archive/20250325/202503251316.lPXAIXIV-lkp@xxxxxxxxx/config)
> compiler: riscv64-linux-gcc (GCC) 14.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250325/202503251316.lPXAIXIV-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
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202503251316.lPXAIXIV-lkp@xxxxxxxxx/
>
> All errors (new ones prefixed by >>):
>
> riscv64-linux-ld: drivers/hid/hid-asus.o: in function `asus_kbd_register_leds':
> >> drivers/hid/hid-asus.c:676:(.text+0x23f8): undefined reference to `devm_led_classdev_multicolor_register_ext'
>
Since I have been getting this error by test robot often, what is the
canonical way to check that KConfig is correct before sending patches?
I will try to fix the KConfig and send it later today
Antheas
>
> vim +676 drivers/hid/hid-asus.c
>
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 645
> af22a610bc3850 Carlo Caione 2017-04-06 646 static int asus_kbd_register_leds(struct hid_device *hdev)
> af22a610bc3850 Carlo Caione 2017-04-06 647 {
> af22a610bc3850 Carlo Caione 2017-04-06 648 struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
> af22a610bc3850 Carlo Caione 2017-04-06 649 unsigned char kbd_func;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 650 struct asus_kbd_leds *leds;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 651 bool no_led;
> af22a610bc3850 Carlo Caione 2017-04-06 652 int ret;
> af22a610bc3850 Carlo Caione 2017-04-06 653
> 2c82a7b20f7b7a Luke D. Jones 2024-04-16 654 ret = asus_kbd_init(hdev, FEATURE_KBD_REPORT_ID);
> 2c82a7b20f7b7a Luke D. Jones 2024-04-16 655 if (ret < 0)
> 2c82a7b20f7b7a Luke D. Jones 2024-04-16 656 return ret;
> 2c82a7b20f7b7a Luke D. Jones 2024-04-16 657
> 3ebfeb18b44e01 Antheas Kapenekakis 2025-03-24 658 /* Get keyboard functions */
> 3ebfeb18b44e01 Antheas Kapenekakis 2025-03-24 659 ret = asus_kbd_get_functions(hdev, &kbd_func, FEATURE_KBD_REPORT_ID);
> b92b80246e0626 Luke D Jones 2020-10-27 660 if (ret < 0)
> b92b80246e0626 Luke D Jones 2020-10-27 661 return ret;
> 53078a736fbc60 Luke D. Jones 2025-01-11 662
> 53078a736fbc60 Luke D. Jones 2025-01-11 663 if (dmi_match(DMI_PRODUCT_FAMILY, "ProArt P16")) {
> 53078a736fbc60 Luke D. Jones 2025-01-11 664 ret = asus_kbd_disable_oobe(hdev);
> 53078a736fbc60 Luke D. Jones 2025-01-11 665 if (ret < 0)
> 53078a736fbc60 Luke D. Jones 2025-01-11 666 return ret;
> 53078a736fbc60 Luke D. Jones 2025-01-11 667 }
> af22a610bc3850 Carlo Caione 2017-04-06 668
> af22a610bc3850 Carlo Caione 2017-04-06 669 /* Check for backlight support */
> af22a610bc3850 Carlo Caione 2017-04-06 670 if (!(kbd_func & SUPPORT_KBD_BACKLIGHT))
> af22a610bc3850 Carlo Caione 2017-04-06 671 return -ENODEV;
> af22a610bc3850 Carlo Caione 2017-04-06 672
> af22a610bc3850 Carlo Caione 2017-04-06 673 drvdata->kbd_backlight = devm_kzalloc(&hdev->dev,
> af22a610bc3850 Carlo Caione 2017-04-06 674 sizeof(struct asus_kbd_leds),
> af22a610bc3850 Carlo Caione 2017-04-06 675 GFP_KERNEL);
> af22a610bc3850 Carlo Caione 2017-04-06 @676 if (!drvdata->kbd_backlight)
> af22a610bc3850 Carlo Caione 2017-04-06 677 return -ENOMEM;
> af22a610bc3850 Carlo Caione 2017-04-06 678
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 679 leds = drvdata->kbd_backlight;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 680 leds->removed = false;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 681 leds->brightness = 3;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 682 leds->hdev = hdev;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 683 leds->listener.brightness_set = asus_kbd_listener_set;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 684
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 685 leds->rgb_colors[0] = 0;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 686 leds->rgb_colors[1] = 0;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 687 leds->rgb_colors[2] = 0;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 688 leds->rgb_init = true;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 689 leds->rgb_set = false;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 690 leds->mc_led.led_cdev.name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 691 "asus-%s:rgb:peripheral",
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 692 strlen(hdev->uniq) ?
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 693 hdev->uniq : dev_name(&hdev->dev));
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 694 leds->mc_led.led_cdev.flags = LED_BRIGHT_HW_CHANGED;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 695 leds->mc_led.led_cdev.max_brightness = 3,
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 696 leds->mc_led.led_cdev.brightness_set = asus_kbd_brightness_set,
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 697 leds->mc_led.led_cdev.brightness_get = asus_kbd_brightness_get,
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 698 leds->mc_led.subled_info = leds->subled_info,
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 699 leds->mc_led.num_colors = ARRAY_SIZE(leds->subled_info),
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 700 leds->subled_info[0].color_index = LED_COLOR_ID_RED;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 701 leds->subled_info[1].color_index = LED_COLOR_ID_GREEN;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 702 leds->subled_info[2].color_index = LED_COLOR_ID_BLUE;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 703
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 704 INIT_WORK(&drvdata->kbd_backlight->work, asus_kbd_work);
> 315c537068a13f Pietro Borrello 2023-02-12 705 spin_lock_init(&drvdata->kbd_backlight->lock);
> af22a610bc3850 Carlo Caione 2017-04-06 706
> d37db2009c913c Antheas Kapenekakis 2025-03-24 707 ret = asus_hid_register_listener(&drvdata->kbd_backlight->listener);
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 708 no_led = !!ret;
> d37db2009c913c Antheas Kapenekakis 2025-03-24 709
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 710 if (drvdata->quirks & QUIRK_ROG_NKEY_RGB) {
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 711 ret = devm_led_classdev_multicolor_register(
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 712 &hdev->dev, &leds->mc_led);
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 713 if (!ret)
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 714 leds->rgb_registered = true;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 715 no_led &= !!ret;
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 716 }
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 717
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 718 if (no_led) {
> af22a610bc3850 Carlo Caione 2017-04-06 719 /* No need to have this still around */
> af22a610bc3850 Carlo Caione 2017-04-06 720 devm_kfree(&hdev->dev, drvdata->kbd_backlight);
> af22a610bc3850 Carlo Caione 2017-04-06 721 }
> af22a610bc3850 Carlo Caione 2017-04-06 722
> 312a522531f6e5 Antheas Kapenekakis 2025-03-24 723 return no_led ? -ENODEV : 0;
> af22a610bc3850 Carlo Caione 2017-04-06 724 }
> af22a610bc3850 Carlo Caione 2017-04-06 725
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki