Skip to content

Commit 08c49dc

Browse files
committed
Merge tag 'platform-drivers-x86-v5.6-1' of git://git.infradead.org/linux-platform-drivers-x86
Pull x86 platform driver updates from Andy Shevchenko: - Enable thermal policy for ASUS TUF FX705DY/FX505DY - Support left round button on ASUS N56VB - Support new Mellanox platforms of basic class VMOD0009 and VMOD0010 - Intel Comet Lake, Tiger Lake and Elkhart Lake support in the PMC driver - Big clean-up to Intel PMC core, PMC IPC and SCU IPC drivers - Touchscreen support for the PiPO W11 tablet * tag 'platform-drivers-x86-v5.6-1' of git://git.infradead.org/linux-platform-drivers-x86: (64 commits) platform/x86: intel_pmc_ipc: Switch to use driver->dev_groups platform/x86: intel_pmc_ipc: Propagate error from kstrtoul() platform/x86: intel_pmc_ipc: Use octal permissions in sysfs attributes platform/x86: intel_pmc_ipc: Get rid of unnecessary includes platform/x86: intel_pmc_ipc: Drop ipc_data_readb() platform/x86: intel_pmc_ipc: Drop intel_pmc_gcr_read() and intel_pmc_gcr_write() platform/x86: intel_pmc_ipc: Make intel_pmc_ipc_raw_cmd() static platform/x86: intel_pmc_ipc: Make intel_pmc_ipc_simple_command() static platform/x86: intel_pmc_ipc: Make intel_pmc_gcr_update() static platform/x86: intel_scu_ipc: Reformat kernel-doc comments of exported functions platform/x86: intel_scu_ipc: Drop intel_scu_ipc_raw_command() platform/x86: intel_scu_ipc: Drop intel_scu_ipc_io[read|write][8|16]() platform/x86: intel_scu_ipc: Drop unused macros platform/x86: intel_scu_ipc: Drop unused prototype intel_scu_ipc_fw_update() platform/x86: intel_scu_ipc: Sleeping is fine when polling platform/x86: intel_scu_ipc: Drop intel_scu_ipc_i2c_cntrl() platform/x86: intel_scu_ipc: Remove Lincroft support platform/x86: intel_scu_ipc: Add constants for register offsets platform/x86: intel_scu_ipc: Fix interrupt support platform/x86: intel_scu_ipcutil: Remove default y from Kconfig ...
2 parents 9e1af75 + cf85e7c commit 08c49dc

29 files changed

+1614
-686
lines changed

Documentation/ABI/stable/sysfs-driver-mlxreg-io

Lines changed: 68 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/asic_health
2-
32
Date: June 2018
43
KernelVersion: 4.19
54
Contact: Vadim Pasternak <vadimpmellanox.com>
@@ -19,7 +18,6 @@ Description: These files show with which CPLD versions have been burned
1918
The files are read only.
2019

2120
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/fan_dir
22-
2321
Date: December 2018
2422
KernelVersion: 5.0
2523
Contact: Vadim Pasternak <vadimpmellanox.com>
@@ -30,7 +28,6 @@ Description: This file shows the system fans direction:
3028
The files are read only.
3129

3230
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/cpld3_version
33-
3431
Date: November 2018
3532
KernelVersion: 5.0
3633
Contact: Vadim Pasternak <vadimpmellanox.com>
@@ -40,7 +37,6 @@ Description: These files show with which CPLD versions have been burned
4037
The files are read only.
4138

4239
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/jtag_enable
43-
4440
Date: November 2018
4541
KernelVersion: 5.0
4642
Contact: Vadim Pasternak <vadimpmellanox.com>
@@ -108,7 +104,6 @@ What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_comex_pwr_fail
108104
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_from_comex
109105
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_system
110106
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_voltmon_upgrade_fail
111-
112107
Date: November 2018
113108
KernelVersion: 5.0
114109
Contact: Vadim Pasternak <vadimpmellanox.com>
@@ -130,6 +125,12 @@ Description: These files show with which CPLD versions have been burned
130125

131126
The files are read only.
132127

128+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_comex_thermal
129+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_comex_wd
130+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_from_asic
131+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_reload_bios
132+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sff_wd
133+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_swb_wd
133134
Date: June 2019
134135
KernelVersion: 5.3
135136
Contact: Vadim Pasternak <vadimpmellanox.com>
@@ -143,9 +144,65 @@ Description: These files show the system reset cause, as following:
143144

