linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
@ 2025-06-04 17:36 Mark Pearson
  2025-06-05  5:58 ` Andy Shevchenko
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Mark Pearson @ 2025-06-04 17:36 UTC (permalink / raw)
  To: mpearson-lenovo
  Cc: ilpo.jarvinen, hdegoede, corbet, ikepanhc, hmh, W_Armin,
	andriy.shevchenko, linux-doc, platform-driver-x86, ibm-acpi-devel,
	linux-kernel

Create lenovo subdirectory for holding Lenovo specific drivers.

Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
---
Changes in v2:
 - Rebased to Linus's latest as requested
 - Updated documentation reference
 - Updated MAINTAINER file
 - Removed X86_PLATFORM_DRIVERS_LENOVO as I was worried about
   maintaining backwards compatibility for the distros.
 - Removed 2nd patch in series splitting out hkeys. That will be for
   the future


 .../admin-guide/laptops/thinkpad-acpi.rst     |   3 +-
 MAINTAINERS                                   |  16 +-
 drivers/platform/x86/Kconfig                  | 229 +----------------
 drivers/platform/x86/Makefile                 |  13 +-
 drivers/platform/x86/lenovo/Kconfig           | 234 ++++++++++++++++++
 drivers/platform/x86/lenovo/Makefile          |  15 ++
 .../x86/{ => lenovo}/ideapad-laptop.c         |   0
 .../x86/{ => lenovo}/ideapad-laptop.h         |   0
 .../x86/{ => lenovo}/lenovo-wmi-camera.c      |   0
 .../lenovo-wmi-hotkey-utilities.c             |   0
 .../platform/x86/{ => lenovo}/lenovo-ymc.c    |   0
 .../lenovo-yoga-tab2-pro-1380-fastcharger.c   |   2 +-
 .../x86/{ => lenovo}/lenovo-yogabook.c        |   0
 drivers/platform/x86/{ => lenovo}/think-lmi.c |   2 +-
 drivers/platform/x86/{ => lenovo}/think-lmi.h |   0
 .../platform/x86/{ => lenovo}/thinkpad_acpi.c |   2 +-
 16 files changed, 270 insertions(+), 246 deletions(-)
 create mode 100644 drivers/platform/x86/lenovo/Kconfig
 create mode 100644 drivers/platform/x86/lenovo/Makefile
 rename drivers/platform/x86/{ => lenovo}/ideapad-laptop.c (100%)
 rename drivers/platform/x86/{ => lenovo}/ideapad-laptop.h (100%)
 rename drivers/platform/x86/{ => lenovo}/lenovo-wmi-camera.c (100%)
 rename drivers/platform/x86/{ => lenovo}/lenovo-wmi-hotkey-utilities.c (100%)
 rename drivers/platform/x86/{ => lenovo}/lenovo-ymc.c (100%)
 rename drivers/platform/x86/{ => lenovo}/lenovo-yoga-tab2-pro-1380-fastcharger.c (99%)
 rename drivers/platform/x86/{ => lenovo}/lenovo-yogabook.c (100%)
 rename drivers/platform/x86/{ => lenovo}/think-lmi.c (99%)
 rename drivers/platform/x86/{ => lenovo}/think-lmi.h (100%)
 rename drivers/platform/x86/{ => lenovo}/thinkpad_acpi.c (99%)

diff --git a/Documentation/admin-guide/laptops/thinkpad-acpi.rst b/Documentation/admin-guide/laptops/thinkpad-acpi.rst
index 4ab0fef7d440..30f43f53c2b6 100644
--- a/Documentation/admin-guide/laptops/thinkpad-acpi.rst
+++ b/Documentation/admin-guide/laptops/thinkpad-acpi.rst
@@ -20,7 +20,8 @@ This driver used to be named ibm-acpi until kernel 2.6.21 and release
 0.13-20070314.  It used to be in the drivers/acpi tree, but it was
 moved to the drivers/misc tree and renamed to thinkpad-acpi for kernel
 2.6.22, and release 0.14.  It was moved to drivers/platform/x86 for
-kernel 2.6.29 and release 0.22.
+kernel 2.6.29 and release 0.22. It was moved to drivers/platform/x86/lenovo
+for release 6.16.
 
 The driver is named "thinkpad-acpi".  In some places, like module
 names and log messages, "thinkpad_acpi" is used because of userspace
diff --git a/MAINTAINERS b/MAINTAINERS
index 75da23034e18..f386fce7e5c7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11555,7 +11555,7 @@ M:	Ike Panhc <ikepanhc@gmail.com>
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
 W:	http://launchpad.net/ideapad-laptop
-F:	drivers/platform/x86/ideapad-laptop.c
+F:	drivers/platform/x86/lenovo/ideapad-laptop.c
 
 IDEAPAD LAPTOP SLIDEBAR DRIVER
 M:	Andrey Moiseev <o2g.org.ru@gmail.com>
@@ -13604,11 +13604,17 @@ S:	Maintained
 W:	http://legousb.sourceforge.net/
 F:	drivers/usb/misc/legousbtower.c
 
+LENOVO drivers
+M:	Mark Pearson <mpearson-lenovo@squebb.ca>
+L:	platform-driver-x86@vger.kernel.org
+S:	Maintained
+F:	drivers/platform/x86/lenovo/*
+
 LENOVO WMI HOTKEY UTILITIES DRIVER
 M:	Jackie Dong <xy-jackie@139.com>
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
-F:	drivers/platform/x86/lenovo-wmi-hotkey-utilities.c
+F:	drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c
 
 LETSKETCH HID TABLET DRIVER
 M:	Hans de Goede <hdegoede@redhat.com>
@@ -24538,14 +24544,14 @@ S:	Maintained
 W:	http://ibm-acpi.sourceforge.net
 W:	http://thinkwiki.org/wiki/Ibm-acpi
 T:	git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
-F:	drivers/platform/x86/thinkpad_acpi.c
+F:	drivers/platform/x86/lenovo/thinkpad_acpi.c
 
 THINKPAD LMI DRIVER
-M:	Mark Pearson <markpearson@lenovo.com>
+M:	Mark Pearson <mpearson-lenovo@squebb.ca>
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
 F:	Documentation/ABI/testing/sysfs-class-firmware-attributes
-F:	drivers/platform/x86/think-lmi.?
+F:	drivers/platform/x86/lenovo/think-lmi.?
 
 THP7312 ISP DRIVER
 M:	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index e5cbd58a99f3..43055df44827 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -120,32 +120,6 @@ config GIGABYTE_WMI
 	  To compile this driver as a module, choose M here: the module will
 	  be called gigabyte-wmi.
 
-config YOGABOOK
-	tristate "Lenovo Yoga Book tablet key driver"
-	depends on ACPI_WMI
-	depends on INPUT
-	depends on I2C
-	select LEDS_CLASS
-	select NEW_LEDS
-	help
-	  Say Y here if you want to support the 'Pen' key and keyboard backlight
-	  control on the Lenovo Yoga Book tablets.
-
-	  To compile this driver as a module, choose M here: the module will
-	  be called lenovo-yogabook.
-
-config YT2_1380
-	tristate "Lenovo Yoga Tablet 2 1380 fast charge driver"
-	depends on SERIAL_DEV_BUS
-	depends on EXTCON
-	depends on ACPI
-	help
-	  Say Y here to enable support for the custom fast charging protocol
-	  found on the Lenovo Yoga Tablet 2 1380F / 1380L models.
-
-	  To compile this driver as a module, choose M here: the module will
-	  be called lenovo-yogabook.
-
 config ACERHDF
 	tristate "Acer Aspire One temperature and fan driver"
 	depends on ACPI_EC && THERMAL
@@ -459,43 +433,6 @@ config IBM_RTL
 	 state = 0 (BIOS SMIs on)
 	 state = 1 (BIOS SMIs off)
 
-config IDEAPAD_LAPTOP
-	tristate "Lenovo IdeaPad Laptop Extras"
-	depends on ACPI
-	depends on RFKILL && INPUT
-	depends on SERIO_I8042
-	depends on BACKLIGHT_CLASS_DEVICE
-	depends on ACPI_VIDEO || ACPI_VIDEO = n
-	depends on ACPI_WMI || ACPI_WMI = n
-	select ACPI_PLATFORM_PROFILE
-	select INPUT_SPARSEKMAP
-	select NEW_LEDS
-	select LEDS_CLASS
-	help
-	  This is a driver for Lenovo IdeaPad netbooks contains drivers for
-	  rfkill switch, hotkey, fan control and backlight control.
-
-config LENOVO_WMI_HOTKEY_UTILITIES
-	tristate "Lenovo Hotkey Utility WMI extras driver"
-	depends on ACPI_WMI
-	select NEW_LEDS
-	select LEDS_CLASS
-	imply IDEAPAD_LAPTOP
-	help
-	  This driver provides WMI support for Lenovo customized hotkeys function,
-	  such as LED control for audio/mic mute event for Ideapad, YOGA, XiaoXin,
-	  Gaming, ThinkBook and so on.
-
-config LENOVO_YMC
-	tristate "Lenovo Yoga Tablet Mode Control"
-	depends on ACPI_WMI
-	depends on INPUT
-	depends on IDEAPAD_LAPTOP
-	select INPUT_SPARSEKMAP
-	help
-	  This driver maps the Tablet Mode Control switch to SW_TABLET_MODE input
-	  events for Lenovo Yoga notebooks.
-
 config SENSORS_HDAPS
 	tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
 	depends on INPUT
@@ -514,160 +451,8 @@ config SENSORS_HDAPS
 	  Say Y here if you have an applicable laptop and want to experience
 	  the awesome power of hdaps.
 
-config THINKPAD_ACPI
-	tristate "ThinkPad ACPI Laptop Extras"
-	depends on ACPI_EC
-	depends on ACPI_BATTERY
-	depends on INPUT
-	depends on RFKILL || RFKILL = n
-	depends on ACPI_VIDEO || ACPI_VIDEO = n
-	depends on BACKLIGHT_CLASS_DEVICE
-	depends on I2C
-	depends on DRM
-	select ACPI_PLATFORM_PROFILE
-	select DRM_PRIVACY_SCREEN
-	select HWMON
-	select NVRAM
-	select NEW_LEDS
-	select LEDS_CLASS
-	select INPUT_SPARSEKMAP
-	help
-	  This is a driver for the IBM and Lenovo ThinkPad laptops. It adds
-	  support for Fn-Fx key combinations, Bluetooth control, video
-	  output switching, ThinkLight control, UltraBay eject and more.
-	  For more information about this driver see
-	  <file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and
-	  <http://ibm-acpi.sf.net/> .
-
-	  This driver was formerly known as ibm-acpi.
-
-	  Extra functionality will be available if the rfkill (CONFIG_RFKILL)
-	  and/or ALSA (CONFIG_SND) subsystems are available in the kernel.
-	  Note that if you want ThinkPad-ACPI to be built-in instead of
-	  modular, ALSA and rfkill will also have to be built-in.
-
-	  If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
-
-config THINKPAD_ACPI_ALSA_SUPPORT
-	bool "Console audio control ALSA interface"
-	depends on THINKPAD_ACPI
-	depends on SND
-	depends on SND = y || THINKPAD_ACPI = SND
-	default y
-	help
-	  Enables monitoring of the built-in console audio output control
-	  (headphone and speakers), which is operated by the mute and (in
-	  some ThinkPad models) volume hotkeys.
-
-	  If this option is enabled, ThinkPad-ACPI will export an ALSA card
-	  with a single read-only mixer control, which should be used for
-	  on-screen-display feedback purposes by the Desktop Environment.
-
-	  Optionally, the driver will also allow software control (the
-	  ALSA mixer will be made read-write).  Please refer to the driver
-	  documentation for details.
-
-	  All IBM models have both volume and mute control.  Newer Lenovo
-	  models only have mute control (the volume hotkeys are just normal
-	  keys and volume control is done through the main HDA mixer).
-
-config THINKPAD_ACPI_DEBUGFACILITIES
-	bool "Maintainer debug facilities"
-	depends on THINKPAD_ACPI
-	help
-	  Enables extra stuff in the thinkpad-acpi which is completely useless
-	  for normal use.  Read the driver source to find out what it does.
-
-	  Say N here, unless you were told by a kernel maintainer to do
-	  otherwise.
-
-config THINKPAD_ACPI_DEBUG
-	bool "Verbose debug mode"
-	depends on THINKPAD_ACPI
-	help
-	  Enables extra debugging information, at the expense of a slightly
-	  increase in driver size.
-
-	  If you are not sure, say N here.
-
-config THINKPAD_ACPI_UNSAFE_LEDS
-	bool "Allow control of important LEDs (unsafe)"
-	depends on THINKPAD_ACPI
-	help
-	  Overriding LED state on ThinkPads can mask important
-	  firmware alerts (like critical battery condition), or misled
-	  the user into damaging the hardware (undocking or ejecting
-	  the bay while buses are still active), etc.
-
-	  LED control on the ThinkPad is write-only (with very few
-	  exceptions on very ancient models), which makes it
-	  impossible to know beforehand if important information will
-	  be lost when one changes LED state.
-
-	  Users that know what they are doing can enable this option
-	  and the driver will allow control of every LED, including
-	  the ones on the dock stations.
-
-	  Never enable this option on a distribution kernel.
-
-	  Say N here, unless you are building a kernel for your own
-	  use, and need to control the important firmware LEDs.
-
-config THINKPAD_ACPI_VIDEO
-	bool "Video output control support"
-	depends on THINKPAD_ACPI
-	default y
-	help
-	  Allows the thinkpad_acpi driver to provide an interface to control
-	  the various video output ports.
-
-	  This feature often won't work well, depending on ThinkPad model,
-	  display state, video output devices in use, whether there is a X
-	  server running, phase of the moon, and the current mood of
-	  Schroedinger's cat.  If you can use X.org's RandR to control
-	  your ThinkPad's video output ports instead of this feature,
-	  don't think twice: do it and say N here to save memory and avoid
-	  bad interactions with X.org.
-
-	  NOTE: access to this feature is limited to processes with the
-	  CAP_SYS_ADMIN capability, to avoid local DoS issues in platforms
-	  where it interacts badly with X.org.
-
-	  If you are not sure, say Y here but do try to check if you could
-	  be using X.org RandR instead.
-
-config THINKPAD_ACPI_HOTKEY_POLL
-	bool "Support NVRAM polling for hot keys"
-	depends on THINKPAD_ACPI
-	default y
-	help
-	  Some thinkpad models benefit from NVRAM polling to detect a few of
-	  the hot key press events.  If you know your ThinkPad model does not
-	  need to do NVRAM polling to support any of the hot keys you use,
-	  unselecting this option will save about 1kB of memory.
-
-	  ThinkPads T40 and newer, R52 and newer, and X31 and newer are
-	  unlikely to need NVRAM polling in their latest BIOS versions.
-
-	  NVRAM polling can detect at most the following keys: ThinkPad/Access
-	  IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute,
-	  Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12).
-
-	  If you are not sure, say Y here.  The driver enables polling only if
-	  it is strictly necessary to do so.
-
-config THINKPAD_LMI
-	tristate "Lenovo WMI-based systems management driver"
-	depends on ACPI_WMI
-	select FW_ATTR_CLASS
-	help
-	  This driver allows changing BIOS settings on Lenovo machines whose
-	  BIOS support the WMI interface.
-
-	  To compile this driver as a module, choose M here: the module will
-	  be called think-lmi.
-
 source "drivers/platform/x86/intel/Kconfig"
+source "drivers/platform/x86/lenovo/Kconfig"
 
 config ACPI_QUICKSTART
 	tristate "ACPI Quickstart button driver"
@@ -1078,18 +863,6 @@ config INSPUR_PLATFORM_PROFILE
 	To compile this driver as a module, choose M here: the module
 	will be called inspur-platform-profile.
 
-config LENOVO_WMI_CAMERA
-	tristate "Lenovo WMI Camera Button driver"
-	depends on ACPI_WMI
-	depends on INPUT
-	help
-	  This driver provides support for Lenovo camera button. The Camera
-	  button is a GPIO device. This driver receives ACPI notifications when
-	  the camera button is switched on/off.
-
-	  To compile this driver as a module, choose M here: the module
-	  will be called lenovo-wmi-camera.
-
 config DASHARO_ACPI
 	tristate "Dasharo ACPI Platform Driver"
 	depends on ACPI
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
index abbc2644ff6d..3b2106c148ab 100644
--- a/drivers/platform/x86/Makefile
+++ b/drivers/platform/x86/Makefile
@@ -58,17 +58,12 @@ obj-$(CONFIG_X86_PLATFORM_DRIVERS_HP)	+= hp/
 # Hewlett Packard Enterprise
 obj-$(CONFIG_UV_SYSFS)       += uv_sysfs.o
 
-# IBM Thinkpad and Lenovo
+# IBM Thinkpad
 obj-$(CONFIG_IBM_RTL)		+= ibm_rtl.o
-obj-$(CONFIG_IDEAPAD_LAPTOP)	+= ideapad-laptop.o
-obj-$(CONFIG_LENOVO_WMI_HOTKEY_UTILITIES)	+= lenovo-wmi-hotkey-utilities.o
-obj-$(CONFIG_LENOVO_YMC)	+= lenovo-ymc.o
 obj-$(CONFIG_SENSORS_HDAPS)	+= hdaps.o
-obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
-obj-$(CONFIG_THINKPAD_LMI)	+= think-lmi.o
-obj-$(CONFIG_YOGABOOK)		+= lenovo-yogabook.o
-obj-$(CONFIG_YT2_1380)		+= lenovo-yoga-tab2-pro-1380-fastcharger.o
-obj-$(CONFIG_LENOVO_WMI_CAMERA)	+= lenovo-wmi-camera.o
+
+# Lenovo
+obj-y				+= lenovo/
 
 # Intel
 obj-y				+= intel/
diff --git a/drivers/platform/x86/lenovo/Kconfig b/drivers/platform/x86/lenovo/Kconfig
new file mode 100644
index 000000000000..a4b565283768
--- /dev/null
+++ b/drivers/platform/x86/lenovo/Kconfig
@@ -0,0 +1,234 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Lenovo X86 Platform Specific Drivers
+#
+
+config IDEAPAD_LAPTOP
+	tristate "Lenovo IdeaPad Laptop Extras"
+	depends on ACPI
+	depends on RFKILL && INPUT
+	depends on SERIO_I8042
+	depends on BACKLIGHT_CLASS_DEVICE
+	depends on ACPI_VIDEO || ACPI_VIDEO = n
+	depends on ACPI_WMI || ACPI_WMI = n
+	select ACPI_PLATFORM_PROFILE
+	select INPUT_SPARSEKMAP
+	select NEW_LEDS
+	select LEDS_CLASS
+	help
+	  This is a driver for Lenovo IdeaPad netbooks contains drivers for
+	  rfkill switch, hotkey, fan control and backlight control.
+
+config LENOVO_WMI_HOTKEY_UTILITIES
+	tristate "Lenovo Hotkey Utility WMI extras driver"
+	depends on ACPI_WMI
+	select NEW_LEDS
+	select LEDS_CLASS
+	imply IDEAPAD_LAPTOP
+	help
+	  This driver provides WMI support for Lenovo customized hotkeys function,
+	  such as LED control for audio/mic mute event for Ideapad, YOGA, XiaoXin,
+	  Gaming, ThinkBook and so on.
+
+config LENOVO_WMI_CAMERA
+	tristate "Lenovo WMI Camera Button driver"
+	depends on ACPI_WMI
+	depends on INPUT
+	help
+	  This driver provides support for Lenovo camera button. The Camera
+	  button is a GPIO device. This driver receives ACPI notifications when
+	  the camera button is switched on/off.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called lenovo-wmi-camera.
+
+config LENOVO_YMC
+	tristate "Lenovo Yoga Tablet Mode Control"
+	depends on ACPI_WMI
+	depends on INPUT
+	depends on IDEAPAD_LAPTOP
+	select INPUT_SPARSEKMAP
+	help
+	  This driver maps the Tablet Mode Control switch to SW_TABLET_MODE input
+	  events for Lenovo Yoga notebooks.
+
+config THINKPAD_ACPI
+	tristate "ThinkPad ACPI Laptop Extras"
+	depends on ACPI_EC
+	depends on ACPI_BATTERY
+	depends on INPUT
+	depends on RFKILL || RFKILL = n
+	depends on ACPI_VIDEO || ACPI_VIDEO = n
+	depends on BACKLIGHT_CLASS_DEVICE
+	depends on I2C
+	depends on DRM
+	select ACPI_PLATFORM_PROFILE
+	select DRM_PRIVACY_SCREEN
+	select HWMON
+	select NVRAM
+	select NEW_LEDS
+	select LEDS_CLASS
+	select INPUT_SPARSEKMAP
+	help
+	  This is a driver for the IBM and Lenovo ThinkPad laptops. It adds
+	  support for Fn-Fx key combinations, Bluetooth control, video
+	  output switching, ThinkLight control, UltraBay eject and more.
+	  For more information about this driver see
+	  <file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and
+	  <http://ibm-acpi.sf.net/> .
+
+	  This driver was formerly known as ibm-acpi.
+
+	  Extra functionality will be available if the rfkill (CONFIG_RFKILL)
+	  and/or ALSA (CONFIG_SND) subsystems are available in the kernel.
+	  Note that if you want ThinkPad-ACPI to be built-in instead of
+	  modular, ALSA and rfkill will also have to be built-in.
+
+	  If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
+
+config THINKPAD_ACPI_ALSA_SUPPORT
+	bool "Console audio control ALSA interface"
+	depends on THINKPAD_ACPI
+	depends on SND
+	depends on SND = y || THINKPAD_ACPI = SND
+	default y
+	help
+	  Enables monitoring of the built-in console audio output control
+	  (headphone and speakers), which is operated by the mute and (in
+	  some ThinkPad models) volume hotkeys.
+
+	  If this option is enabled, ThinkPad-ACPI will export an ALSA card
+	  with a single read-only mixer control, which should be used for
+	  on-screen-display feedback purposes by the Desktop Environment.
+
+	  Optionally, the driver will also allow software control (the
+	  ALSA mixer will be made read-write).  Please refer to the driver
+	  documentation for details.
+
+	  All IBM models have both volume and mute control.  Newer Lenovo
+	  models only have mute control (the volume hotkeys are just normal
+	  keys and volume control is done through the main HDA mixer).
+
+config THINKPAD_ACPI_DEBUGFACILITIES
+	bool "Maintainer debug facilities"
+	depends on THINKPAD_ACPI
+	help
+	  Enables extra stuff in the thinkpad-acpi which is completely useless
+	  for normal use.  Read the driver source to find out what it does.
+
+	  Say N here, unless you were told by a kernel maintainer to do
+	  otherwise.
+
+config THINKPAD_ACPI_DEBUG
+	bool "Verbose debug mode"
+	depends on THINKPAD_ACPI
+	help
+	  Enables extra debugging information, at the expense of a slightly
+	  increase in driver size.
+
+	  If you are not sure, say N here.
+
+config THINKPAD_ACPI_UNSAFE_LEDS
+	bool "Allow control of important LEDs (unsafe)"
+	depends on THINKPAD_ACPI
+	help
+	  Overriding LED state on ThinkPads can mask important
+	  firmware alerts (like critical battery condition), or misled
+	  the user into damaging the hardware (undocking or ejecting
+	  the bay while buses are still active), etc.
+
+	  LED control on the ThinkPad is write-only (with very few
+	  exceptions on very ancient models), which makes it
+	  impossible to know beforehand if important information will
+	  be lost when one changes LED state.
+
+	  Users that know what they are doing can enable this option
+	  and the driver will allow control of every LED, including
+	  the ones on the dock stations.
+
+	  Never enable this option on a distribution kernel.
+
+	  Say N here, unless you are building a kernel for your own
+	  use, and need to control the important firmware LEDs.
+
+config THINKPAD_ACPI_VIDEO
+	bool "Video output control support"
+	depends on THINKPAD_ACPI
+	default y
+	help
+	  Allows the thinkpad_acpi driver to provide an interface to control
+	  the various video output ports.
+
+	  This feature often won't work well, depending on ThinkPad model,
+	  display state, video output devices in use, whether there is a X
+	  server running, phase of the moon, and the current mood of
+	  Schroedinger's cat.  If you can use X.org's RandR to control
+	  your ThinkPad's video output ports instead of this feature,
+	  don't think twice: do it and say N here to save memory and avoid
+	  bad interactions with X.org.
+
+	  NOTE: access to this feature is limited to processes with the
+	  CAP_SYS_ADMIN capability, to avoid local DoS issues in platforms
+	  where it interacts badly with X.org.
+
+	  If you are not sure, say Y here but do try to check if you could
+	  be using X.org RandR instead.
+
+config THINKPAD_ACPI_HOTKEY_POLL
+	bool "Support NVRAM polling for hot keys"
+	depends on THINKPAD_ACPI
+	default y
+	help
+	  Some thinkpad models benefit from NVRAM polling to detect a few of
+	  the hot key press events.  If you know your ThinkPad model does not
+	  need to do NVRAM polling to support any of the hot keys you use,
+	  unselecting this option will save about 1kB of memory.
+
+	  ThinkPads T40 and newer, R52 and newer, and X31 and newer are
+	  unlikely to need NVRAM polling in their latest BIOS versions.
+
+	  NVRAM polling can detect at most the following keys: ThinkPad/Access
+	  IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute,
+	  Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12).
+
+	  If you are not sure, say Y here.  The driver enables polling only if
+	  it is strictly necessary to do so.
+
+config THINKPAD_LMI
+	tristate "Lenovo WMI-based systems management driver"
+	depends on ACPI_WMI
+	select FW_ATTR_CLASS
+	help
+	  This driver allows changing BIOS settings on Lenovo machines whose
+	  BIOS support the WMI interface.
+
+	  To compile this driver as a module, choose M here: the module will
+	  be called think-lmi.
+
+config YOGABOOK
+	tristate "Lenovo Yoga Book tablet key driver"
+	depends on ACPI_WMI
+	depends on INPUT
+	depends on I2C
+	select LEDS_CLASS
+	select NEW_LEDS
+	help
+	  Say Y here if you want to support the 'Pen' key and keyboard backlight
+	  control on the Lenovo Yoga Book tablets.
+
+	  To compile this driver as a module, choose M here: the module will
+	  be called lenovo-yogabook.
+
+config YT2_1380
+	tristate "Lenovo Yoga Tablet 2 1380 fast charge driver"
+	depends on SERIAL_DEV_BUS
+	depends on EXTCON
+	depends on ACPI
+	help
+	  Say Y here to enable support for the custom fast charging protocol
+	  found on the Lenovo Yoga Tablet 2 1380F / 1380L models.
+
+	  To compile this driver as a module, choose M here: the module will
+	  be called lenovo-yogabook.
+
+
diff --git a/drivers/platform/x86/lenovo/Makefile b/drivers/platform/x86/lenovo/Makefile
new file mode 100644
index 000000000000..2f858173db86
--- /dev/null
+++ b/drivers/platform/x86/lenovo/Makefile
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for linux/drivers/platform/x86/lenovo
+# Lenovo x86 Platform-Specific Drivers
+#
+obj-$(CONFIG_IDEAPAD_LAPTOP)	+= ideapad-laptop.o
+obj-$(CONFIG_LENOVO_WMI_HOTKEY_UTILITIES)	+= lenovo-wmi-hotkey-utilities.o
+obj-$(CONFIG_LENOVO_YMC)	+= lenovo-ymc.o
+obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
+obj-$(CONFIG_THINKPAD_LMI)	+= think-lmi.o
+obj-$(CONFIG_YOGABOOK)		+= lenovo-yogabook.o
+obj-$(CONFIG_YT2_1380)		+= lenovo-yoga-tab2-pro-1380-fastcharger.o
+obj-$(CONFIG_LENOVO_WMI_CAMERA)	+= lenovo-wmi-camera.o
+
+
diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/lenovo/ideapad-laptop.c
similarity index 100%
rename from drivers/platform/x86/ideapad-laptop.c
rename to drivers/platform/x86/lenovo/ideapad-laptop.c
diff --git a/drivers/platform/x86/ideapad-laptop.h b/drivers/platform/x86/lenovo/ideapad-laptop.h
similarity index 100%
rename from drivers/platform/x86/ideapad-laptop.h
rename to drivers/platform/x86/lenovo/ideapad-laptop.h
diff --git a/drivers/platform/x86/lenovo-wmi-camera.c b/drivers/platform/x86/lenovo/lenovo-wmi-camera.c
similarity index 100%
rename from drivers/platform/x86/lenovo-wmi-camera.c
rename to drivers/platform/x86/lenovo/lenovo-wmi-camera.c
diff --git a/drivers/platform/x86/lenovo-wmi-hotkey-utilities.c b/drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c
similarity index 100%
rename from drivers/platform/x86/lenovo-wmi-hotkey-utilities.c
rename to drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c
diff --git a/drivers/platform/x86/lenovo-ymc.c b/drivers/platform/x86/lenovo/lenovo-ymc.c
similarity index 100%
rename from drivers/platform/x86/lenovo-ymc.c
rename to drivers/platform/x86/lenovo/lenovo-ymc.c
diff --git a/drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c b/drivers/platform/x86/lenovo/lenovo-yoga-tab2-pro-1380-fastcharger.c
similarity index 99%
rename from drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c
rename to drivers/platform/x86/lenovo/lenovo-yoga-tab2-pro-1380-fastcharger.c
index 25933cd018d1..b3fd6a35052a 100644
--- a/drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c
+++ b/drivers/platform/x86/lenovo/lenovo-yoga-tab2-pro-1380-fastcharger.c
@@ -21,7 +21,7 @@
 #include <linux/time.h>
 #include <linux/types.h>
 #include <linux/workqueue.h>
-#include "serdev_helpers.h"
+#include "../serdev_helpers.h"
 
 #define YT2_1380_FC_PDEV_NAME		"lenovo-yoga-tab2-pro-1380-fastcharger"
 #define YT2_1380_FC_SERDEV_CTRL		"serial0"
diff --git a/drivers/platform/x86/lenovo-yogabook.c b/drivers/platform/x86/lenovo/lenovo-yogabook.c
similarity index 100%
rename from drivers/platform/x86/lenovo-yogabook.c
rename to drivers/platform/x86/lenovo/lenovo-yogabook.c
diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/lenovo/think-lmi.c
similarity index 99%
rename from drivers/platform/x86/think-lmi.c
rename to drivers/platform/x86/lenovo/think-lmi.c
index 00b1e7c79a3d..143d9fdedb65 100644
--- a/drivers/platform/x86/think-lmi.c
+++ b/drivers/platform/x86/lenovo/think-lmi.c
@@ -20,7 +20,7 @@
 #include <linux/types.h>
 #include <linux/dmi.h>
 #include <linux/wmi.h>
-#include "firmware_attributes_class.h"
+#include "../firmware_attributes_class.h"
 #include "think-lmi.h"
 
 static bool debug_support;
diff --git a/drivers/platform/x86/think-lmi.h b/drivers/platform/x86/lenovo/think-lmi.h
similarity index 100%
rename from drivers/platform/x86/think-lmi.h
rename to drivers/platform/x86/lenovo/think-lmi.h
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/lenovo/thinkpad_acpi.c
similarity index 99%
rename from drivers/platform/x86/thinkpad_acpi.c
rename to drivers/platform/x86/lenovo/thinkpad_acpi.c
index e7350c9fa3aa..e1c7bd06fa12 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/lenovo/thinkpad_acpi.c
@@ -81,7 +81,7 @@
 #include <sound/core.h>
 #include <sound/initval.h>
 
-#include "dual_accel_detect.h"
+#include "../dual_accel_detect.h"
 
 /* ThinkPad CMOS commands */
 #define TP_CMOS_VOLUME_DOWN	0
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-04 17:36 [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir Mark Pearson
@ 2025-06-05  5:58 ` Andy Shevchenko
  2025-06-05 15:53   ` Mark Pearson
  2025-06-05  8:03 ` Ilpo Järvinen
  2025-06-06 15:58 ` kernel test robot
  2 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2025-06-05  5:58 UTC (permalink / raw)
  To: Mark Pearson
  Cc: ilpo.jarvinen, hdegoede, corbet, ikepanhc, hmh, W_Armin,
	linux-doc, platform-driver-x86, ibm-acpi-devel, linux-kernel

On Wed, Jun 04, 2025 at 01:36:53PM -0400, Mark Pearson wrote:
> Create lenovo subdirectory for holding Lenovo specific drivers.

...

> -F:	drivers/platform/x86/lenovo-wmi-hotkey-utilities.c
> +F:	drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c

You may follow the trick in the Makefile (see intel folder) to avoid repetition
of the folder name in the file names. Note, the modules will be called the
same (assuming no ABI breakages due to renames).

...

> -# IBM Thinkpad and Lenovo
> +# IBM Thinkpad

This is a bit ambiguous now. It's IBM and Lenove for ThinkPad... Perhaps you
should put some kind of date or so? Like

# IBM Thinkpad (before 2007)

(note, I speculated on the year, you may know better what to put there).

...

> +++ b/drivers/platform/x86/lenovo/Makefile
> @@ -0,0 +1,15 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# Makefile for linux/drivers/platform/x86/lenovo
> +# Lenovo x86 Platform-Specific Drivers
> +#
> +obj-$(CONFIG_IDEAPAD_LAPTOP)	+= ideapad-laptop.o
> +obj-$(CONFIG_LENOVO_WMI_HOTKEY_UTILITIES)	+= lenovo-wmi-hotkey-utilities.o
> +obj-$(CONFIG_LENOVO_YMC)	+= lenovo-ymc.o
> +obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
> +obj-$(CONFIG_THINKPAD_LMI)	+= think-lmi.o
> +obj-$(CONFIG_YOGABOOK)		+= lenovo-yogabook.o
> +obj-$(CONFIG_YT2_1380)		+= lenovo-yoga-tab2-pro-1380-fastcharger.o
> +obj-$(CONFIG_LENOVO_WMI_CAMERA)	+= lenovo-wmi-camera.o

> +
> +

No need to have even a single blank line at the end of file. Usually editors
even complain about this.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-04 17:36 [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir Mark Pearson
  2025-06-05  5:58 ` Andy Shevchenko
