Skip to content

Commit a5cb6b2

Browse files
committed
Merge tag 'platform-drivers-x86-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
Pull x86 platform driver updates from Ilpo Järvinen: - amd/pmf: Report system state changes using existing input events - asus-wmi: Zenbook 2023 camera LED disable support and fix TUF laptop keyboard RGB LED sysfs interface - dell-pc: Fan modes / platform profile support - hp-wmi: Fix platform profile switching on Omen/Victus laptops - intel/ISST: Use only TPMI interface when TPMI and legacy interfaces are available - intel/pmc: LTR restore support to pair with LTR ignore - intel/tpmi: Performance Limit Reasons (PLR) and APIC <-> Punit CPU numbering mapping support - WMI: driver override support and docs improvements - lenovo-yoga-c630: Support for EC (platform/arm64) - platform/arm64: Fix build with COMPILE_TEST (broke after addition of C630) - tools: Intel Speed Select Turbo Ratio Limit fix - Miscellaneous cleanups / refactoring / improvements * tag 'platform-drivers-x86-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (65 commits) platform/x86: asus-wmi: fix TUF laptop RGB variant platform/x86/intel/tpmi/plr: Fix output in plr_print_bits() Docs/admin-guide: Remove pmf leftover reference from the index platform/x86: ideapad-laptop: use cleanup.h platform/x86: hp-wmi: Fix implementation of the platform_profile_omen_get function platform: arm64: EC_LENOVO_YOGA_C630 should depend on ARCH_QCOM platform: arm64: EC_ACER_ASPIRE1 should depend on ARCH_QCOM platform/x86/amd/pmf: Remove update system state document platform/x86/amd/pmf: Use existing input event codes to update system states platform/x86: hp-wmi: Fix platform profile option switch bug on Omen and Victus laptops platform/x86:intel/pmc: Add support to undo ltr_ignore platform/x86:intel/pmc: Use the Elvis operator platform/x86:intel/pmc: Use DEFINE_SHOW_STORE_ATTRIBUTE macro platform/x86:intel/pmc: Remove unneeded min_t check platform/x86:intel/pmc: Add support to show ltr_ignore value platform/x86:intel/pmc: Move pmc assignment closer to first usage platform/x86:intel/pmc: Convert index variables to be unsigned platform/x86:intel/pmc: Simplify mutex usage with cleanup helpers platform/x86:intel/pmc: Use the return value of pmc_core_send_msg tools/power/x86/intel-speed-select: v1.20 release ...
2 parents e2f710f + d8b17a3 commit a5cb6b2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+2301
-524
lines changed