144145
The files are read only.
145146

146-
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_comex_thermal
147-
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_comex_wd
148-
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_from_asic
149-
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_reload_bios
150-
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sff_wd
151-
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_swb_wd
147+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config1
148+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/config2
149+
Date: January 2020
150+
KernelVersion: 5.6
151+
Contact: Vadim Pasternak <vadimpmellanox.com>
152+
Description: These files show system static topology identification
153+
like system's static I2C topology, number and type of FPGA
154+
devices within the system and so on.
155+
156+
The files are read only.
157+
158+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_ac_pwr_fail
159+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_platform
160+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_soc
161+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/reset_sw_pwr_off
162+
Date: January 2020
163+
KernelVersion: 5.6
164+
Contact: Vadim Pasternak <vadimpmellanox.com>
165+
Description: These files show the system reset causes, as following: reset
166+
due to AC power failure, reset invoked from software by
167+
assertion reset signal through CPLD. reset caused by signal
168+
asserted by SOC through ACPI register, reset invoked from
169+
software by assertion power off signal through CPLD.
170+
171+
The files are read only.
172+
173+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pcie_asic_reset_dis
174+
Date: January 2020
175+
KernelVersion: 5.6
176+
Contact: Vadim Pasternak <vadimpmellanox.com>
177+
Description: This file allows to retain ASIC up during PCIe root complex
178+
reset, when attribute is set 1.
179+
180+
The file is read/write.
181+
182+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/vpd_wp
183+
Date: January 2020
184+
KernelVersion: 5.6
185+
Contact: Vadim Pasternak <vadimpmellanox.com>
186+
Description: This file allows to overwrite system VPD hardware wrtie
187+
protection when attribute is set 1.
188+
189+
The file is read/write.
190+
191+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/voltreg_update_status
192+
Date: January 2020
193+
KernelVersion: 5.6
194+
Contact: Vadim Pasternak <vadimpmellanox.com>
195+
Description: This file exposes the configuration update status of burnable
196+
voltage regulator devices. The status values are as following:
197+
0 - OK; 1 - CRC failure; 2 = I2C failure; 3 - in progress.
198+
199+
The file is read only.
200+
201+
What: /sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/ufm_version
202+
Date: January 2020
203+
KernelVersion: 5.6
204+
Contact: Vadim Pasternak <vadimpmellanox.com>
205+
Description: This file exposes the firmware version of burnable voltage
206+
regulator devices.
207+
208+
The file is read only.

Documentation/ABI/testing/sysfs-platform-asus-wmi

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,13 @@ Description:
4646
* 0 - normal,
4747
* 1 - overboost,
4848
* 2 - silent
49+
50+
What: /sys/devices/platform/<platform>/throttle_thermal_policy
51+
Date: Dec 2019
52+
KernelVersion: 5.6
53+
Contact: "Leonid Maksymchuk" <[email protected]>
54+
Description:
55+
Throttle thermal policy mode:
56+
* 0 - default,
57+
* 1 - overboost,
58+
* 2 - silent

MAINTAINERS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8573,6 +8573,12 @@ S: Maintained
85738573
F: arch/x86/include/asm/intel_telemetry.h
85748574
F: drivers/platform/x86/intel_telemetry*
85758575

8576+
INTEL UNCORE FREQUENCY CONTROL
8577+
M: Srinivas Pandruvada <[email protected]>
8578+
8579+
S: Maintained
8580+
F: drivers/platform/x86/intel-uncore-frequency.c
8581+
85768582
INTEL VIRTUAL BUTTON DRIVER
85778583
M: AceLan Kao <[email protected]>
85788584

arch/x86/include/asm/intel_pmc_ipc.h

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -31,30 +31,13 @@
3131

3232
#if IS_ENABLED(CONFIG_INTEL_PMC_IPC)
3333