@ 2025-06-05  8:03 ` Ilpo Järvinen
  2025-06-05 15:56   ` Mark Pearson
  2025-06-06 15:58 ` kernel test robot
  2 siblings, 1 reply; 13+ messages in thread
From: Ilpo Järvinen @ 2025-06-05  8:03 UTC (permalink / raw)
  To: Mark Pearson
  Cc: Hans de Goede, corbet, ikepanhc, hmh, W_Armin, Andy Shevchenko,
	linux-doc, platform-driver-x86, ibm-acpi-devel, LKML

On Wed, 4 Jun 2025, Mark Pearson wrote:

> Create lenovo subdirectory for holding Lenovo specific drivers.
> 
> Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
> ---
> Changes in v2:
>  - Rebased to Linus's latest as requested
>  - Updated documentation reference
>  - Updated MAINTAINER file
>  - Removed X86_PLATFORM_DRIVERS_LENOVO as I was worried about
>    maintaining backwards compatibility for the distros.
>  - Removed 2nd patch in series splitting out hkeys. That will be for
>    the future

+# Lenovo x86 Platform-Specific Drivers
+# Lenovo X86 Platform Specific Drivers

Any possibility to be consistent in formatting that? :-)

Why does the admin guide contain a history book?? It should be guide for 
this version of kernel, not what was there in 2.6.x era ;-D. Please don't 
add to that any more, preferrably remove the history part afterwards in a 
separate change.

Other than those mentioned above, diffing per vs post seemed clean (I 
didn't check where the empty lines got added, Andy seemingly did already 
:-)).

-- 
 i.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-05  5:58 ` Andy Shevchenko