Documentation/ABI/testing/debugfs-tpmi

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,12 @@ Example:
2929
echo 0,0x20,0xff > mem_write
3030
echo 1,64,64 > mem_write
3131
Users: Debugging, any user space test suite
32+
33+
What: /sys/kernel/debug/tpmi-<n>/plr/domain<n>/status
34+
Date: Aug 2024
35+
KernelVersion: 6.11
36+
Contact: Tero Kristo <[email protected]>
37+
Description:
38+
Shows the currently active Performance Limit Reasons for die level and the
39+
individual CPUs under the die. The contents of this file are sticky, and
40+
clearing all the statuses can be done by writing "0\n" to this file.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
What: /sys/bus/wmi/devices/.../driver_override
2+
Date: February 2024
3+
Contact: Armin Wolf <[email protected]>
4+
Description:
5+
This file allows the driver for a device to be specified which
6+
will override standard ID table matching.
7+
When specified, only a driver with a name matching the value
8+
written to driver_override will have an opportunity to bind
9+
to the device.
10+
The override is specified by writing a string to the
11+
driver_override file (echo wmi-event-dummy > driver_override).
12+
The override may be cleared with an empty string (echo > \
13+
driver_override) which returns the device to standard matching
14+
rules binding.
15+
Writing to driver_override does not automatically unbind the
16+
device from its current driver or make any attempt to automatically
17+
load the specified driver. If no driver with a matching name is
18+
currently loaded in the kernel, the device will not bind to any
19+
driver.
20+
This also allows devices to opt-out of driver binding using a
21+
driver_override name such as "none". Only a single driver may be
22+
specified in the override, there is no support for parsing delimiters.
23+
24+
What: /sys/bus/wmi/devices/.../modalias
25+
Date: November 20:15
26+
Contact: Andy Lutomirski <[email protected]>
27+
Description:
28+
This file contains the MODALIAS value emitted by uevent for a
29+
given WMI device.
30+
31+
Format: wmi:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.
32+
33+
What: /sys/bus/wmi/devices/.../guid
34+
Date: November 2015
35+
Contact: Andy Lutomirski <[email protected]>
36+
Description:
37+
This file contains the GUID used to match WMI devices to
38+
compatible WMI drivers. This GUID is not necessarily unique
39+
inside a given machine, it is solely used to identify the
40+
interface exposed by a given WMI device.
41+
42+
What: /sys/bus/wmi/devices/.../object_id
43+
Date: November 2015
44+
Contact: Andy Lutomirski <[email protected]>
45+
Description:
46+
This file contains the WMI object ID used internally to construct
47+
the ACPI method names used by non-event WMI devices. It contains
48+
two ASCII letters.
49+
50+
What: /sys/bus/wmi/devices/.../notify_id
51+
Date: November 2015
52+
Contact: Andy Lutomirski <[email protected]>
53+
Description:
54+
This file contains the WMI notify ID used internally to map ACPI
55+
events to WMI event devices. It contains two ASCII letters.
56+
57+
What: /sys/bus/wmi/devices/.../instance_count
58+
Date: November 2015
59+
Contact: Andy Lutomirski <[email protected]>
60+
Description:
61+
This file contains the number of WMI object instances being
62+
present on a given WMI device. It contains a non-negative
63+
number.
64+
65+
What: /sys/bus/wmi/devices/.../expensive
66+
Date: November 2015
67+
Contact: Andy Lutomirski <[email protected]>
68+
Description:
69+
This file contains a boolean flag signaling if interacting with
70+
the given WMI device will consume significant CPU resources.
71+
The WMI driver core will take care of enabling/disabling such
72+
WMI devices.
73+
74+
What: /sys/bus/wmi/devices/.../setable
75+
Date: May 2017
76+
Contact: Darren Hart (VMware) <[email protected]>
77+
Description:
78+
This file contains a boolean flags signaling the data block
79+
aassociated with the given WMI device is writable. If the
80+
given WMI device is not associated with a data block, then
81+
this file will not exist.

Documentation/admin-guide/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ configure specific aspects of kernel behavior to your liking.
121121
parport
122122
perf-security
123123
pm/index
124-
pmf
125124
pnp
126125
rapidio
127126
RAS/index

Documentation/admin-guide/pmf.rst

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/platform/lenovo,yoga-c630-ec.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Lenovo Yoga C630 Embedded Controller.
8+
9+
maintainers:
10+
- Bjorn Andersson <[email protected]>
11+
12+
description:
13+
The Qualcomm Snapdragon-based Lenovo Yoga C630 has an Embedded Controller
14+
(EC) which handles things such as battery and USB Type-C. This binding
15+
describes the interface, on an I2C bus, to this EC.
16+
17+
properties:
18+
compatible:
19+
const: lenovo,yoga-c630-ec
20+
21+
reg:
22+
const: 0x70
23+
24+
'#address-cells':
25+
const: 1
26+
27+
'#size-cells':
28+
const: 0
29+
30+
interrupts:
31+
maxItems: 1
32+
33+
patternProperties:
34+
'^connector@[01]$':
35+
$ref: /schemas/connector/usb-connector.yaml#
36+
37+
properties:
38+
reg:
39+
maxItems: 1
40+
41+
unevaluatedProperties: false
42+
43+
required:
44+
- compatible
45+
- reg
46+
- interrupts
47+
48+
additionalProperties: false
49+
50+
examples:
51+
- |+
52+
#include <dt-bindings/interrupt-controller/irq.h>
53+
i2c1 {
54+
clock-frequency = <400000>;
55+
56+
#address-cells = <1>;
57+
#size-cells = <0>;
58+
59+
embedded-controller@70 {
60+
compatible = "lenovo,yoga-c630-ec";
61+
reg = <0x70>;
62+
63+
interrupts-extended = <&tlmm 20 IRQ_TYPE_LEVEL_HIGH>;
64+
65+
#address-cells = <1>;
66+
#size-cells = <0>;
67+
68+
connector@0 {
69+
compatible = "usb-c-connector";
70+
reg = <0>;
71+
power-role = "source";
72+
data-role = "host";
73+
};
74+
75+
connector@1 {
76+
compatible = "usb-c-connector";
77+
reg = <1>;
78+
power-role = "source";
79+
data-role = "host";
80+
};
81+
};
82+
};
83+
...

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ ACPI WMI DRIVER
392392
M: Armin Wolf <[email protected]>
393393
394394
S: Maintained
395+
F: Documentation/ABI/testing/sysfs-bus-wmi
395396
F: Documentation/driver-api/wmi.rst
396397
F: Documentation/wmi/
397398
F: drivers/platform/x86/wmi.c
@@ -6194,6 +6195,12 @@ F: Documentation/ABI/obsolete/procfs-i8k
61946195
F: drivers/hwmon/dell-smm-hwmon.c
61956196
F: include/uapi/linux/i8k.h
61966197

6198+
DELL PC DRIVER
6199+
M: Lyndon Sanche <[email protected]>
6200+
6201+
S: Maintained
6202+
F: drivers/platform/x86/dell/dell-pc.c
6203+
61976204
DELL REMOTE BIOS UPDATE DRIVER
61986205
M: Stuart Hayes <[email protected]>
61996206

arch/x86/platform/atom/punit_atom_debug.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,14 +165,13 @@ static void punit_s2idle_check_register(struct punit_device *punit_device) {}
165165
static void punit_s2idle_check_unregister(void) {}
166166
#endif
167167

168-
#define X86_MATCH(model, data) \
169-
X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, INTEL_FAM6_##model, \
170-
X86_FEATURE_MWAIT, data)
168+
#define X86_MATCH(vfm, data) \
169+
X86_MATCH_VFM_FEATURE(vfm, X86_FEATURE_MWAIT, data)
171170

172171
static const struct x86_cpu_id intel_punit_cpu_ids[] = {
173-
X86_MATCH(ATOM_SILVERMONT, &punit_device_byt),
174-
X86_MATCH(ATOM_SILVERMONT_MID, &punit_device_tng),
175-
X86_MATCH(ATOM_AIRMONT, &punit_device_cht),
172+
X86_MATCH(INTEL_ATOM_SILVERMONT, &punit_device_byt),
173+
X86_MATCH(INTEL_ATOM_SILVERMONT_MID, &punit_device_tng),
174+
X86_MATCH(INTEL_ATOM_AIRMONT, &punit_device_cht),
176175
{}
177176
};
178177
MODULE_DEVICE_TABLE(x86cpu, intel_punit_cpu_ids);

drivers/platform/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ obj-$(CONFIG_GOLDFISH) += goldfish/
1212
obj-$(CONFIG_CHROME_PLATFORMS) += chrome/
1313
obj-$(CONFIG_CZNIC_PLATFORMS) += cznic/
1414
obj-$(CONFIG_SURFACE_PLATFORMS) += surface/
15-
obj-$(CONFIG_ARM64) += arm64/
15+
obj-$(CONFIG_ARM64_PLATFORM_DEVICES) += arm64/

drivers/platform/arm64/Kconfig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ if ARM64_PLATFORM_DEVICES
1818

1919
config EC_ACER_ASPIRE1
2020
tristate "Acer Aspire 1 Embedded Controller driver"
21+
depends on ARCH_QCOM || COMPILE_TEST
2122
depends on I2C
2223
depends on DRM
2324
depends on POWER_SUPPLY
@@ -32,4 +33,20 @@ config EC_ACER_ASPIRE1
3233
laptop where this information is not properly exposed via the
3334
standard ACPI devices.
3435

36+
config EC_LENOVO_YOGA_C630
37+
tristate "Lenovo Yoga C630 Embedded Controller driver"
38+
depends on ARCH_QCOM || COMPILE_TEST
39+
depends on I2C
40+
select AUXILIARY_BUS
41+
help
42+
Driver for the Embedded Controller in the Qualcomm Snapdragon-based
43+
Lenovo Yoga C630, which provides battery and power adapter
44+
information.
45+
46+
This driver provides battery and AC status support for the mentioned
47+
laptop where this information is not properly exposed via the
48+
standard ACPI devices.
49+
50+
Say M or Y here to include this support.
51+
3552
endif # ARM64_PLATFORM_DEVICES

drivers/platform/arm64/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66
#
77

88
obj-$(CONFIG_EC_ACER_ASPIRE1) += acer-aspire1-ec.o
9+
obj-$(CONFIG_EC_LENOVO_YOGA_C630) += lenovo-yoga-c630.o

0 commit comments

Comments
 (0)