Skip to content

Commit 594f9cc

Browse files
committed
Merge branch 'fixes' of into for-next
The current set of DMI board IDs from the fixes branch is required to reorder them in the for-next branch.
2 parents b169e17 + 9b9c0ad commit 594f9cc

23 files changed

Lines changed: 191 additions & 122 deletions

File tree

Documentation/wmi/driver-development-guide.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ to matching WMI devices using a struct wmi_device_id table:
5454
::
5555

5656
static const struct wmi_device_id foo_id_table[] = {
57+
/* Only use uppercase letters! */
5758
{ "936DA01F-9ABD-4D9D-80C7-02AF85C822A8", NULL },
5859
{ }
5960
};

MAINTAINERS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3841,6 +3841,7 @@ F: drivers/hwmon/asus-ec-sensors.c
38413841
ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
38423842
M: Corentin Chary <corentin.chary@gmail.com>
38433843
M: Luke D. Jones <luke@ljones.dev>
3844+
M: Denis Benato <benato.denis96@gmail.com>
38443845
L: platform-driver-x86@vger.kernel.org
38453846
S: Maintained
38463847
W: https://asus-linux.org/
@@ -12862,7 +12863,8 @@ F: tools/testing/selftests/sgx/*
1286212863
K: \bSGX_
1286312864

1286412865
INTEL SKYLAKE INT3472 ACPI DEVICE DRIVER
12865-
M: Daniel Scally <djrscally@gmail.com>
12866+
M: Daniel Scally <dan.scally@ideasonboard.com>
12867+
M: Sakari Ailus <sakari.ailus@linux.intel.com>
1286612868
S: Maintained
1286712869
F: drivers/platform/x86/intel/int3472/
1286812870
F: include/linux/platform_data/x86/int3472.h

drivers/platform/arm64/lenovo-thinkpad-t14s.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ static int t14s_ec_write(void *context, unsigned int reg,
124124
if (ret < 0)
125125
return ret;
126126

127+
fsleep(10000);
127128
return 0;
128129
}
129130

@@ -161,6 +162,7 @@ static int t14s_ec_read(void *context, unsigned int reg,
161162

162163
out:
163164
i2c_unlock_bus(client->adapter, I2C_LOCK_SEGMENT);
165+
fsleep(10000);
164166
return ret;
165167
}
166168

@@ -195,6 +197,8 @@ static int t14s_ec_read_evt(struct t14s_ec *ec, u8 *val)
195197
if (ret < 0)
196198
goto out;
197199

200+
fsleep(10000);
201+
198202
ret = 0;
199203

200204
out:
@@ -570,12 +574,6 @@ static int t14s_ec_probe(struct i2c_client *client)
570574
return dev_err_probe(dev, PTR_ERR(ec->regmap),
571575
"Failed to init regmap\n");
572576

573-
ret = devm_request_threaded_irq(dev, client->irq, NULL,
574-
t14s_ec_irq_handler,
575-
IRQF_ONESHOT, dev_name(dev), ec);
576-
if (ret < 0)
577-
return dev_err_probe(dev, ret, "Failed to get IRQ\n");
578-
579577
ret = t14s_leds_probe(ec);
580578
if (ret < 0)
581579
return ret;
@@ -592,6 +590,12 @@ static int t14s_ec_probe(struct i2c_client *client)
592590
if (ret < 0)
593591
return ret;
594592

593+
ret = devm_request_threaded_irq(dev, client->irq, NULL,
594+
t14s_ec_irq_handler,
595+
IRQF_ONESHOT, dev_name(dev), ec);
596+
if (ret < 0)
597+
return dev_err_probe(dev, ret, "Failed to get IRQ\n");
598+
595599
/*
596600
* Disable wakeup support by default, because the driver currently does
597601
* not support masking any events and the laptop should not wake up when

drivers/platform/mellanox/mlxbf-pmc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2015,6 +2015,7 @@ static int mlxbf_pmc_init_perftype_counter(struct device *dev, unsigned int blk_
20152015
if (pmc->block[blk_num].type == MLXBF_PMC_TYPE_CRSPACE) {
20162016
/* Program crspace counters to count clock cycles using "count_clock" sysfs */
20172017
attr = &pmc->block[blk_num].attr_count_clock;
2018+
sysfs_attr_init(&attr->dev_attr.attr);
20182019
attr->dev_attr.attr.mode = 0644;
20192020
attr->dev_attr.show = mlxbf_pmc_count_clock_show;
20202021
attr->dev_attr.store = mlxbf_pmc_count_clock_store;

drivers/platform/x86/Kconfig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ config WIRELESS_HOTKEY
440440
depends on INPUT
441441
help
442442
This driver provides supports for the wireless buttons found on some AMD,
443-
HP, & Xioami laptops.
443+
HP, & Xiaomi laptops.
444444
On such systems the driver should load automatically (via ACPI alias).
445445

446446
To compile this driver as a module, choose M here: the module will
@@ -553,6 +553,7 @@ config MSI_WMI
553553
config MSI_WMI_PLATFORM
554554
tristate "MSI WMI Platform features"
555555
depends on ACPI_WMI
556+
depends on DMI
556557
depends on HWMON
557558
help
558559
Say Y here if you want to have support for WMI-based platform features

drivers/platform/x86/acer-wmi.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026");
121121

122122
enum acer_wmi_event_ids {
123123
WMID_HOTKEY_EVENT = 0x1,
124+
WMID_BACKLIGHT_EVENT = 0x4,
124125
WMID_ACCEL_OR_KBD_DOCK_EVENT = 0x5,
125126
WMID_GAMING_TURBO_KEY_EVENT = 0x7,
126127
WMID_AC_EVENT = 0x8,
@@ -2512,6 +2513,9 @@ static void acer_wmi_notify(union acpi_object *obj, void *context)
25122513
sparse_keymap_report_event(acer_wmi_input_dev, scancode, 1, true);
25132514
}
25142515
break;
2516+
case WMID_BACKLIGHT_EVENT:
2517+
/* Already handled by acpi-video */
2518+
break;
25152519
case WMID_ACCEL_OR_KBD_DOCK_EVENT:
25162520
acer_gsensor_event();
25172521
acer_kbd_dock_event(&return_value);

drivers/platform/x86/amd/pmc/pmc-quirks.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,14 @@ static const struct dmi_system_id fwbug_list[] = {
122122
DMI_MATCH(DMI_PRODUCT_NAME, "21A1"),
123123
}
124124
},
125+
{
126+
.ident = "ROG Xbox Ally RC73YA",
127+
.driver_data = &quirk_spurious_8042,
128+
.matches = {
129+
DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
130+
DMI_MATCH(DMI_BOARD_NAME, "RC73YA"),
131+
}
132+
},
125133
/* https://bugzilla.kernel.org/show_bug.cgi?id=218024 */
126134
{
127135
.ident = "V14 G4 AMN",
@@ -204,6 +212,23 @@ static const struct dmi_system_id fwbug_list[] = {
204212
DMI_MATCH(DMI_PRODUCT_NAME, "82ND"),
205213
}
206214
},
215+
/* https://gitlab.freedesktop.org/drm/amd/-/issues/4618 */
216+
{
217+
.ident = "Lenovo Legion Go 2",
218+
.driver_data = &quirk_s2idle_bug,
219+
.matches = {
220+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
221+
DMI_MATCH(DMI_PRODUCT_NAME, "83N0"),
222+
}
223+
},
224+
{
225+
.ident = "Lenovo Legion Go 2",
226+
.driver_data = &quirk_s2idle_bug,
227+
.matches = {
228+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
229+
DMI_MATCH(DMI_PRODUCT_NAME, "83N1"),
230+
}
231+
},
207232
/* https://gitlab.freedesktop.org/drm/amd/-/issues/2684 */
208233
{
209234
.ident = "HP Laptop 15s-eq2xxx",

drivers/platform/x86/amd/pmc/pmc.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ static void amd_pmc_get_ip_info(struct amd_pmc_dev *dev)
106106
switch (dev->cpu_id) {
107107
case AMD_CPU_ID_PCO:
108108
case AMD_CPU_ID_RN:
109+
case AMD_CPU_ID_VG:
109110
case AMD_CPU_ID_YC:
110111
case AMD_CPU_ID_CB:
111112
dev->num_ips = 12;
@@ -517,6 +518,7 @@ static int amd_pmc_get_os_hint(struct amd_pmc_dev *dev)
517518
case AMD_CPU_ID_PCO:
518519
return MSG_OS_HINT_PCO;
519520
case AMD_CPU_ID_RN:
521+
case AMD_CPU_ID_VG:
520522
case AMD_CPU_ID_YC:
521523
case AMD_CPU_ID_CB:
522524
case AMD_CPU_ID_PS:
@@ -717,6 +719,7 @@ static const struct pci_device_id pmc_pci_ids[] = {
717719
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_RV) },
718720
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_SP) },
719721
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_SHP) },
722+
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_VG) },
720723
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M20H_ROOT) },
721724
{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M60H_ROOT) },
722725
{ }

drivers/platform/x86/amd/pmc/pmc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ void amd_mp2_stb_deinit(struct amd_pmc_dev *dev);
156156
#define AMD_CPU_ID_RN 0x1630
157157
#define AMD_CPU_ID_PCO AMD_CPU_ID_RV
158158
#define AMD_CPU_ID_CZN AMD_CPU_ID_RN
159+
#define AMD_CPU_ID_VG 0x1645
159160
#define AMD_CPU_ID_YC 0x14B5
160161
#define AMD_CPU_ID_CB 0x14D8
161162
#define AMD_CPU_ID_PS 0x14E8

drivers/platform/x86/dell/alienware-wmi-wmax.c

Lines changed: 27 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -90,34 +90,34 @@ static struct awcc_quirks empty_quirks;
9090

9191
static const struct dmi_system_id awcc_dmi_table[] __initconst = {
9292
{
93-
.ident = "Alienware Area-51m",
93+
.ident = "Alienware 16 Aurora",
9494
.matches = {
9595
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
96-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware Area-51m"),
96+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware 16 Aurora"),
9797
},
98-
.driver_data = &generic_quirks,
98+
.driver_data = &g_series_quirks,
9999
},
100100
{
101-
.ident = "Alienware Area-51m R2",
101+
.ident = "Alienware Area-51m",
102102
.matches = {
103103
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
104-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware Area-51m R2"),
104+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware Area-51m"),
105105
},
106106
.driver_data = &generic_quirks,
107107
},
108108
{
109-
.ident = "Alienware m15 R5",
109+
.ident = "Alienware m15",
110110
.matches = {
111111
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
112-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15 R5"),
112+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15"),
113113
},
114114
.driver_data = &generic_quirks,
115115
},
116116
{
117-
.ident = "Alienware m15 R7",
117+
.ident = "Alienware m16 R1 AMD",
118118
.matches = {
119119
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
120-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15 R7"),
120+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m16 R1 AMD"),
121121
},
122122
.driver_data = &generic_quirks,
123123
},
@@ -129,14 +129,6 @@ static const struct dmi_system_id awcc_dmi_table[] __initconst = {
129129
},
130130
.driver_data = &g_series_quirks,
131131
},
132-
{
133-
.ident = "Alienware m16 R1 AMD",
134-
.matches = {
135-
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
136-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m16 R1 AMD"),
137-
},
138-
.driver_data = &generic_quirks,
139-
},
140132
{
141133
.ident = "Alienware m16 R2",
142134
.matches = {
@@ -146,106 +138,66 @@ static const struct dmi_system_id awcc_dmi_table[] __initconst = {
146138
.driver_data = &generic_quirks,
147139
},
148140
{
149-
.ident = "Alienware m17 R5",
150-
.matches = {
151-
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
152-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m17 R5 AMD"),
153-
},
154-
.driver_data = &generic_quirks,
155-
},
156-
{
157-
.ident = "Alienware m18 R2",
141+
.ident = "Alienware m17",
158142
.matches = {
159143
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
160-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m18 R2"),
144+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m17"),
161145
},
162146
.driver_data = &generic_quirks,
163147
},
164148
{
165-
.ident = "Alienware x15 R1",
149+
.ident = "Alienware m18",
166150
.matches = {
167151
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
168-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x15 R1"),
152+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m18"),
169153
},
170154
.driver_data = &generic_quirks,
171155
},
172156
{
173-
.ident = "Alienware x15 R2",
157+
.ident = "Alienware x15",
174158
.matches = {
175159
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
176-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x15 R2"),
160+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x15"),
177161
},
178162
.driver_data = &generic_quirks,
179163
},
180164
{
181-
.ident = "Alienware x17 R2",
165+
.ident = "Alienware x17",
182166
.matches = {
183167
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
184-
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x17 R2"),
168+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x17"),
185169
},
186170
.driver_data = &generic_quirks,
187171
},
188172
{
189-
.ident = "Dell Inc. G15 5510",
190-
.matches = {
191-
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
192-
DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5510"),
193-
},
194-
.driver_data = &g_series_quirks,
195-
},
196-
{
197-
.ident = "Dell Inc. G15 5511",
198-
.matches = {
199-
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
200-
DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5511"),
201-
},
202-
.driver_data = &g_series_quirks,
203-
},
204-
{
205-
.ident = "Dell Inc. G15 5515",
206-
.matches = {
207-
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
208-
DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5515"),
209-
},
210-
.driver_data = &g_series_quirks,
211-
},
212-
{
213-
.ident = "Dell Inc. G16 7630",
214-
.matches = {
215-
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
216-
DMI_MATCH(DMI_PRODUCT_NAME, "Dell G16 7630"),
217-
},
218-
.driver_data = &g_series_quirks,
219-
},
220-
{
221-
.ident = "Dell Inc. G3 3500",
173+
.ident = "Dell Inc. G15",
222174
.matches = {
223175
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
224-
DMI_MATCH(DMI_PRODUCT_NAME, "G3 3500"),
176+
DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15"),
225177
},
226178
.driver_data = &g_series_quirks,
227179
},
228180
{
229-
.ident = "Dell Inc. G3 3590",
181+
.ident = "Dell Inc. G16",
230182
.matches = {
231183
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
232-
DMI_MATCH(DMI_PRODUCT_NAME, "G3 3590"),
184+
DMI_MATCH(DMI_PRODUCT_NAME, "Dell G16"),
233185
},
234186
.driver_data = &g_series_quirks,
235187
},
236188
{
237-
.ident = "Dell Inc. G5 5500",
189+
.ident = "Dell Inc. G3",
238190
.matches = {
239191
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
240-
DMI_MATCH(DMI_PRODUCT_NAME, "G5 5500"),
192+
DMI_MATCH(DMI_PRODUCT_NAME, "G3"),
241193
},
242194
.driver_data = &g_series_quirks,
243195
},
244196
{
245-
.ident = "Dell Inc. G5 5505",
197+
.ident = "Dell Inc. G5",
246198
.matches = {
247199
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
248-
DMI_MATCH(DMI_PRODUCT_NAME, "G5 5505"),
200+
DMI_MATCH(DMI_PRODUCT_NAME, "G5"),
249201
},
250202
.driver_data = &g_series_quirks,
251203
},
@@ -1629,15 +1581,15 @@ static int wmax_wmi_probe(struct wmi_device *wdev, const void *context)
16291581

16301582
static int wmax_wmi_suspend(struct device *dev)
16311583
{
1632-
if (awcc->hwmon)
1584+
if (awcc && awcc->hwmon)
16331585
awcc_hwmon_suspend(dev);
16341586

16351587
return 0;
16361588
}
16371589

16381590
static int wmax_wmi_resume(struct device *dev)
16391591
{
1640-
if (awcc->hwmon)
1592+
if (awcc && awcc->hwmon)
16411593
awcc_hwmon_resume(dev);
16421594

16431595
return 0;

0 commit comments

Comments
 (0)