@ 2025-06-05 15:53   ` Mark Pearson
  2025-06-05 19:43     ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Mark Pearson @ 2025-06-05 15:53 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Ilpo Järvinen, Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, linux-doc,
	platform-driver-x86@vger.kernel.org, ibm-acpi-devel, linux-kernel

Hi Andy

On Thu, Jun 5, 2025, at 1:58 AM, Andy Shevchenko wrote:
> On Wed, Jun 04, 2025 at 01:36:53PM -0400, Mark Pearson wrote:
>> Create lenovo subdirectory for holding Lenovo specific drivers.
>
> ...
>
>> -F:	drivers/platform/x86/lenovo-wmi-hotkey-utilities.c
>> +F:	drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c
>
> You may follow the trick in the Makefile (see intel folder) to avoid repetition
> of the folder name in the file names. Note, the modules will be called the
> same (assuming no ABI breakages due to renames).
>
Interesting - I'll have to look at that a bit more.
Any objections if I leave that for a future change?

> ...
>
>> -# IBM Thinkpad and Lenovo
>> +# IBM Thinkpad
>
> This is a bit ambiguous now. It's IBM and Lenove for ThinkPad... Perhaps you
> should put some kind of date or so? Like
>
> # IBM Thinkpad (before 2007)
>
> (note, I speculated on the year, you may know better what to put there).
>

Sure. Realistically the thinkpad_acpi driver still works for the (pretty old now!) IBM Thinkpads so it's a bit messy.

Main reason I did this is those two IBM specific drivers aren't, to my understanding, active for Lenovo devices now, and it seemed wrong to move them. Not sure if anybody really cares though :) I just didn't want to step on any toes.

IBM sold the PC business to Lenovo in 2005, so I can put that date there unless anybody else has concerns.

> ...
>
>> +++ b/drivers/platform/x86/lenovo/Makefile
>> @@ -0,0 +1,15 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +#
>> +# Makefile for linux/drivers/platform/x86/lenovo
>> +# Lenovo x86 Platform-Specific Drivers
>> +#
>> +obj-$(CONFIG_IDEAPAD_LAPTOP)	+= ideapad-laptop.o
>> +obj-$(CONFIG_LENOVO_WMI_HOTKEY_UTILITIES)	+= lenovo-wmi-hotkey-utilities.o
>> +obj-$(CONFIG_LENOVO_YMC)	+= lenovo-ymc.o
>> +obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
>> +obj-$(CONFIG_THINKPAD_LMI)	+= think-lmi.o
>> +obj-$(CONFIG_YOGABOOK)		+= lenovo-yogabook.o
>> +obj-$(CONFIG_YT2_1380)		+= lenovo-yoga-tab2-pro-1380-fastcharger.o
>> +obj-$(CONFIG_LENOVO_WMI_CAMERA)	+= lenovo-wmi-camera.o
>
>> +
>> +
>
> No need to have even a single blank line at the end of file. Usually editors
> even complain about this.
>
My bad - I missed this one. Will fix in v2.

Thanks for the review
Mark

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-05  8:03 ` Ilpo Järvinen
@ 2025-06-05 15:56   ` Mark Pearson
  0 siblings, 0 replies; 13+ messages in thread
From: Mark Pearson @ 2025-06-05 15:56 UTC (permalink / raw)
  To: Ilpo Järvinen
  Cc: Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, Andy Shevchenko,
	linux-doc, platform-driver-x86@vger.kernel.org, ibm-acpi-devel,
	LKML

Hi Ilpo

On Thu, Jun 5, 2025, at 4:03 AM, Ilpo Järvinen wrote:
> On Wed, 4 Jun 2025, Mark Pearson wrote:
>
>> Create lenovo subdirectory for holding Lenovo specific drivers.
>> 
>> Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
>> ---
>> Changes in v2:
>>  - Rebased to Linus's latest as requested
>>  - Updated documentation reference
>>  - Updated MAINTAINER file
>>  - Removed X86_PLATFORM_DRIVERS_LENOVO as I was worried about
>>    maintaining backwards compatibility for the distros.
>>  - Removed 2nd patch in series splitting out hkeys. That will be for
>>    the future
>
> +# Lenovo x86 Platform-Specific Drivers
> +# Lenovo X86 Platform Specific Drivers
>
> Any possibility to be consistent in formatting that? :-)
>
Ooops - yes. I'll fix.

> Why does the admin guide contain a history book?? It should be guide for 
> this version of kernel, not what was there in 2.6.x era ;-D. Please don't 
> add to that any more, preferrably remove the history part afterwards in a 
> separate change.
>

Sure. Will remove that change from the commit.

I was just trying to make sure I updated in all the right places and realised I hadn't checked the documentation files and found that reference.

> Other than those mentioned above, diffing per vs post seemed clean (I 
> didn't check where the empty lines got added, Andy seemingly did already 
> :-)).
>
Thanks for the review.
Mark

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-05 15:53   ` Mark Pearson
@ 2025-06-05 19:43     ` Andy Shevchenko
  2025-06-05 21:03       ` Mark Pearson
  0 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2025-06-05 19:43 UTC (permalink / raw)
  To: Mark Pearson
  Cc: Ilpo Järvinen, Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, linux-doc,
	platform-driver-x86@vger.kernel.org, ibm-acpi-devel, linux-kernel

