Commit 5f084819 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'platform-drivers-x86-v6.0-1' of...

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

Pull x86 platform driver updates from Hans de Goede:

 - Microsoft Surface:
     - SSAM hot unplug support
     - Surface Pro 8 keyboard cover support
     - Tablet mode switch support for Surface Pro 8 and Surface Laptop
       Studio

 - thinkpad_acpi:
     - AMD Automatice Mode Transitions (AMT) support

 - Mellanox:
     - Vulcan chassis COMe NVSwitch management support
     - XH3000 support

 - New generic/shared Intel P2SB (Primary to Sideband) support

 - Lots of small cleanups

 - Various small bugfixes

 - Various new hardware ids / quirks additions

* tag 'platform-drivers-x86-v6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (105 commits)
  platform/x86/intel/vsec: Fix wrong type for local status variables
  platform/x86: p2sb: Move out of X86_PLATFORM_DEVICES dependency
  platform/x86: pmc_atom: Fix comment typo
  platform/surface: gpe: Add support for 13" Intel version of Surface Laptop 4
  platform/olpc: Fix uninitialized data in debugfs write
  platform/mellanox: mlxreg-lc: Fix error flow and extend verbosity
  platform/x86: pmc_atom: Match all Lex BayTrail boards with critclk_systems DMI table
  platform/x86: sony-laptop: Remove useless comparisons in sony_pic_read_possible_resource()
  tools/power/x86/intel-speed-select: Remove unneeded semicolon
  tools/power/x86/intel-speed-select: Fix off by one check
  platform/surface: tabletsw: Fix __le32 integer access
  Documentation/ABI: Add new attributes for mlxreg-io sysfs interfaces
  Documentation/ABI: mlxreg-io: Fix contact info
  platform/mellanox: mlxreg-io: Add locking for io operations
  platform/x86: mlx-platform: Add COME board revision register
  platform/x86: mlx-platform: Add support for new system XH3000
  platform/x86: mlx-platform: Introduce support for COMe NVSwitch management module for Vulcan chassis
  platform/x86: mlx-platform: Add support for systems equipped with two ASICs
  platform/x86: mlx-platform: Add cosmetic changes for alignment
  platform/x86: mlx-platform: Make activation of some drivers conditional
  ...
parents 5bb3bf24 3d46d784
Loading
Loading
Loading
Loading
+60 −21
Original line number Diff line number Diff line
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic_health
Date:		June 2018
KernelVersion:	4.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file shows ASIC health status. The possible values are:
		0 - health failed, 2 - health OK, 3 - ASIC in booting state.

@@ -11,7 +11,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld1_version
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld2_version
Date:		June 2018
KernelVersion:	4.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show with which CPLD versions have been burned
		on carrier and switch boards.

@@ -20,7 +20,7 @@ Description: These files show with which CPLD versions have been burned
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/fan_dir
Date:		December 2018
KernelVersion:	5.0
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file shows the system fans direction:
		forward direction - relevant bit is set 0;
		reversed direction - relevant bit is set 1.
@@ -30,7 +30,7 @@ Description: This file shows the system fans direction:
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version
Date:		November 2018
KernelVersion:	5.0
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show with which CPLD versions have been burned
		on LED or Gearbox board.

@@ -39,7 +39,7 @@ Description: These files show with which CPLD versions have been burned
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/jtag_enable
Date:		November 2018
KernelVersion:	5.0
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files enable and disable the access to the JTAG domain.
		By default access to the JTAG domain is disabled.

@@ -48,7 +48,7 @@ Description: These files enable and disable the access to the JTAG domain.
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/select_iio
Date:		June 2018
KernelVersion:	4.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file allows iio devices selection.

		Attribute select_iio can be written with 0 or with 1. It
@@ -62,7 +62,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/psu1_on
		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pwr_down
Date:		June 2018
KernelVersion:	4.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files allow asserting system power cycling, switching
		power supply units on and off and system's main power domain
		shutdown.
@@ -89,7 +89,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_short_pb
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sw_reset
Date:		June 2018
KernelVersion:	4.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show the system reset cause, as following: power
		auxiliary outage or power refresh, ASIC thermal shutdown, halt,
		hotswap, watchdog, firmware reset, long press power button,
@@ -106,7 +106,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_system
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_voltmon_upgrade_fail
Date:		November 2018
KernelVersion:	5.0
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show the system reset cause, as following: ComEx
		power fail, reset from ComEx, system platform reset, reset
		due to voltage monitor devices upgrade failure,
@@ -119,7 +119,7 @@ Description: These files show the system reset cause, as following: ComEx
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version
Date:		November 2018
KernelVersion:	5.0
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show with which CPLD versions have been burned
		on LED board.

@@ -133,7 +133,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sff_wd
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_swb_wd
Date:		June 2019
KernelVersion:	5.3
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show the system reset cause, as following:
		COMEX thermal shutdown; wathchdog power off or reset was derived
		by one of the next components: COMEX, switch board or by Small Form
