Hi Julius, kernel test robot noticed the following build warnings: [auto build test WARNING on lee-backlight/for-backlight-next] [also build test WARNING on lee-leds/for-leds-next drm-misc/drm-misc-next drm-tip/drm-tip linus/master v6.4 next-20230630] [cannot apply to lee-backlight/for-backlight-fixes] [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/Julius-Zint/backlight-apple_bl_usb-Add-Apple-Studio-Display-support/20230701-202142 base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight.git for-backlight-next patch link: https://lore.kernel.org/r/20230701120806.11812-2-julius%40zint.sh patch subject: [PATCH 1/1] backlight: apple_bl_usb: Add Apple Studio Display support config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20230701/202307012107.OW4d1gBR-lkp@xxxxxxxxx/config) compiler: m68k-linux-gcc (GCC) 12.3.0 reproduce: (https://download.01.org/0day-ci/archive/20230701/202307012107.OW4d1gBR-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/202307012107.OW4d1gBR-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/video/backlight/apple_bl_usb.c:27:6: warning: no previous prototype for 'init_ctrl_msg_data' [-Wmissing-prototypes] 27 | void init_ctrl_msg_data(struct brightness_ctrl_message_data *msg) | ^~~~~~~~~~~~~~~~~~ >> drivers/video/backlight/apple_bl_usb.c:33:6: warning: no previous prototype for 'set_ctrl_message_brightness' [-Wmissing-prototypes] 33 | void set_ctrl_message_brightness(struct brightness_ctrl_message_data *msg, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/backlight/apple_bl_usb.c:39:5: warning: no previous prototype for 'get_ctrl_message_brightness' [-Wmissing-prototypes] 39 | u16 get_ctrl_message_brightness(struct brightness_ctrl_message_data *msg) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/backlight/apple_bl_usb.c:44:5: warning: no previous prototype for 'apple_bl_usb_usb_get_brightness' [-Wmissing-prototypes] 44 | int apple_bl_usb_usb_get_brightness(struct usb_interface *interface, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/backlight/apple_bl_usb.c:79:5: warning: no previous prototype for 'apple_bl_usb_usb_set_brightness' [-Wmissing-prototypes] 79 | int apple_bl_usb_usb_set_brightness(struct usb_interface *interface, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/backlight/apple_bl_usb.c:113:5: warning: no previous prototype for 'apple_bl_usb_check_fb' [-Wmissing-prototypes] 113 | int apple_bl_usb_check_fb(struct backlight_device *bd, struct fb_info *info) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/video/backlight/apple_bl_usb.c:119:5: warning: no previous prototype for 'apple_bl_usb_get_brightness' [-Wmissing-prototypes] 119 | int apple_bl_usb_get_brightness(struct backlight_device *bl) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/backlight/apple_bl_usb.c:135:5: warning: no previous prototype for 'apple_bl_usb_update_status' [-Wmissing-prototypes] 135 | int apple_bl_usb_update_status(struct backlight_device *bl) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ vim +/init_ctrl_msg_data +27 drivers/video/backlight/apple_bl_usb.c 26 > 27 void init_ctrl_msg_data(struct brightness_ctrl_message_data *msg) 28 { 29 memset(msg, 0, sizeof(struct brightness_ctrl_message_data)); 30 msg->unknown_1 = 0x01; 31 } 32 > 33 void set_ctrl_message_brightness(struct brightness_ctrl_message_data *msg, 34 u16 brightness_value) 35 { 36 msg->brightness = cpu_to_le16(brightness_value + 400); 37 } 38 > 39 u16 get_ctrl_message_brightness(struct brightness_ctrl_message_data *msg) 40 { 41 return le16_to_cpu(msg->brightness) - 400; 42 } 43 > 44 int apple_bl_usb_usb_get_brightness(struct usb_interface *interface, 45 struct usb_device *usb_dev, 46 int *brightness) 47 { 48 int err; 49 u16 interface_nr; 50 int msg_data_size; 51 struct brightness_ctrl_message_data *msg_data; 52 53 msg_data_size = sizeof(struct brightness_ctrl_message_data); 54 msg_data = kzalloc(msg_data_size, GFP_KERNEL); 55 memset(msg_data, 0x00, msg_data_size); 56 interface_nr = interface->cur_altsetting->desc.bInterfaceNumber; 57 58 err = usb_control_msg(usb_dev, 59 usb_rcvctrlpipe(usb_dev, 0), 60 HID_GET_REPORT, 61 USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, 62 /* wValue: HID-Report Type and Report ID */ 63 HID_REPORT_TYPE_FEATURE | 0x01, 64 interface_nr /* wIndex */, 65 msg_data, 66 msg_data_size, 67 HZ); 68 if (err < 0) { 69 dev_err(&interface->dev, 70 "get: usb control message err: %d\n", 71 err); 72 } 73 *brightness = get_ctrl_message_brightness(msg_data); 74 kfree(msg_data); 75 dev_dbg(&interface->dev, "get brightness: %d\n", *brightness); 76 return 0; 77 } 78 > 79 int apple_bl_usb_usb_set_brightness(struct usb_interface *interface, 80 struct usb_device *usb_dev, 81 int brightness) 82 { 83 int err; 84 u16 interface_nr; 85 struct brightness_ctrl_message_data *msg_data; 86 87 msg_data = kzalloc(sizeof(struct brightness_ctrl_message_data), GFP_KERNEL); 88 interface_nr = interface->cur_altsetting->desc.bInterfaceNumber; 89 init_ctrl_msg_data(msg_data); 90 set_ctrl_message_brightness(msg_data, brightness); 91 92 err = usb_control_msg(usb_dev, 93 usb_sndctrlpipe(usb_dev, 0), 94 HID_SET_REPORT, 95 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, 96 /* wValue: HID-Report Type and Report ID */ 97 HID_REPORT_TYPE_FEATURE | 0x01, 98 interface_nr /* wIndex */, 99 msg_data, 100 sizeof(struct brightness_ctrl_message_data), 101 HZ); 102 kfree(msg_data); 103 if (err < 0) { 104 dev_err(&interface->dev, 105 "set: usb control message err: %d\n", 106 err); 107 return err; 108 } 109 dev_dbg(&interface->dev, "set brightness: %d\n", brightness); 110 return 0; 111 } 112 > 113 int apple_bl_usb_check_fb(struct backlight_device *bd, struct fb_info *info) 114 { 115 dev_info(&bd->dev, "check fb\n"); 116 return 0; 117 } 118 > 119 int apple_bl_usb_get_brightness(struct backlight_device *bl) 120 { 121 int ret; 122 struct apple_bl_usb_data *data; 123 int hw_brightness; 124 125 data = bl_get_data(bl); 126 ret = apple_bl_usb_usb_get_brightness(data->usb_interface, 127 data->usb_dev, 128 &hw_brightness); 129 if (!ret) 130 ret = hw_brightness; 131 132 return ret; 133 } 134 > 135 int apple_bl_usb_update_status(struct backlight_device *bl) 136 { 137 int err; 138 struct apple_bl_usb_data *data; 139 140 data = bl_get_data(bl); 141 err = apple_bl_usb_usb_set_brightness(data->usb_interface, 142 data->usb_dev, 143 bl->props.brightness); 144 return err; 145 } 146 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki