Commit 61f91425 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'platform-drivers-x86-v5.11-1' of...

Merge tag 'platform-drivers-x86-v5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform driver updates from Hans de Goede:
 "Highlights:

   - New driver for changing BIOS settings from within Linux on Dell
     devices. This introduces a new generic sysfs API for this. Lenovo
     is working on also supporting this API on their devices

   - New Intel PMT telemetry and crashlog drivers

   - Support for SW_TABLET_MODE reporting for the acer-wmi and intel-hid
     drivers

   - Preparation work for improving support for Microsoft Surface
     hardware

   - Various fixes / improvements / quirks for the panasonic-laptop and
     others"

* tag 'platform-drivers-x86-v5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (81 commits)
  platform/x86: ISST: Mark mmio_range_devid_0 and mmio_range_devid_1 with static keyword
  platform/x86: intel-hid: add Rocket Lake ACPI device ID
  x86/platform: classmate-laptop: add WiFi media button
  platform/x86: mlx-platform: Fix item counter assignment for MSN2700/ComEx system
  platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx systems
  tools/power/x86/intel-speed-select: Update version for v5.11
  tools/power/x86/intel-speed-select: Account for missing sysfs for die_id
  tools/power/x86/intel-speed-select: Read TRL from mailbox
  platform/x86: intel-hid: Do not create SW_TABLET_MODE input-dev when a KIOX010A ACPI dev is present
  platform/x86: intel-hid: Add alternative method to enable switches
  platform/x86: intel-hid: Add support for SW_TABLET_MODE
  platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on some HP x360 models
  platform/x86: ISST: Change PCI device macros
  platform/x86: ISST: Allow configurable offset range
  platform/x86: ISST: Check for unaligned mmio address
  acer-wireless: send an EV_SYN/SYN_REPORT between state changes
  platform/x86: dell-wmi-sysman: work around for BIOS bug
  platform/x86: mlx-platform: remove an unused variable
  platform/x86: thinkpad_acpi: remove trailing semicolon in macro definition
  platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init
  ...
parents 0f974581 0cd3f561
Loading
Loading
Loading
Loading
+258 −0
Original line number Diff line number Diff line
What:		/sys/class/firmware-attributes/*/attributes/*/
Date:		February 2021
KernelVersion:	5.11
Contact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
		Mario Limonciello <mario.limonciello@dell.com>,
		Prasanth KSR <prasanth.ksr@dell.com>
Description:
		A sysfs interface for systems management software to enable
		configuration capability on supported systems.  This directory
		exposes interfaces for interacting with configuration options.

		Unless otherwise specified in an attribute description all attributes are optional
		and will accept UTF-8 input.

		type:
		    A file that can be read to obtain the type of attribute.
		    This attribute is mandatory.

		The following are known types:

			- enumeration: a set of pre-defined valid values
			- integer: a range of numerical values
			- string

		All attribute types support the following values:

		current_value:
				A file that can be read to obtain the current
				value of the <attr>.

				This file can also be written to in order to update the value of a
				<attr>

				This attribute is mandatory.

		default_value:
				A file that can be read to obtain the default
				value of the <attr>

		display_name:
				A file that can be read to obtain a user friendly
				description of the at <attr>

		display_name_language_code:
						A file that can be read to obtain
						the IETF language tag corresponding to the
						"display_name" of the <attr>

		"enumeration"-type specific properties:

		possible_values:
					A file that can be read to obtain the possible
					values of the <attr>. Values are separated using
					semi-colon (``;``).

		"integer"-type specific properties:

		min_value:
				A file that can be read to obtain the lower
				bound value of the <attr>

		max_value:
				A file that can be read to obtain the upper
				bound value of the <attr>

		scalar_increment:
					A file that can be read to obtain the scalar value used for
					increments of current_value this attribute accepts.

		"string"-type specific properties:

		max_length:
				A file that can be read to obtain the maximum
				length value of the <attr>

		min_length:
				A file that can be read to obtain the minimum
				length value of the <attr>

		Dell specific class extensions
		------------------------------

		On Dell systems the following additional attributes are available:

		dell_modifier:
				A file that can be read to obtain attribute-level
				dependency rule. It says an attribute X will become read-only or
				suppressed, if/if-not attribute Y is configured.

				modifier rules can be in following format::

				    [ReadOnlyIf:<attribute>=<value>]
				    [ReadOnlyIfNot:<attribute>=<value>]
				    [SuppressIf:<attribute>=<value>]
				    [SuppressIfNot:<attribute>=<value>]

				For example::

				    AutoOnFri/dell_modifier has value,
					    [SuppressIfNot:AutoOn=SelectDays]

				This means AutoOnFri will be suppressed in BIOS setup if AutoOn
				attribute is not "SelectDays" and its value will not be effective
				through sysfs until this rule is met.

		Enumeration attributes also support the following:

		dell_value_modifier:
					A file that can be read to obtain value-level dependency.
					This file is similar to dell_modifier but here,	an
					attribute's current value will be forcefully changed based
					dependent attributes value.

					dell_value_modifier rules can be in following format::

					    <value>[ForceIf:<attribute>=<value>]
					    <value>[ForceIfNot:<attribute>=<value>]

					For example:

					    LegacyOrom/dell_value_modifier has value:
						    Disabled[ForceIf:SecureBoot=Enabled]

					This means LegacyOrom's current value will be forced to
					"Disabled" in BIOS setup if SecureBoot is Enabled and its
					value will not be effective through sysfs until this rule is
					met.

What:		/sys/class/firmware-attributes/*/authentication/
Date:		February 2021
KernelVersion:	5.11
Contact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
		Mario Limonciello <mario.limonciello@dell.com>,
		Prasanth KSR <prasanth.ksr@dell.com>
Description:
		Devices support various authentication mechanisms which can be exposed
		as a separate configuration object.

		For example a "BIOS Admin" password and "System" Password can be set,
		reset or cleared using these attributes.

		- An "Admin" password is used for preventing modification to the BIOS
		  settings.
		- A "System" password is required to boot a machine.

		Change in any of these two authentication methods will also generate an
		uevent KOBJ_CHANGE.

		is_enabled:
					A file that can be read to obtain a 0/1 flag to see if
					<attr> authentication is enabled.
					This attribute is mandatory.

		role:
					The type of authentication used.
					This attribute is mandatory.

					Known types:
						bios-admin:
							Representing BIOS administrator password
						power-on:
							Representing a password required to use
							the system

		mechanism:
					The means of authentication.  This attribute is mandatory.
					Only supported type currently is "password".

		max_password_length:
					A file that can be read to obtain the
					maximum length of the Password

		min_password_length:
					A file that can be read to obtain the
					minimum length of the Password

		current_password:
					A write only value used for privileged access such as
					setting	attributes when a system or admin password is set
					or resetting to a new password

					This attribute is mandatory when mechanism == "password".

		new_password:
					A write only value that when used in tandem with
					current_password will reset a system or admin password.

		Note, password management is session specific. If Admin password is set,
		same password must be written into current_password file (required for
		password-validation) and must be cleared once the session is over.
		For example::

			echo "password" > current_password
			echo "disabled" > TouchScreen/current_value
			echo "" > current_password

		Drivers may emit a CHANGE uevent when a password is set or unset
		userspace may check it again.

		On Dell systems, if Admin password is set, then all BIOS attributes
		require password validation.

What:		/sys/class/firmware-attributes/*/attributes/pending_reboot
Date:		February 2021
KernelVersion:	5.11
Contact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
		Mario Limonciello <mario.limonciello@dell.com>,
		Prasanth KSR <prasanth.ksr@dell.com>