On Thu, Jun 05, 2025 at 11:53:47AM -0400, Mark Pearson wrote:
> On Thu, Jun 5, 2025, at 1:58 AM, Andy Shevchenko wrote:
> > On Wed, Jun 04, 2025 at 01:36:53PM -0400, Mark Pearson wrote:
> >> Create lenovo subdirectory for holding Lenovo specific drivers.

...

> >> -F:	drivers/platform/x86/lenovo-wmi-hotkey-utilities.c
> >> +F:	drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c
> >
> > You may follow the trick in the Makefile (see intel folder) to avoid repetition
> > of the folder name in the file names. Note, the modules will be called the
> > same (assuming no ABI breakages due to renames).
> >
> Interesting - I'll have to look at that a bit more.
> Any objections if I leave that for a future change?

IF it's nearest future :-)

...

> >> -# IBM Thinkpad and Lenovo
> >> +# IBM Thinkpad
> >
> > This is a bit ambiguous now. It's IBM and Lenove for ThinkPad... Perhaps you
> > should put some kind of date or so? Like
> >
> > # IBM Thinkpad (before 2007)
> >
> > (note, I speculated on the year, you may know better what to put there).
> >
> 
> Sure. Realistically the thinkpad_acpi driver still works for the (pretty old
> now!) IBM Thinkpads so it's a bit messy.
> 
> Main reason I did this is those two IBM specific drivers aren't, to my
> understanding, active for Lenovo devices now, and it seemed wrong to move
> them. Not sure if anybody really cares though :) I just didn't want to step
> on any toes.
> 
> IBM sold the PC business to Lenovo in 2005, so I can put that date there
> unless anybody else has concerns.