34-
int intel_pmc_ipc_simple_command(int cmd, int sub);
35-
int intel_pmc_ipc_raw_cmd(u32 cmd, u32 sub, u8 *in, u32 inlen,
36-
u32 *out, u32 outlen, u32 dptr, u32 sptr);
3734
int intel_pmc_ipc_command(u32 cmd, u32 sub, u8 *in, u32 inlen,
3835
u32 *out, u32 outlen);
3936
int intel_pmc_s0ix_counter_read(u64 *data);
40-
int intel_pmc_gcr_read(u32 offset, u32 *data);
4137
int intel_pmc_gcr_read64(u32 offset, u64 *data);
42-
int intel_pmc_gcr_write(u32 offset, u32 data);
43-
int intel_pmc_gcr_update(u32 offset, u32 mask, u32 val);
4438

4539
#else
4640

47-
static inline int intel_pmc_ipc_simple_command(int cmd, int sub)
48-
{
49-
return -EINVAL;
50-
}
51-
52-
static inline int intel_pmc_ipc_raw_cmd(u32 cmd, u32 sub, u8 *in, u32 inlen,
53-
u32 *out, u32 outlen, u32 dptr, u32 sptr)
54-
{
55-
return -EINVAL;
56-
}
57-
5841
static inline int intel_pmc_ipc_command(u32 cmd, u32 sub, u8 *in, u32 inlen,
5942
u32 *out, u32 outlen)
6043
{
@@ -66,26 +49,11 @@ static inline int intel_pmc_s0ix_counter_read(u64 *data)
6649
return -EINVAL;
6750
}
6851

69-
static inline int intel_pmc_gcr_read(u32 offset, u32 *data)
70-
{
71-
return -EINVAL;
72-
}
73-
7452
static inline int intel_pmc_gcr_read64(u32 offset, u64 *data)
7553
{
7654
return -EINVAL;
7755
}
7856

79-
static inline int intel_pmc_gcr_write(u32 offset, u32 data)
80-
{
81-
return -EINVAL;
82-
}
83-
84-
static inline int intel_pmc_gcr_update(u32 offset, u32 mask, u32 val)
85-
{
86-
return -EINVAL;
87-
}
88-
8957
#endif /*CONFIG_INTEL_PMC_IPC*/
9058

9159
#endif

arch/x86/include/asm/intel_scu_ipc.h

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,12 @@
2222
/* Read single register */
2323
int intel_scu_ipc_ioread8(u16 addr, u8 *data);
2424

25-
/* Read two sequential registers */
26-
int intel_scu_ipc_ioread16(u16 addr, u16 *data);
27-
28-
/* Read four sequential registers */
29-
int intel_scu_ipc_ioread32(u16 addr, u32 *data);
30-
3125
/* Read a vector */
3226
int intel_scu_ipc_readv(u16 *addr, u8 *data, int len);
3327

3428
/* Write single register */
3529
int intel_scu_ipc_iowrite8(u16 addr, u8 data);
3630

37-
/* Write two sequential registers */
38-
int intel_scu_ipc_iowrite16(u16 addr, u16 data);
39-
40-
/* Write four sequential registers */
41-
int intel_scu_ipc_iowrite32(u16 addr, u32 data);
42-
4331
/* Write a vector */
4432
int intel_scu_ipc_writev(u16 *addr, u8 *data, int len);
4533

@@ -50,14 +38,6 @@ int intel_scu_ipc_update_register(u16 addr, u8 data, u8 mask);
5038
int intel_scu_ipc_simple_command(int cmd, int sub);
5139
int intel_scu_ipc_command(int cmd, int sub, u32 *in, int inlen,
5240
u32 *out, int outlen);
53-
int intel_scu_ipc_raw_command(int cmd, int sub, u8 *in, int inlen,
54-
u32 *out, int outlen, u32 dptr, u32 sptr);
55-
56-
/* I2C control api */
57-
int intel_scu_ipc_i2c_cntrl(u32 addr, u32 *data);
58-
59-
/* Update FW version */
60-
int intel_scu_ipc_fw_update(u8 *buffer, u32 length);
6141

6242
extern struct blocking_notifier_head intel_scu_notifier;
6343