Description:
		A read-only attribute reads 1 if a reboot is necessary to apply
		pending BIOS attribute changes. Also, an uevent_KOBJ_CHANGE is
		generated when it changes to 1.

			==	=========================================
			0	All BIOS attributes setting are current
			1	A reboot is necessary to get pending BIOS
			        attribute changes applied
			==	=========================================

		Note, userspace applications need to follow below steps for efficient
		BIOS management,

		1.	Check if admin password is set. If yes, follow session method for
			password management as briefed under authentication section above.
		2.	Before setting any attribute, check if it has any modifiers
			or value_modifiers. If yes, incorporate them and then modify
			attribute.

		Drivers may emit a CHANGE uevent when this value changes and userspace
		may check it again.

What:		/sys/class/firmware-attributes/*/attributes/reset_bios
Date:		February 2021
KernelVersion:	5.11
Contact:	Divya Bharathi <Divya.Bharathi@Dell.com>,
		Mario Limonciello <mario.limonciello@dell.com>,
		Prasanth KSR <prasanth.ksr@dell.com>
Description:
		This attribute can be used to reset the BIOS Configuration.
		Specifically, it tells which type of reset BIOS configuration is being
		requested on the host.

		Reading from it returns a list of supported options encoded as:

			- 'builtinsafe' (Built in safe configuration profile)
			- 'lastknowngood' (Last known good saved configuration profile)
			- 'factory' (Default factory settings configuration profile)
			- 'custom' (Custom saved configuration profile)

		The currently selected option is printed in square brackets as
		shown below::

		    # echo "factory" > /sys/class/firmware-attributes/*/device/attributes/reset_bios
		    # cat /sys/class/firmware-attributes/*/device/attributes/reset_bios
		    # builtinsafe lastknowngood [factory] custom

		Note that any changes to this attribute requires a reboot
		for changes to take effect.
+119 −0
Original line number Diff line number Diff line
What:		/sys/class/intel_pmt/
Date:		October 2020
KernelVersion:	5.10
Contact:	David Box <david.e.box@linux.intel.com>
Description:
		The intel_pmt/ class directory contains information for
		devices that expose hardware telemetry using Intel Platform
		Monitoring Technology (PMT)

What:		/sys/class/intel_pmt/telem<x>
Date:		October 2020
KernelVersion:	5.10
Contact:	David Box <david.e.box@linux.intel.com>
Description:
		The telem<x> directory contains files describing an instance of
		a PMT telemetry device that exposes hardware telemetry. Each
		telem<x> directory has an associated telem file. This file
		may be opened and mapped or read to access the telemetry space
		of the device. The register layout of the telemetry space is
		determined from an XML file that matches the PCI device id and
		GUID for the device.

What:		/sys/class/intel_pmt/telem<x>/telem
Date:		October 2020
KernelVersion:	5.10
Contact:	David Box <david.e.box@linux.intel.com>
Description:
		(RO) The telemetry data for this telemetry device. This file
		may be mapped or read to obtain the data.

What:		/sys/class/intel_pmt/telem<x>/guid
Date:		October 2020
KernelVersion:	5.10
Contact:	David Box <david.e.box@linux.intel.com>
Description:
		(RO) The GUID for this telemetry device. The GUID identifies
		the version of the XML file for the parent device that is to
		be used to get the register layout.

What:		/sys/class/intel_pmt/telem<x>/size
Date:		October 2020
KernelVersion:	5.10
Contact:	David Box <david.e.box@linux.intel.com>
Description:
		(RO) The size of telemetry region in bytes that corresponds to
		the mapping size for the telem file.

What:		/sys/class/intel_pmt/telem<x>/offset
Date:		October 2020
KernelVersion:	5.10
Contact:	David Box <david.e.box@linux.intel.com>
Description:
		(RO) The offset of telemetry region in bytes that corresponds to
		the mapping for the telem file.

