Re: [PATCH] platform/x86: system76: Reducing redundant conditional judgments in system76_add()
From: kernel test robot
Date: Tue Aug 20 2024 - 15:20:11 EST
Hi Xi,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.11-rc4 next-20240820]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Xi-Huang/platform-x86-system76-Reducing-redundant-conditional-judgments-in-system76_add/20240820-170328
base: linus/master
patch link: https://lore.kernel.org/r/20240820090239.17771-1-xuiagnh%40gmail.com
patch subject: [PATCH] platform/x86: system76: Reducing redundant conditional judgments in system76_add()
config: x86_64-buildonly-randconfig-001-20240820 (https://download.01.org/0day-ci/archive/20240821/202408210506.TtQpGzMk-lkp@xxxxxxxxx/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240821/202408210506.TtQpGzMk-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/202408210506.TtQpGzMk-lkp@xxxxxxxxx/
All warnings (new ones prefixed by >>):
>> drivers/platform/x86/system76_acpi.c:762:3: warning: add explicit braces to avoid dangling else [-Wdangling-else]
762 | else
| ^
1 warning generated.
vim +762 drivers/platform/x86/system76_acpi.c
673
674 // Add a System76 ACPI device
675 static int system76_add(struct acpi_device *acpi_dev)
676 {
677 struct system76_data *data;
678 int err;
679
680 data = devm_kzalloc(&acpi_dev->dev, sizeof(*data), GFP_KERNEL);
681 if (!data)
682 return -ENOMEM;
683 acpi_dev->driver_data = data;
684 data->acpi_dev = acpi_dev;
685
686 // Some models do not run open EC firmware. Check for an ACPI method
687 // that only exists on open EC to guard functionality specific to it.
688 data->has_open_ec = acpi_has_method(acpi_device_handle(data->acpi_dev), "NFAN");
689
690 err = system76_get(data, "INIT");
691 if (err)
692 return err;
693 data->ap_led.name = "system76_acpi::airplane";
694 data->ap_led.flags = LED_CORE_SUSPENDRESUME;
695 data->ap_led.brightness_get = ap_led_get;
696 data->ap_led.brightness_set_blocking = ap_led_set;
697 data->ap_led.max_brightness = 1;
698 data->ap_led.default_trigger = "rfkill-none";
699 err = devm_led_classdev_register(&acpi_dev->dev, &data->ap_led);
700 if (err)
701 return err;
702
703 data->kb_led.name = "system76_acpi::kbd_backlight";
704 data->kb_led.flags = LED_BRIGHT_HW_CHANGED | LED_CORE_SUSPENDRESUME;
705 data->kb_led.brightness_get = kb_led_get;
706 data->kb_led.brightness_set_blocking = kb_led_set;
707 if (acpi_has_method(acpi_device_handle(data->acpi_dev), "GKBK")) {
708 // Use the new ACPI methods
709 data->kbled_type = system76_get(data, "GKBK");
710
711 switch (data->kbled_type) {
712 case KBLED_NONE:
713 // Nothing to do: Device will not be registered.
714 break;
715 case KBLED_WHITE:
716 data->kb_led.max_brightness = 255;
717 data->kb_toggle_brightness = 72;
718 break;
719 case KBLED_RGB:
720 data->kb_led.max_brightness = 255;
721 data->kb_led.groups = system76_kb_led_color_groups;
722 data->kb_toggle_brightness = 72;
723 data->kb_color = 0xffffff;
724 system76_set(data, "SKBC", data->kb_color);
725 break;
726 }
727 } else {
728 // Use the old ACPI methods
729 if (acpi_has_method(acpi_device_handle(data->acpi_dev), "SKBC")) {
730 data->kbled_type = KBLED_RGB;
731 data->kb_led.max_brightness = 255;
732 data->kb_led.groups = system76_kb_led_color_groups;
733 data->kb_toggle_brightness = 72;
734 data->kb_color = 0xffffff;
735 system76_set(data, "SKBC", data->kb_color);
736 } else {
737 data->kbled_type = KBLED_WHITE;
738 data->kb_led.max_brightness = 5;
739 }
740 }
741
742 if (data->kbled_type != KBLED_NONE) {
743 err = devm_led_classdev_register(&acpi_dev->dev, &data->kb_led);
744 if (err)
745 return err;
746 }
747
748 data->input = devm_input_allocate_device(&acpi_dev->dev);
749 if (!data->input)
750 return -ENOMEM;
751
752 data->input->name = "System76 ACPI Hotkeys";
753 data->input->phys = "system76_acpi/input0";
754 data->input->id.bustype = BUS_HOST;
755 data->input->dev.parent = &acpi_dev->dev;
756 input_set_capability(data->input, EV_KEY, KEY_SCREENLOCK);
757
758 err = input_register_device(data->input);
759 if (err)
760 if (data->has_open_ec)
761 goto free_error;
> 762 else
763 return err;
764
765 if (data->has_open_ec) {
766 err = system76_get_object(data, "NFAN", &data->nfan);
767 if (err)
768 goto free_error;
769
770 err = system76_get_object(data, "NTMP", &data->ntmp);
771 if (err)
772 goto free_error;
773
774 data->therm = devm_hwmon_device_register_with_info(&acpi_dev->dev,
775 "system76_acpi", data, &thermal_chip_info, NULL);
776 err = PTR_ERR_OR_ZERO(data->therm);
777 if (err)
778 goto free_error;
779
780 system76_battery_init();
781 }
782
783 return 0;
784
785 free_error:
786 kfree(data->ntmp);
787 kfree(data->nfan);
788 return err;
789 }
790
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki