mbox series

[v9,0/1] platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices

Message ID 20250425210043.342288-1-wse@tuxedocomputers.com
Headers show
Series platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices | expand

Message

Werner Sembach April 25, 2025, 8:53 p.m. UTC
Note that I'm away from my work PC for the next week so expect my next
response the monday after.

v2: - Integrated Armins feedback and fixed kernel test robot warnings.
v3: - Fixed borked subject line of v2.
v4: - Remove unrequired WMI mutex.
    - Move device checking from probe to init.
    - Fix device checking working exactly reverse as it should.
    - Fix null pointer dereference because,
        hdev->driver_data != hdev->dev.driver_data.
v5: - Move everything to subfolder nb04 in preparation for the eventual
        upstreaming of other tuxedo-driver parts.
    - Integrated Ilpos coding style feedback.
    - Use dev_set/get_drvdata() based on Armins feedback.
v6: - Integrated more of Ilpo coding style feedback from a different LKML
        patch-thread (less files, local functions prefixed with a short
        string).
v7: - Integrated more of Ilpos feedback e.g.:
        - Use cleanup.h
        - replace some if cases with a pointer in driver_data
        - coding style oversights
v8: - Integrated more of Ilpos feedback
    - Typo fix spotted by Alok
v9: - Introduce lamp_rgbi_tuple_t to group some values
    - Introduce LAMP_MULTI_UPDATE_REPORT_LAMP_COUNT_MAX to not manually set
      a fixed number at multiple places
    - Move lamp_multi_update_report initialization in
      handle_lamp_range_update_report out of the loop again as a small
      performance optimization as the unused entries do not actually be
      zeroed (I mixed up the spec of this devices wmi interface and the HID
      spec)

Werner Sembach (1):
  platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices

 MAINTAINERS                                 |   6 +
 drivers/platform/x86/Kconfig                |   2 +
 drivers/platform/x86/Makefile               |   3 +
 drivers/platform/x86/tuxedo/Kconfig         |   8 +
 drivers/platform/x86/tuxedo/Makefile        |   8 +
 drivers/platform/x86/tuxedo/nb04/Kconfig    |  15 +
 drivers/platform/x86/tuxedo/nb04/Makefile   |  10 +
 drivers/platform/x86/tuxedo/nb04/wmi_ab.c   | 923 ++++++++++++++++++++
 drivers/platform/x86/tuxedo/nb04/wmi_util.c |  91 ++
 drivers/platform/x86/tuxedo/nb04/wmi_util.h | 109 +++
 10 files changed, 1175 insertions(+)
 create mode 100644 drivers/platform/x86/tuxedo/Kconfig
 create mode 100644 drivers/platform/x86/tuxedo/Makefile
 create mode 100644 drivers/platform/x86/tuxedo/nb04/Kconfig
 create mode 100644 drivers/platform/x86/tuxedo/nb04/Makefile
 create mode 100644 drivers/platform/x86/tuxedo/nb04/wmi_ab.c
 create mode 100644 drivers/platform/x86/tuxedo/nb04/wmi_util.c
 create mode 100644 drivers/platform/x86/tuxedo/nb04/wmi_util.h