@@ -148,7 +148,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config1
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config2
Date:		January 2020
KernelVersion:	5.6
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show system static topology identification
		like system's static I2C topology, number and type of FPGA
		devices within the system and so on.
@@ -161,7 +161,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_soc
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sw_pwr_off
Date:		January 2020
KernelVersion:	5.6
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show the system reset causes, as following: reset
		due to AC power failure, reset invoked from software by
		assertion reset signal through CPLD. reset caused by signal
@@ -173,7 +173,7 @@ Description: These files show the system reset causes, as following: reset
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pcie_asic_reset_dis
Date:		January 2020
KernelVersion:	5.6
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file allows to retain ASIC up during PCIe root complex
		reset, when attribute is set 1.

@@ -182,7 +182,7 @@ Description: This file allows to retain ASIC up during PCIe root complex
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/vpd_wp
Date:		January 2020
KernelVersion:	5.6
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file allows to overwrite system VPD hardware write
		protection when attribute is set 1.

@@ -191,7 +191,7 @@ Description: This file allows to overwrite system VPD hardware write
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/voltreg_update_status
Date:		January 2020
KernelVersion:	5.6
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file exposes the configuration update status of burnable
		voltage regulator devices. The status values are as following:
		0 - OK; 1 - CRC failure; 2 = I2C failure; 3 - in progress.
@@ -201,7 +201,7 @@ Description: This file exposes the configuration update status of burnable
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/ufm_version
Date:		January 2020
KernelVersion:	5.6
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file exposes the firmware version of burnable voltage
		regulator devices.

@@ -217,7 +217,7 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version_min
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld4_version_min
Date:		July 2020
KernelVersion:	5.9
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files show with which CPLD part numbers and minor
		versions have been burned CPLD devices equipped on a
		system.
@@ -471,7 +471,7 @@ Description: These files provide the maximum powered required for line card
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/phy_reset
Date:		May 2022
KernelVersion:	5.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file allows to reset PHY 88E1548 when attribute is set 0
		due to some abnormal PHY behavior.
		Expected behavior:
@@ -483,7 +483,7 @@ Description: This file allows to reset PHY 88E1548 when attribute is set 0
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/mac_reset
Date:		May 2022
KernelVersion:	5.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file allows to reset ASIC MT52132 when attribute is set 0
		due to some abnormal ASIC behavior.
		Expected behavior:
@@ -495,7 +495,7 @@ Description: This file allows to reset ASIC MT52132 when attribute is set 0
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/qsfp_pwr_good
Date:		May 2022
KernelVersion:	5.19
Contact:	Vadim Pasternak <vadimpmellanox.com>
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file shows QSFP ports power status. The value is set to 0
		when one of any QSFP ports is plugged. The value is set to 1 when
		there are no any QSFP ports are plugged.
@@ -503,3 +503,42 @@ Description: This file shows QSFP ports power status. The value is set to 0
		0 - Power good, 1 - Not power good.

		The files are read only.

What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic2_health
Date:		July 2022
KernelVersion:	5.20
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file shows 2-nd ASIC health status. The possible values are:
		0 - health failed, 2 - health OK, 3 - ASIC in booting state.

		The file is read only.

What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic_reset
What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic2_reset
Date:		July 2022
KernelVersion:	5.20
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	These files allow to each of ASICs by writing 1.

		The files are write only.


What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/comm_chnl_ready
Date:		July 2022
KernelVersion:	5.20
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	This file is used to indicate remote end (for example BMC) that system
	        host CPU is ready for sending telemetry data to remote end.
		For indication the file should be written 1.

		The file is write only.

What:		/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config3
Date:		January 2020
KernelVersion:	5.6
Contact:	Vadim Pasternak <vadimp@nvidia.com>
Description:	The file indicates COME module hardware configuration.
		The value is pushed by hardware through GPIO pins.
		The purpose is to expose some minor BOM changes for the same system SKU.

		The file is read only.
+57 −0
Original line number Diff line number Diff line
What:		/sys/bus/surface_aggregator/devices/01:0e:01:00:01/state
Date:		July 2022
KernelVersion:	5.20
Contact:	Maximilian Luz <luzmaximilian@gmail.com>
Description:
		This attribute returns a string with the current type-cover
		or device posture, as indicated by the embedded controller.
		Currently returned posture states are:

		- "disconnected": The type-cover has been disconnected.

		- "closed": The type-cover has been folded closed and lies on
		  top of the display.

		- "laptop": The type-cover is open and in laptop-mode, i.e.,
		  ready for normal use.

		- "folded-canvas": The type-cover has been folded back
		  part-ways, but does not lie flush with the back side of the
		  device. In general, this means that the kick-stand is used
		  and extended atop of the cover.

		- "folded-back": The type cover has been fully folded back and
		  lies flush with the back side of the device.

		- "<unknown>": The current state is unknown to the driver, for
		  example due to newer as-of-yet unsupported hardware.

		New states may be introduced with new hardware. Users therefore
		must not rely on this list of states being exhaustive and
		gracefully handle unknown states.