What:		/sys/class/intel_pmt/crashlog<x>
Date:		October 2020
KernelVersion:	5.10
Contact:	Alexander Duyck <alexander.h.duyck@linux.intel.com>
Description:
		The crashlog<x> directory contains files for configuring an
		instance of a PMT crashlog device that can perform crash data
		recording. Each crashlog<x> device has an associated crashlog
		file. This file can be opened and mapped or read to access the
		resulting crashlog buffer. The register layout for the buffer
		can be determined from an XML file of specified GUID for the
		parent device.

What:		/sys/class/intel_pmt/crashlog<x>/crashlog
Date:		October 2020
KernelVersion:	5.10
Contact:	David Box <david.e.box@linux.intel.com>
Description:
		(RO) The crashlog buffer for this crashlog device. This file
		may be mapped or read to obtain the data.

What:		/sys/class/intel_pmt/crashlog<x>/guid
Date:		October 2020
KernelVersion:	5.10
Contact:	Alexander Duyck <alexander.h.duyck@linux.intel.com>
Description:
		(RO) The GUID for this crashlog device. The GUID identifies the
		version of the XML file for the parent device that should be
		used to determine the register layout.

What:		/sys/class/intel_pmt/crashlog<x>/size
Date:		October 2020
KernelVersion:	5.10
Contact:	Alexander Duyck <alexander.h.duyck@linux.intel.com>
Description:
		(RO) The length of the result buffer in bytes that corresponds
		to the size for the crashlog buffer.

What:		/sys/class/intel_pmt/crashlog<x>/offset
Date:		October 2020
KernelVersion:	5.10
Contact:	Alexander Duyck <alexander.h.duyck@linux.intel.com>
Description:
		(RO) The offset of the buffer in bytes that corresponds
		to the mapping for the crashlog device.

What:		/sys/class/intel_pmt/crashlog<x>/enable
Date:		October 2020
KernelVersion:	5.10
Contact:	Alexander Duyck <alexander.h.duyck@linux.intel.com>
Description:
		(RW) Boolean value controlling if the crashlog functionality
		is enabled for the crashlog device.

What:		/sys/class/intel_pmt/crashlog<x>/trigger
Date:		October 2020
KernelVersion:	5.10
Contact:	Alexander Duyck <alexander.h.duyck@linux.intel.com>
Description:
		(RW) Boolean value controlling the triggering of the crashlog
		device node. When read it provides data on if the crashlog has
		been triggered. When written to it can be used to either clear
		the current trigger by writing false, or to trigger a new
		event if the trigger is not currently set.