Sounds good to me.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-05 19:43     ` Andy Shevchenko
@ 2025-06-05 21:03       ` Mark Pearson
  2025-06-06  8:22         ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Mark Pearson @ 2025-06-05 21:03 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Ilpo Järvinen, Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, linux-doc,
	platform-driver-x86@vger.kernel.org, ibm-acpi-devel, linux-kernel

Hi Andy

On Thu, Jun 5, 2025, at 3:43 PM, Andy Shevchenko wrote:
> On Thu, Jun 05, 2025 at 11:53:47AM -0400, Mark Pearson wrote:
>> On Thu, Jun 5, 2025, at 1:58 AM, Andy Shevchenko wrote:
>> > On Wed, Jun 04, 2025 at 01:36:53PM -0400, Mark Pearson wrote:
>> >> Create lenovo subdirectory for holding Lenovo specific drivers.
>
> ...
>
>> >> -F:	drivers/platform/x86/lenovo-wmi-hotkey-utilities.c
>> >> +F:	drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c
>> >
>> > You may follow the trick in the Makefile (see intel folder) to avoid repetition
>> > of the folder name in the file names. Note, the modules will be called the
>> > same (assuming no ABI breakages due to renames).
>> >
>> Interesting - I'll have to look at that a bit more.
>> Any objections if I leave that for a future change?
>
> IF it's nearest future :-)
>
I got this implemented - I'll include it with v3. It's less complicated than I thought when I initially looked. 
Thanks for the suggestion.