arch/x86/include/asm/intel_telemetry.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,10 @@ struct telemetry_evtmap {
4040
struct telemetry_unit_config {
4141
struct telemetry_evtmap *telem_evts;
4242
void __iomem *regmap;
43-
u32 ssram_base_addr;
4443
u8 ssram_evts_used;
4544
u8 curr_period;
4645
u8 max_period;
4746
u8 min_period;
48-
u32 ssram_size;
49-
5047
};
5148

5249
struct telemetry_plt_config {

drivers/platform/mellanox/mlxreg-hotplug.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,20 @@ static int mlxreg_hotplug_set_irq(struct mlxreg_hotplug_priv_data *priv)
504504
item = pdata->items;
505505

506506
for (i = 0; i < pdata->counter; i++, item++) {
507+
if (item->capability) {
508+
/*
509+
* Read group capability register to get actual number
510+
* of interrupt capable components and set group mask
511+
* accordingly.
512+
*/
513+
ret = regmap_read(priv->regmap, item->capability,
514+
&regval);
515+
if (ret)
516+
goto out;
517+
518+
item->mask = GENMASK((regval & item->mask) - 1, 0);
519+
}
520+
507521
/* Clear group presense event. */
508522
ret = regmap_write(priv->regmap, item->reg +
509523
MLXREG_HOTPLUG_EVENT_OFF, 0);

drivers/platform/x86/Kconfig

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -997,7 +997,6 @@ config INTEL_SCU_IPC
997997
config INTEL_SCU_IPC_UTIL
998998
tristate "Intel SCU IPC utility driver"
999999
depends on INTEL_SCU_IPC
1000-
default y
10011000
---help---
10021001
The IPC Util driver provides an interface with the SCU enabling
10031002
low level access for debug work and updating the firmware. Say
@@ -1299,9 +1298,9 @@ config INTEL_ATOMISP2_PM
12991298
depends on PCI && IOSF_MBI && PM
13001299
help
13011300
Power-management driver for Intel's Image Signal Processor found on
1302-
Bay and Cherry Trail devices. This dummy driver's sole purpose is to
1303-
turn the ISP off (put it in D3) to save power and to allow entering
1304-
of S0ix modes.
1301+
Bay Trail and Cherry Trail devices. This dummy driver's sole purpose
1302+
is to turn the ISP off (put it in D3) to save power and to allow
1303+
entering of S0ix modes.
13051304

13061305
To compile this driver as a module, choose M here: the module
13071306
will be called intel_atomisp2_pm.
@@ -1337,6 +1336,17 @@ config PCENGINES_APU2
13371336
To compile this driver as a module, choose M here: the module
13381337
will be called pcengines-apuv2.
13391338

1339+
config INTEL_UNCORE_FREQ_CONTROL
1340+
tristate "Intel Uncore frequency control driver"
1341+
depends on X86_64
1342+
help
1343+
This driver allows control of uncore frequency limits on
1344+
supported server platforms.
1345+
Uncore frequency controls RING/LLC (last-level cache) clocks.
1346+
1347+
To compile this driver as a module, choose M here: the module
1348+
will be called intel-uncore-frequency.
1349+
13401350
source "drivers/platform/x86/intel_speed_select_if/Kconfig"
13411351

13421352
config SYSTEM76_ACPI

drivers/platform/x86/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,4 @@ obj-$(CONFIG_INTEL_ATOMISP2_PM) += intel_atomisp2_pm.o
105105
obj-$(CONFIG_PCENGINES_APU2) += pcengines-apuv2.o
106106
obj-$(CONFIG_INTEL_SPEED_SELECT_INTERFACE) += intel_speed_select_if/
107107
obj-$(CONFIG_SYSTEM76_ACPI) += system76_acpi.o
108+
obj-$(CONFIG_INTEL_UNCORE_FREQ_CONTROL) += intel-uncore-frequency.o

drivers/platform/x86/asus-nb-wmi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
471471
{ KE_KEY, 0x67, { KEY_SWITCHVIDEOMODE } }, /* SDSP LCD + CRT + TV */
472472
{ KE_KEY, 0x6B, { KEY_TOUCHPAD_TOGGLE } },
473473
{ KE_IGNORE, 0x6E, }, /* Low Battery notification */
474+
{ KE_KEY, 0x71, { KEY_F13 } }, /* General-purpose button */
474475
{ KE_KEY, 0x7a, { KEY_ALS_TOGGLE } }, /* Ambient Light Sensor Toggle */
475476
{ KE_KEY, 0x7c, { KEY_MICMUTE } },
476477
{ KE_KEY, 0x7D, { KEY_BLUETOOTH } }, /* Bluetooth Enable */

0 commit comments

Comments
 (0)