From: kernel test robot <lkp@intel.com>
To: "Werner Sembach" <wse@tuxedocomputers.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
bentiss@kernel.org, dri-devel@lists.freedesktop.org,
jelle@vdwaa.nl, jikos@kernel.org, lee@kernel.org,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-leds@vger.kernel.org, miguel.ojeda.sandonis@gmail.com,
ojeda@kernel.org, onitake@gmail.com, pavel@ucw.cz,
platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH 1/1] platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices
Date: Fri, 27 Sep 2024 16:59:51 +0800 [thread overview]
Message-ID: <202409271601.cdUpq1Zd-lkp@intel.com> (raw)
In-Reply-To: <20240926174405.110748-2-wse@tuxedocomputers.com>
Hi Werner,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on drm-tip/drm-tip lee-leds/for-leds-next linus/master v6.11 next-20240927]
[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/Werner-Sembach/platform-x86-tuxedo-Add-virtual-LampArray-for-TUXEDO-NB04-devices/20240927-014628
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link: https://lore.kernel.org/r/20240926174405.110748-2-wse%40tuxedocomputers.com
patch subject: [PATCH 1/1] platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices
config: i386-buildonly-randconfig-001-20240927 (https://download.01.org/0day-ci/archive/20240927/202409271601.cdUpq1Zd-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240927/202409271601.cdUpq1Zd-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/202409271601.cdUpq1Zd-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/platform/x86/tuxedo/tuxedo_nb04_wmi_ab_virtual_lamp_array.c:601:11: warning: variable 'lamp_count' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
601 | else if (driver_data->keyboard_type == WMI_AB_GET_DEVICE_STATUS_KEYBOARD_LAYOUT_ISO)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/platform/x86/tuxedo/tuxedo_nb04_wmi_ab_virtual_lamp_array.c:604:28: note: uninitialized use occurs here
604 | if (report->lamp_id_end > lamp_count - 1) {
| ^~~~~~~~~~
drivers/platform/x86/tuxedo/tuxedo_nb04_wmi_ab_virtual_lamp_array.c:601:7: note: remove the 'if' if its condition is always true
601 | else if (driver_data->keyboard_type == WMI_AB_GET_DEVICE_STATUS_KEYBOARD_LAYOUT_ISO)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
602 | lamp_count = sizeof(sirius_16_ansii_kbl_mapping);
drivers/platform/x86/tuxedo/tuxedo_nb04_wmi_ab_virtual_lamp_array.c:587:20: note: initialize the variable 'lamp_count' to silence this warning
587 | uint8_t lamp_count;
| ^
| = '\0'
>> drivers/platform/x86/tuxedo/tuxedo_nb04_wmi_ab_virtual_lamp_array.c:670:24: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
669 | pr_debug("Recived report: rtype: %u, reqtype: %u, reportnum: %u, len: %lu buf:\n", rtype,
| ~~~
| %zu
670 | reqtype, reportnum, len);
| ^~~
include/linux/printk.h:595:38: note: expanded from macro 'pr_debug'
595 | no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
| ~~~ ^~~~~~~~~~~
include/linux/printk.h:133:18: note: expanded from macro 'no_printk'
133 | _printk(fmt, ##__VA_ARGS__); \
| ~~~ ^~~~~~~~~~~
2 warnings generated.
vim +601 drivers/platform/x86/tuxedo/tuxedo_nb04_wmi_ab_virtual_lamp_array.c
581
582 static int handle_lamp_range_update_report(struct hid_device *hdev,
583 struct lamp_range_update_report_t *report)
584 {
585 int ret;
586 struct driver_data_t *driver_data = hdev->driver_data;
587 uint8_t lamp_count;
588 struct lamp_multi_update_report_t lamp_multi_update_report = {
589 .report_id = LAMP_MULTI_UPDATE_REPORT_ID
590 };
591
592 // Catching missformated lamp_range_update_report and fail silently according to
593 // "HID Usage Tables v1.5"
594 if (report->lamp_id_start > report->lamp_id_end) {
595 pr_debug("lamp_id_start > lamp_id_end in lamp_range_update_report. Skippng whole report!\n");
596 return sizeof(struct lamp_range_update_report_t);
597 }
598
599 if (driver_data->keyboard_type == WMI_AB_GET_DEVICE_STATUS_KEYBOARD_LAYOUT_ANSII)
600 lamp_count = sizeof(sirius_16_ansii_kbl_mapping);
> 601 else if (driver_data->keyboard_type == WMI_AB_GET_DEVICE_STATUS_KEYBOARD_LAYOUT_ISO)
602 lamp_count = sizeof(sirius_16_ansii_kbl_mapping);
603
604 if (report->lamp_id_end > lamp_count - 1) {
605 pr_debug("Out of bounds lamp_id_* in lamp_range_update_report. Skippng whole report!\n");
606 return sizeof(struct lamp_range_update_report_t);
607 }
608
609 // Break handle_lamp_range_update_report call down to multiple
610 // handle_lamp_multi_update_report calls to easily ensure that mixing
611 // handle_lamp_range_update_report and handle_lamp_multi_update_report
612 // does not break things.
613 for (int i = report->lamp_id_start; i < report->lamp_id_end + 1; i = i + 8) {
614 lamp_multi_update_report.lamp_count = MIN(report->lamp_id_end + 1 - i, 8);
615 if (i + lamp_multi_update_report.lamp_count == report->lamp_id_end + 1)
616 lamp_multi_update_report.lamp_update_flags |=
617 LAMP_UPDATE_FLAGS_LAMP_UPDATE_COMPLETE;
618
619 for (int j = 0; j < lamp_multi_update_report.lamp_count; ++j) {
620 lamp_multi_update_report.lamp_id[j] = i + j;
621 lamp_multi_update_report.update_channels[j].red =
622 report->red_update_channel;
623 lamp_multi_update_report.update_channels[j].green =
624 report->green_update_channel;
625 lamp_multi_update_report.update_channels[j].blue =
626 report->blue_update_channel;
627 lamp_multi_update_report.update_channels[j].intensity =
628 report->intensity_update_channel;
629 }
630
631 ret = handle_lamp_multi_update_report(hdev, &lamp_multi_update_report);
632 if (ret < 0)
633 return ret;
634 else if (ret != sizeof(struct lamp_multi_update_report_t))
635 return -EIO;
636 }
637
638 return sizeof(struct lamp_range_update_report_t);
639 }
640
641
642 struct __packed lamp_array_control_report_t {
643 const uint8_t report_id;
644 uint8_t autonomous_mode;
645 };
646
647 static int handle_lamp_array_control_report(struct hid_device __always_unused *hdev,
648 struct lamp_array_control_report_t __always_unused *rep)
649 {
650 // The keyboard firmware doesn't have any built in effects or controls
651 // so this is a NOOP.
652 // According to the HID Documentation (HID Usage Tables v1.5) this
653 // function is optional and can be removed from the HID Report
654 // Descriptor, but it should first be confirmed that userspace respects
655 // this possibility too. The Microsoft MacroPad reference implementation
656 // (https://github.com/microsoft/RP2040MacropadHidSample 1d6c3ad)
657 // already deviates from the spec at another point, see
658 // handle_lamp_*_update_report.
659
660 return sizeof(struct lamp_array_control_report_t);
661 }
662
663
664 static int ll_raw_request(struct hid_device *hdev, unsigned char reportnum, __u8 *buf, size_t len,
665 unsigned char rtype, int reqtype)
666 {
667 int ret;
668
669 pr_debug("Recived report: rtype: %u, reqtype: %u, reportnum: %u, len: %lu buf:\n", rtype,
> 670 reqtype, reportnum, len);
671 print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, buf, len);
672
673 ret = -EINVAL;
674 if (rtype == HID_FEATURE_REPORT) {
675 if (reqtype == HID_REQ_GET_REPORT) {
676 if (reportnum == LAMP_ARRAY_ATTRIBUTES_REPORT_ID
677 && len == sizeof(struct lamp_array_attributes_report_t))
678 ret = handle_lamp_array_attributes_report(
679 hdev, (struct lamp_array_attributes_report_t *)buf);
680 else if (reportnum == LAMP_ATTRIBUTES_RESPONSE_REPORT_ID
681 && len == sizeof(struct lamp_attributes_response_report_t))
682 ret = handle_lamp_attributes_response_report(
683 hdev, (struct lamp_attributes_response_report_t *)buf);
684 } else if (reqtype == HID_REQ_SET_REPORT) {
685 if (reportnum == LAMP_ATTRIBUTES_REQUEST_REPORT_ID
686 && len == sizeof(struct lamp_attributes_request_report_t))
687 ret = handle_lamp_attributes_request_report(
688 hdev, (struct lamp_attributes_request_report_t *)buf);
689 else if (reportnum == LAMP_MULTI_UPDATE_REPORT_ID
690 && len == sizeof(struct lamp_multi_update_report_t))
691 ret = handle_lamp_multi_update_report(
692 hdev, (struct lamp_multi_update_report_t *)buf);
693 else if (reportnum == LAMP_RANGE_UPDATE_REPORT_ID
694 && len == sizeof(struct lamp_range_update_report_t))
695 ret = handle_lamp_range_update_report(
696 hdev, (struct lamp_range_update_report_t *)buf);
697 else if (reportnum == LAMP_ARRAY_CONTROL_REPORT_ID
698 && len == sizeof(struct lamp_array_control_report_t))
699 ret = handle_lamp_array_control_report(
700 hdev, (struct lamp_array_control_report_t *)buf);
701 }
702 }
703
704 return ret;
705 }
706
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-09-27 9:00 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-26 17:44 [PATCH 0/1] platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 Werner Sembach
2024-09-26 17:44 ` [PATCH 1/1] platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices Werner Sembach
2024-09-26 18:39 ` Armin Wolf
2024-09-27 6:59 ` Werner Sembach
2024-09-27 11:24 ` Werner Sembach
2024-09-27 17:18 ` Armin Wolf
2024-09-28 7:40 ` Werner Sembach
2024-09-27 17:15 ` Armin Wolf
2024-09-28 7:36 ` Werner Sembach
2024-09-27 8:59 ` kernel test robot [this message]
2024-09-27 9:20 ` kernel test robot
2024-09-27 12:18 ` kernel test robot
2024-09-27 21:01 ` Pavel Machek
2024-09-27 22:21 ` Armin Wolf
2024-09-28 7:27 ` Benjamin Tissoires
2024-09-28 8:23 ` Werner Sembach
2024-09-28 10:05 ` Benjamin Tissoires
2024-09-30 15:35 ` Werner Sembach
2024-09-30 16:15 ` Benjamin Tissoires
2024-09-30 16:35 ` Werner Sembach
2024-09-30 17:06 ` Benjamin Tissoires
2024-10-01 12:21 ` Werner Sembach
2024-10-01 12:23 ` Werner Sembach
2024-10-01 12:28 ` Werner Sembach
2024-10-01 13:41 ` Benjamin Tissoires
2024-10-01 16:45 ` Armin Wolf
2024-10-01 19:32 ` Werner Sembach
2024-10-02 8:42 ` Benjamin Tissoires
2024-10-02 9:27 ` Armin Wolf
2024-10-03 16:01 ` Benjamin Tissoires
2024-10-01 19:18 ` Werner Sembach
2024-10-02 8:31 ` Benjamin Tissoires
2024-10-07 17:57 ` Werner Sembach
2024-10-08 9:53 ` Benjamin Tissoires
2024-10-08 10:45 ` Werner Sembach
2024-10-08 12:18 ` Benjamin Tissoires
2024-10-08 14:51 ` Werner Sembach
2024-10-08 15:21 ` Benjamin Tissoires
2024-10-09 9:51 ` Werner Sembach
2024-10-09 9:55 ` Werner Sembach
2024-10-11 12:14 ` Armin Wolf
2024-10-11 15:26 ` Pavel Machek
2024-10-21 20:26 ` Armin Wolf
2024-10-22 7:58 ` Hans de Goede
2024-10-22 8:51 ` Benjamin Tissoires
2024-10-22 9:37 ` Pavel Machek
2024-10-22 15:02 ` Armin Wolf
2024-10-23 17:54 ` Werner Sembach
2024-10-22 9:47 ` Pavel Machek
2024-10-22 15:18 ` Armin Wolf
2024-10-22 19:15 ` Pavel Machek
2024-10-23 7:03 ` Armin Wolf
2024-10-23 17:14 ` Werner Sembach
2024-10-23 17:47 ` Pavel Machek
2024-10-23 16:38 ` Werner Sembach
2024-10-22 9:05 ` Benjamin Tissoires
2024-10-23 17:23 ` Werner Sembach
2024-10-01 21:03 ` Pavel Machek
2024-10-02 8:13 ` Benjamin Tissoires
2024-10-02 9:53 ` Pavel Machek
2024-10-02 10:21 ` Benjamin Tissoires
2024-10-03 10:59 ` Pavel Machek
2024-10-03 12:54 ` Benjamin Tissoires
2024-10-11 15:23 ` Pavel Machek
2024-09-28 8:09 ` Werner Sembach
2024-10-01 20:47 ` Pavel Machek
2024-09-28 7:55 ` Werner Sembach
2024-09-27 16:08 ` [PATCH 0/1] platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 Benjamin Tissoires
2024-09-27 21:03 ` Pavel Machek
2024-09-28 7:31 ` Werner Sembach
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202409271601.cdUpq1Zd-lkp@intel.com \
--to=lkp@intel.com \
--cc=bentiss@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jelle@vdwaa.nl \
--cc=jikos@kernel.org \
--cc=lee@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=ojeda@kernel.org \
--cc=onitake@gmail.com \
--cc=pavel@ucw.cz \
--cc=platform-driver-x86@vger.kernel.org \
--cc=wse@tuxedocomputers.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.