Re: [PATCH] hid-lenovo: Support for TP-X12-TAB-1/2 Kbd Fn keys that use HID raw events.

From: kernel test robot
Date: Fri Oct 04 2024 - 22:36:03 EST


Hi Vishnu,

kernel test robot noticed the following build errors:

[auto build test ERROR on hid/for-next]
[also build test ERROR on linus/master v6.12-rc1 next-20241004]
[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/Vishnu-Sankar/hid-lenovo-Support-for-TP-X12-TAB-1-2-Kbd-Fn-keys-that-use-HID-raw-events/20241003-175338
base: https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-next
patch link: https://lore.kernel.org/r/20241003095124.7611-1-vishnuocv%40gmail.com
patch subject: [PATCH] hid-lenovo: Support for TP-X12-TAB-1/2 Kbd Fn keys that use HID raw events.
config: x86_64-randconfig-r133-20241004 (https://download.01.org/0day-ci/archive/20241005/202410051041.FZvxgBII-lkp@xxxxxxxxx/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/20241005/202410051041.FZvxgBII-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/202410051041.FZvxgBII-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

ld: vmlinux.o: in function `lenovo_raw_event_TP_X12_tab':
>> drivers/hid/hid-lenovo.c:729: undefined reference to `platform_profile_cycle'


vim +729 drivers/hid/hid-lenovo.c

701
702 /* Function to handle Lenovo Thinkpad TAB X12's HID raw inputs for fn keys*/
703 static int lenovo_raw_event_TP_X12_tab(struct hid_device *hdev, u32 raw_data)
704 {
705 struct hid_input *hidinput;
706 struct input_dev *input = NULL;
707
708 /* Iterate through the associated inputs to find the correct input device */
709 list_for_each_entry(hidinput, &hdev->inputs, list) {
710 input = hidinput->input;
711 if (input)
712 break; /* Use the first valid input device */
713 }
714
715 switch (raw_data) {
716 /* fn-F20 being used here for MIC mute*/
717 case TP_X12_RAW_HOTKEY_FN_F4:
718 report_key_event(input, LENOVO_KEY_MICMUTE);
719 return 1;
720 /* Power-mode or Airplane mode will be called based on the device*/
721 case TP_X12_RAW_HOTKEY_FN_F8:
722 /*
723 * TP X12 TAB uses Fn-F8 calls Airplanemode
724 * Whereas TP X12 TAB2 uses Fn-F8 for toggling
725 * Power modes
726 */
727 (hdev->product == USB_DEVICE_ID_LENOVO_X12_TAB) ?
728 report_key_event(input, KEY_RFKILL) :
> 729 platform_profile_cycle();
730 return 1;
731 case TP_X12_RAW_HOTKEY_FN_F10:
732 /* TAB1 has PICKUP Phone and TAB2 use Snipping tool*/
733 (hdev->product == USB_DEVICE_ID_LENOVO_X12_TAB) ?
734 report_key_event(input, KEY_PICKUP_PHONE) :
735 report_key_event(input, KEY_SELECTIVE_SCREENSHOT);
736 return 1;
737 case TP_X12_RAW_HOTKEY_FN_F12:
738 /* BookMarks/STAR key*/
739 report_key_event(input, KEY_BOOKMARKS);
740 return 1;
741 case TP_X12_RAW_HOTKEY_FN_SPACE:
742 /* Keyboard LED backlight toggle*/
743 report_key_event(input, KEY_KBDILLUMTOGGLE);
744 return 1;
745 case TP_X12_RAW_HOTKEY_FN_F7:
746 /* DISPLAY switching when connecting to external monitors*/
747 report_key_event(input, KEY_SWITCHVIDEOMODE);
748 return 1;
749 default:
750 break;
751 }
752 return 0;
753 }
754

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