+38 −2
Original line number Diff line number Diff line
@@ -929,6 +929,12 @@ L: linux-i2c@vger.kernel.org
S:	Maintained
F:	drivers/i2c/busses/i2c-amd-mp2*
AMD PMC DRIVER
M:	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
L:	platform-driver-x86@vger.kernel.org
S:	Maintained
F:	drivers/platform/x86/amd-pmc.*
AMD POWERPLAY
M:	Evan Quan <evan.quan@amd.com>
L:	amd-gfx@lists.freedesktop.org
@@ -5015,6 +5021,15 @@ M: Mario Limonciello <mario.limonciello@dell.com>
S:	Maintained
F:	drivers/platform/x86/dell-wmi-descriptor.c
DELL WMI SYSMAN DRIVER
M:	Divya Bharathi <divya.bharathi@dell.com>
M:	Mario Limonciello <mario.limonciello@dell.com>
M:	Prasanth Ksr <prasanth.ksr@dell.com>
L:	platform-driver-x86@vger.kernel.org
S:	Maintained
F:	Documentation/ABI/testing/sysfs-class-firmware-attributes
F:	drivers/platform/x86/dell-wmi-sysman/
DELL WMI NOTIFICATIONS DRIVER
M:	Matthew Garrett <mjg59@srcf.ucam.org>
M:	Pali Rohár <pali@kernel.org>
@@ -9077,6 +9092,12 @@ F: drivers/mfd/intel_soc_pmic*
F:	include/linux/mfd/intel_msic.h
F:	include/linux/mfd/intel_soc_pmic*
INTEL PMT DRIVER
M:	"David E. Box" <david.e.box@linux.intel.com>
S:	Maintained
F:	drivers/mfd/intel_pmt.c
F:	drivers/platform/x86/intel_pmt_*
INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
M:	Stanislav Yakovlev <stas.yakovlev@gmail.com>
L:	linux-wireless@vger.kernel.org
@@ -11735,11 +11756,26 @@ F: drivers/scsi/smartpqi/smartpqi*.[ch]
F:	include/linux/cciss*.h
F:	include/uapi/linux/cciss*.h
MICROSOFT SURFACE GPE LID SUPPORT DRIVER
M:	Maximilian Luz <luzmaximilian@gmail.com>
L:	platform-driver-x86@vger.kernel.org
S:	Maintained
F:	drivers/platform/surface/surface_gpe.c
MICROSOFT SURFACE HARDWARE PLATFORM SUPPORT
M:	Hans de Goede <hdegoede@redhat.com>
M:	Mark Gross <mgross@linux.intel.com>
M:	Maximilian Luz <luzmaximilian@gmail.com>
L:	platform-driver-x86@vger.kernel.org
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
F:	drivers/platform/surface/
MICROSOFT SURFACE PRO 3 BUTTON DRIVER
M:	Chen Yu <yu.c.chen@intel.com>
L:	platform-driver-x86@vger.kernel.org
S:	Supported
F:	drivers/platform/x86/surfacepro3_button.c
F:	drivers/platform/surface/surfacepro3_button.c
MICROTEK X6 SCANNER
M:	Oliver Neukum <oliver@neukum.org>
@@ -13320,7 +13356,7 @@ F: include/trace/events/page_pool.h
F:	net/core/page_pool.c
PANASONIC LAPTOP ACPI EXTRAS DRIVER
M:	Harald Welte <laforge@gnumonks.org>
M:	Kenneth Chan <kenneth.t.chan@gmail.com>
L:	platform-driver-x86@vger.kernel.org
S:	Maintained
F:	drivers/platform/x86/panasonic-laptop.c
+10 −0
Original line number Diff line number Diff line
@@ -682,6 +682,16 @@ config MFD_INTEL_PMC_BXT
	  Register and P-unit access. In addition this creates devices
	  for iTCO watchdog and telemetry that are part of the PMC.

config MFD_INTEL_PMT
	tristate "Intel Platform Monitoring Technology (PMT) support"
	depends on PCI
	select MFD_CORE
	help
	  The Intel Platform Monitoring Technology (PMT) is an interface that
	  provides access to hardware monitor registers. This driver supports
	  Telemetry, Watcher, and Crashlog PMT capabilities/devices for
	  platforms starting from Tiger Lake.

config MFD_IPAQ_MICRO
	bool "Atmel Micro ASIC (iPAQ h3100/h3600/h3700) Support"
	depends on SA1100_H3100 || SA1100_H3600
+1 −0
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@ obj-$(CONFIG_MFD_INTEL_LPSS_PCI) += intel-lpss-pci.o
obj-$(CONFIG_MFD_INTEL_LPSS_ACPI)	+= intel-lpss-acpi.o
obj-$(CONFIG_MFD_INTEL_MSIC)	+= intel_msic.o
obj-$(CONFIG_MFD_INTEL_PMC_BXT)	+= intel_pmc_bxt.o
obj-$(CONFIG_MFD_INTEL_PMT)	+= intel_pmt.o
obj-$(CONFIG_MFD_PALMAS)	+= palmas.o
obj-$(CONFIG_MFD_VIPERBOARD)    += viperboard.o
obj-$(CONFIG_MFD_RC5T583)	+= rc5t583.o rc5t583-irq.o
Loading