Mark

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-05 21:03       ` Mark Pearson
@ 2025-06-06  8:22         ` Andy Shevchenko
  0 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2025-06-06  8:22 UTC (permalink / raw)
  To: Mark Pearson
  Cc: Ilpo Järvinen, Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, linux-doc,
	platform-driver-x86@vger.kernel.org, ibm-acpi-devel, linux-kernel

On Thu, Jun 05, 2025 at 05:03:15PM -0400, Mark Pearson wrote:
> On Thu, Jun 5, 2025, at 3:43 PM, Andy Shevchenko wrote:
> > On Thu, Jun 05, 2025 at 11:53:47AM -0400, Mark Pearson wrote:
> >> On Thu, Jun 5, 2025, at 1:58 AM, Andy Shevchenko wrote:
> >> > On Wed, Jun 04, 2025 at 01:36:53PM -0400, Mark Pearson wrote:
> >> >> Create lenovo subdirectory for holding Lenovo specific drivers.

...

> >> >> -F:	drivers/platform/x86/lenovo-wmi-hotkey-utilities.c
> >> >> +F:	drivers/platform/x86/lenovo/lenovo-wmi-hotkey-utilities.c
> >> >
> >> > You may follow the trick in the Makefile (see intel folder) to avoid repetition
> >> > of the folder name in the file names. Note, the modules will be called the
> >> > same (assuming no ABI breakages due to renames).
> >> >
> >> Interesting - I'll have to look at that a bit more.
> >> Any objections if I leave that for a future change?
> >
> > IF it's nearest future :-)
> >
> I got this implemented - I'll include it with v3. It's less complicated than
> I thought when I initially looked. 