What:		/sys/bus/surface_aggregator/devices/01:26:01:00:01/state
Date:		July 2022
KernelVersion:	5.20
Contact:	Maximilian Luz <luzmaximilian@gmail.com>
Description:
		This attribute returns a string with the current device posture, as indicated by the embedded controller. Currently
		returned posture states are:

		- "closed": The lid of the device is closed.

		- "laptop": The lid of the device is opened and the device
		  operates as a normal laptop.

		- "slate": The screen covers the keyboard or has been flipped
		  back and the device operates mainly based on touch input.

		- "tablet": The device operates as tablet and exclusively
		  relies on touch input (or external peripherals).

		- "<unknown>": The current state is unknown to the driver, for
		  example due to newer as-of-yet unsupported hardware.

		New states may be introduced with new hardware. Users therefore
		must not rely on this list of states being exhaustive and
		gracefully handle unknown states.
+5 −1
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
.. |SSAM_DEVICE| replace:: :c:func:`SSAM_DEVICE`
.. |ssam_notifier_register| replace:: :c:func:`ssam_notifier_register`
.. |ssam_notifier_unregister| replace:: :c:func:`ssam_notifier_unregister`
.. |ssam_device_notifier_register| replace:: :c:func:`ssam_device_notifier_register`
.. |ssam_device_notifier_unregister| replace:: :c:func:`ssam_device_notifier_unregister`
.. |ssam_request_sync| replace:: :c:func:`ssam_request_sync`
.. |ssam_event_mask| replace:: :c:type:`enum ssam_event_mask <ssam_event_mask>`

@@ -312,7 +314,9 @@ Handling Events
To receive events from the SAM EC, an event notifier must be registered for
the desired event via |ssam_notifier_register|. The notifier must be
unregistered via |ssam_notifier_unregister| once it is not required any
more.
more. For |ssam_device| type clients, the |ssam_device_notifier_register| and
|ssam_device_notifier_unregister| wrappers should be preferred as they properly
handle hot-removal of client devices.

Event notifiers are registered by providing (at minimum) a callback to call
in case an event has been received, the registry specifying how the event
+14 −2
Original line number Diff line number Diff line
@@ -1007,7 +1007,7 @@ 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.*
F:	drivers/platform/x86/amd/pmc.c
AMD HSMP DRIVER
M:	Naveen Krishna Chatradhi <naveenkrishna.chatradhi@amd.com>
@@ -1017,7 +1017,7 @@ S: Maintained
F:	Documentation/x86/amd_hsmp.rst
F:	arch/x86/include/asm/amd_hsmp.h
F:	arch/x86/include/uapi/asm/amd_hsmp.h
F:	drivers/platform/x86/amd_hsmp.c
F:	drivers/platform/x86/amd/hsmp.c
AMD POWERPLAY AND SWSMU
M:	Evan Quan <evan.quan@amd.com>
@@ -13467,6 +13467,12 @@ F: drivers/scsi/smartpqi/smartpqi*.[ch]
F:	include/linux/cciss*.h
F:	include/uapi/linux/cciss*.h
MICROSOFT SURFACE AGGREGATOR TABLET-MODE SWITCH
M:	Maximilian Luz <luzmaximilian@gmail.com>
L:	platform-driver-x86@vger.kernel.org
S:	Maintained
F:	drivers/platform/surface/surface_aggregator_tabletsw.c
MICROSOFT SURFACE BATTERY AND AC DRIVERS
M:	Maximilian Luz <luzmaximilian@gmail.com>
L:	linux-pm@vger.kernel.org
@@ -13538,6 +13544,12 @@ F: include/linux/surface_acpi_notify.h
F:	include/linux/surface_aggregator/
F:	include/uapi/linux/surface_aggregator/
MICROSOFT SURFACE SYSTEM AGGREGATOR HUB DRIVER
M:	Maximilian Luz <luzmaximilian@gmail.com>
L:	platform-driver-x86@vger.kernel.org
S:	Maintained
F:	drivers/platform/surface/surface_aggregator_hub.c
MICROTEK X6 SCANNER
M:	Oliver Neukum <oliver@neukum.org>
S:	Maintained
+1 −3
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_PMC_ATOM)		+= clk-pmc-atom.o
obj-$(CONFIG_X86_AMD_PLATFORM_DEVICE)	+= clk-fch.o
clk-x86-lpss-y			:= clk-lpss-atom.o
obj-$(CONFIG_X86_INTEL_LPSS)	+= clk-x86-lpss.o
obj-$(CONFIG_X86_INTEL_LPSS)	+= clk-lpss-atom.o clk-pmc-atom.o
obj-$(CONFIG_CLK_LGM_CGU)	+= clk-cgu.o clk-cgu-pll.o clk-lgm.o
Loading