Thank you!

> Thanks for the suggestion.

You're welcome!

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-04 17:36 [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir Mark Pearson
  2025-06-05  5:58 ` Andy Shevchenko
  2025-06-05  8:03 ` Ilpo Järvinen
@ 2025-06-06 15:58 ` kernel test robot
  2025-06-06 17:30   ` Mark Pearson
  2 siblings, 1 reply; 13+ messages in thread
From: kernel test robot @ 2025-06-06 15:58 UTC (permalink / raw)
  To: Mark Pearson
  Cc: oe-kbuild-all, ilpo.jarvinen, hdegoede, corbet, ikepanhc, hmh,
	W_Armin, andriy.shevchenko, linux-doc, platform-driver-x86,
	ibm-acpi-devel, linux-kernel

Hi Mark,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on next-20250606]
[cannot apply to v6.15]
[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/Mark-Pearson/platform-x86-Move-Lenovo-files-into-lenovo-subdir/20250605-013934
base:   linus/master
patch link:    https://lore.kernel.org/r/20250604173702.3025074-1-mpearson-lenovo%40squebb.ca
patch subject: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
config: x86_64-randconfig-078-20250606 (https://download.01.org/0day-ci/archive/20250606/202506062319.F0IpDxF6-lkp@intel.com/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/20250606/202506062319.F0IpDxF6-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/202506062319.F0IpDxF6-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/platform/x86/lenovo/think-lmi.c: In function 'certificate_store':
>> drivers/platform/x86/lenovo/think-lmi.c:661:47: warning: '%s' directive argument is null [-Wformat-overflow=]
     661 |                 return kasprintf(GFP_KERNEL, "%s,%s", arg1, arg2);
         |                                               ^~
   drivers/platform/x86/lenovo/think-lmi.c:657:50: warning: '%s' directive argument is null [-Wformat-overflow=]
     657 |                 return kasprintf(GFP_KERNEL, "%s,%s,%s",
         |                                                  ^~


vim +661 drivers/platform/x86/lenovo/think-lmi.c

640a5fa50a42b9 drivers/platform/x86/think-lmi.c Mark Pearson 2021-11-17  652  
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  653  static char *cert_command(struct tlmi_pwd_setting *setting, const char *arg1, const char *arg2)
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  654  {
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  655  	/* Prepend with SVC or SMC if multicert supported */
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  656  	if (tlmi_priv.pwdcfg.core.password_mode >= TLMI_PWDCFG_MODE_MULTICERT)
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  657  		return kasprintf(GFP_KERNEL, "%s,%s,%s",
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  658  				 setting == tlmi_priv.pwd_admin ? "SVC" : "SMC",
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  659  				 arg1, arg2);
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  660  	else
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 @661  		return kasprintf(GFP_KERNEL, "%s,%s", arg1, arg2);
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  662  }
5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24  663  

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-06 15:58 ` kernel test robot
@ 2025-06-06 17:30   ` Mark Pearson
  2025-06-06 18:57     ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Mark Pearson @ 2025-06-06 17:30 UTC (permalink / raw)
  To: kernel test robot
  Cc: oe-kbuild-all, Ilpo Järvinen, Hans de Goede, Jonathan Corbet,
	ikepanhc, Henrique de Moraes Holschuh, Armin Wolf,
	Andy Shevchenko, linux-doc, platform-driver-x86@vger.kernel.org,
	ibm-acpi-devel, linux-kernel

Hi,

On Fri, Jun 6, 2025, at 11:58 AM, kernel test robot wrote:
> Hi Mark,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on linus/master]
> [also build test WARNING on next-20250606]
> [cannot apply to v6.15]
> [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/Mark-Pearson/platform-x86-Move-Lenovo-files-into-lenovo-subdir/20250605-013934
> base:   linus/master
> patch link:    
> https://lore.kernel.org/r/20250604173702.3025074-1-mpearson-lenovo%40squebb.ca
> patch subject: [PATCH v2] platform/x86: Move Lenovo files into lenovo 
> subdir
> config: x86_64-randconfig-078-20250606 
> (https://download.01.org/0day-ci/archive/20250606/202506062319.F0IpDxF6-lkp@intel.com/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/20250606/202506062319.F0IpDxF6-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/202506062319.F0IpDxF6-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
>    drivers/platform/x86/lenovo/think-lmi.c: In function 'certificate_store':
>>> drivers/platform/x86/lenovo/think-lmi.c:661:47: warning: '%s' directive argument is null [-Wformat-overflow=]
>      661 |                 return kasprintf(GFP_KERNEL, "%s,%s", arg1, 
> arg2);
>          |                                               ^~
>    drivers/platform/x86/lenovo/think-lmi.c:657:50: warning: '%s' 
> directive argument is null [-Wformat-overflow=]
>      657 |                 return kasprintf(GFP_KERNEL, "%s,%s,%s",
>          |                                                  ^~
>
>
> vim +661 drivers/platform/x86/lenovo/think-lmi.c
>
> 640a5fa50a42b9 drivers/platform/x86/think-lmi.c Mark Pearson 2021-11-17 
>  652  
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  653  static char *cert_command(struct tlmi_pwd_setting *setting, const 
> char *arg1, const char *arg2)
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  654  {
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  655  	/* Prepend with SVC or SMC if multicert supported */
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  656  	if (tlmi_priv.pwdcfg.core.password_mode >= 
> TLMI_PWDCFG_MODE_MULTICERT)
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  657  		return kasprintf(GFP_KERNEL, "%s,%s,%s",
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  658  				 setting == tlmi_priv.pwd_admin ? "SVC" : "SMC",
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  659  				 arg1, arg2);
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  660  	else
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> @661  		return kasprintf(GFP_KERNEL, "%s,%s", arg1, arg2);
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  662  }
> 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
>  663  
>
> -- 
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki

I'm unable to reproduce this issue with a W=1 build and I think it's a false positive.

Am I safe to ignore this report?

Mark

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-06 17:30   ` Mark Pearson
@ 2025-06-06 18:57     ` Andy Shevchenko
  2025-06-06 18:58       ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2025-06-06 18:57 UTC (permalink / raw)
  To: Mark Pearson
  Cc: kernel test robot, oe-kbuild-all, Ilpo Järvinen,
	Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, linux-doc,
	platform-driver-x86@vger.kernel.org, ibm-acpi-devel, linux-kernel

On Fri, Jun 06, 2025 at 01:30:25PM -0400, Mark Pearson wrote:
> On Fri, Jun 6, 2025, at 11:58 AM, kernel test robot wrote:
> > Hi Mark,
> >
> > kernel test robot noticed the following build warnings:
> >
> > [auto build test WARNING on linus/master]
> > [also build test WARNING on next-20250606]
> > [cannot apply to v6.15]
> > [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/Mark-Pearson/platform-x86-Move-Lenovo-files-into-lenovo-subdir/20250605-013934
> > base:   linus/master
> > patch link:    
> > https://lore.kernel.org/r/20250604173702.3025074-1-mpearson-lenovo%40squebb.ca
> > patch subject: [PATCH v2] platform/x86: Move Lenovo files into lenovo 
> > subdir
> > config: x86_64-randconfig-078-20250606 
> > (https://download.01.org/0day-ci/archive/20250606/202506062319.F0IpDxF6-lkp@intel.com/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/20250606/202506062319.F0IpDxF6-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/202506062319.F0IpDxF6-lkp@intel.com/
> >
> > All warnings (new ones prefixed by >>):
> >
> >    drivers/platform/x86/lenovo/think-lmi.c: In function 'certificate_store':
> >>> drivers/platform/x86/lenovo/think-lmi.c:661:47: warning: '%s' directive argument is null [-Wformat-overflow=]
> >      661 |                 return kasprintf(GFP_KERNEL, "%s,%s", arg1, 
> > arg2);
> >          |                                               ^~
> >    drivers/platform/x86/lenovo/think-lmi.c:657:50: warning: '%s' 
> > directive argument is null [-Wformat-overflow=]
> >      657 |                 return kasprintf(GFP_KERNEL, "%s,%s,%s",
> >          |                                                  ^~
> >
> >
> > vim +661 drivers/platform/x86/lenovo/think-lmi.c
> >
> > 640a5fa50a42b9 drivers/platform/x86/think-lmi.c Mark Pearson 2021-11-17 
> >  652  
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  653  static char *cert_command(struct tlmi_pwd_setting *setting, const 
> > char *arg1, const char *arg2)
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  654  {
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  655  	/* Prepend with SVC or SMC if multicert supported */
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  656  	if (tlmi_priv.pwdcfg.core.password_mode >= 
> > TLMI_PWDCFG_MODE_MULTICERT)
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  657  		return kasprintf(GFP_KERNEL, "%s,%s,%s",
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  658  				 setting == tlmi_priv.pwd_admin ? "SVC" : "SMC",
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  659  				 arg1, arg2);
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  660  	else
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> > @661  		return kasprintf(GFP_KERNEL, "%s,%s", arg1, arg2);
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  662  }
> > 5dcb5ef125907d drivers/platform/x86/think-lmi.c Mark Pearson 2024-10-24 
> >  663  
> >
> > -- 
> > 0-DAY CI Kernel Test Service
> > https://github.com/intel/lkp-tests/wiki
> 
> I'm unable to reproduce this issue with a W=1 build

Do you have GCC-12?

> and I think it's a false positive.

I think the problematic line is in certificate_store().
You need to check the value of dmi_get_system_info().
Or make sure the DMI is always selected (depend on DMI
in Kconfig, perhaps).

> Am I safe to ignore this report?

Please, try to fix it.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-06 18:57     ` Andy Shevchenko
@ 2025-06-06 18:58       ` Andy Shevchenko
  2025-06-06 19:30         ` Mark Pearson
  0 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2025-06-06 18:58 UTC (permalink / raw)
  To: Mark Pearson
  Cc: kernel test robot, oe-kbuild-all, Ilpo Järvinen,
	Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, linux-doc,
	platform-driver-x86@vger.kernel.org, ibm-acpi-devel, linux-kernel

On Fri, Jun 06, 2025 at 09:57:17PM +0300, Andy Shevchenko wrote:
> On Fri, Jun 06, 2025 at 01:30:25PM -0400, Mark Pearson wrote:
> > On Fri, Jun 6, 2025, at 11:58 AM, kernel test robot wrote:

...

> > I'm unable to reproduce this issue with a W=1 build
> 
> Do you have GCC-12?

To be more precise you need to have a CONFIG_DMI=n.

> > and I think it's a false positive.
> 
> I think the problematic line is in certificate_store().
> You need to check the value of dmi_get_system_info().
> Or make sure the DMI is always selected (depend on DMI
> in Kconfig, perhaps).
> 
> > Am I safe to ignore this report?
> 
> Please, try to fix it.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir
  2025-06-06 18:58       ` Andy Shevchenko
@ 2025-06-06 19:30         ` Mark Pearson
  0 siblings, 0 replies; 13+ messages in thread
From: Mark Pearson @ 2025-06-06 19:30 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: kernel test robot, oe-kbuild-all, Ilpo Järvinen,
	Hans de Goede, Jonathan Corbet, ikepanhc,
	Henrique de Moraes Holschuh, Armin Wolf, linux-doc,
	platform-driver-x86@vger.kernel.org, ibm-acpi-devel, linux-kernel

Thanks Andy

On Fri, Jun 6, 2025, at 2:58 PM, Andy Shevchenko wrote:
> On Fri, Jun 06, 2025 at 09:57:17PM +0300, Andy Shevchenko wrote:
>> On Fri, Jun 06, 2025 at 01:30:25PM -0400, Mark Pearson wrote:
>> > On Fri, Jun 6, 2025, at 11:58 AM, kernel test robot wrote:
>
> ...
>
>> > I'm unable to reproduce this issue with a W=1 build
>> 
>> Do you have GCC-12?
>
> To be more precise you need to have a CONFIG_DMI=n.
>
>> > and I think it's a false positive.
>> 
>> I think the problematic line is in certificate_store().
>> You need to check the value of dmi_get_system_info().
>> Or make sure the DMI is always selected (depend on DMI
>> in Kconfig, perhaps).
>> 

I think this is already in place, but it's a bit of a tangled nest of Kconfig options and could depend on the architecture. I can't disable it in my current build anyway.

>> > Am I safe to ignore this report?
>> 
>> Please, try to fix it.

Ack. 
I'll add in a check for the dmi_get_system_info returning NULL, and add a depends on DMI.

Thanks for the pointers.

Mark

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-06-06 19:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-04 17:36 [PATCH v2] platform/x86: Move Lenovo files into lenovo subdir Mark Pearson
2025-06-05  5:58 ` Andy Shevchenko
2025-06-05 15:53   ` Mark Pearson
2025-06-05 19:43     ` Andy Shevchenko
2025-06-05 21:03       ` Mark Pearson
2025-06-06  8:22         ` Andy Shevchenko
2025-06-05  8:03 ` Ilpo Järvinen
2025-06-05 15:56   ` Mark Pearson
2025-06-06 15:58 ` kernel test robot
2025-06-06 17:30   ` Mark Pearson
2025-06-06 18:57     ` Andy Shevchenko
2025-06-06 18:58       ` Andy Shevchenko
2025-06-06 19:30         ` Mark Pearson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).