3
0
Fork 0
forked from mirrors/linux
kernel/drivers/platform/x86
Mario Limonciello a55bdad5df
platform/x86/amd/pmc: Disable keyboard wakeup on AMD Framework 13
The Laptop 13 (AMD Ryzen 7040Series) BIOS 03.03 has a workaround
included in the EC firmware that will cause the EC to emit a "spurious"
keypress during the resume from s0i3 [1].

This series of keypress events can be observed in the kernel log on
resume.

```
atkbd serio0: Unknown key pressed (translated set 2, code 0x6b on isa0060/serio0).
atkbd serio0: Use 'setkeycodes 6b <keycode>' to make it known.
atkbd serio0: Unknown key released (translated set 2, code 0x6b on isa0060/serio0).
atkbd serio0: Use 'setkeycodes 6b <keycode>' to make it known.
```

In some user flows this is harmless, but if a user has specifically
suspended the laptop and then closed the lid it will cause the laptop
to wakeup. The laptop wakes up because the ACPI SCI triggers when
the lid is closed and when the kernel sees that IRQ1 is "also" active.
The kernel can't distinguish from a real keyboard keypress and wakes the
system.

Add the model into the list of quirks to disable keyboard wakeup source.
This is intentionally only matching the production BIOS version in hopes
that a newer EC firmware included in a newer BIOS can avoid this behavior.

Cc: Kieran Levin <ktl@framework.net>
Link: https://github.com/FrameworkComputer/EmbeddedController/blob/lotus-zephyr/zephyr/program/lotus/azalea/src/power_sequence.c#L313 [1]
Link: https://community.frame.work/t/amd-wont-sleep-properly/41755
Link: https://community.frame.work/t/tracking-framework-amd-ryzen-7040-series-lid-wakeup-behavior-feedback/39128
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20231212045006.97581-5-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2023-12-18 15:08:19 +02:00
..
amd platform/x86/amd/pmc: Disable keyboard wakeup on AMD Framework 13 2023-12-18 15:08:19 +02:00
dell Merge remote-tracking branch 'pdx86/fixes' into pdx86/for-next 2023-08-23 17:30:50 +02:00
hp platform/x86: hp-bioscfg: Remove unused obj in hp_add_other_attributes() 2023-11-15 14:45:41 +02:00
intel platform/x86/intel/pmc: Fix hang in pmc_core_send_ltr_ignore() 2023-12-18 14:45:32 +02:00
siemens platform/x86/siemens: simatic-ipc-batt-f7188x: Convert to platform remove callback returning void 2023-09-28 13:27:06 +03:00
x86-android-tablets platform/x86: x86-android-tablets: Fix Lenovo Yoga Tablet 2 830F/L vs 1050F/L detection 2023-09-21 18:31:18 +02:00
acer-wireless.c
acer-wmi.c platform/x86: acer-wmi: Remove void function return 2023-10-17 10:14:35 +03:00
acerhdf.c
adv_swbutton.c
amilo-rfkill.c
apple-gmux.c apple-gmux: Hard Code max brightness for MMIO gmux 2023-10-18 15:33:24 +02:00
asus-laptop.c
asus-nb-wmi.c platform/x86: asus-wmi: Filter Volume key presses if also reported via atkbd 2023-11-23 14:24:19 +02:00
asus-tf103c-dock.c platform/x86: asus-tf103c-dock: Switch back to use struct i2c_driver's .probe() 2023-06-13 12:32:45 +02:00
asus-wireless.c platform/x86: asus-wireless: Replace open coded acpi_match_acpi_device() 2023-10-12 16:34:09 +03:00
asus-wmi.c platform/x86: asus-wmi: disable USB0 hub on ROG Ally before suspend 2023-11-28 15:19:53 +02:00
asus-wmi.h platform/x86: asus-wmi: Change q500a_i8042_filter() into a generic i8042-filter 2023-11-23 14:24:17 +02:00
barco-p50-gpio.c
classmate-laptop.c
compal-laptop.c
dual_accel_detect.h
eeepc-laptop.c Fix nomenclature for USB and PCI wireless devices 2023-08-25 12:56:49 +03:00
eeepc-wmi.c
firmware_attributes_class.c
firmware_attributes_class.h
fujitsu-laptop.c
fujitsu-tablet.c
gigabyte-wmi.c platform/x86: gigabyte: constify pointers to hwmon_channel_info 2023-05-16 10:36:56 +02:00
gpd-pocket-fan.c
hdaps.c
huawei-wmi.c platform/x86: huawei-wmi: Silence ambient light sensor 2023-07-25 16:38:03 +02:00
ibm_rtl.c
ideapad-laptop.c platform/x86: ideapad-laptop: Set max_brightness before using it 2023-11-15 14:30:51 +02:00
ideapad-laptop.h
inspur_platform_profile.c platform/x86: inspur-platform-profile: Add platform profile support 2023-10-27 16:14:47 +03:00
intel_ips.c platform/x86: intel_ips: fix kernel-doc formatting 2023-12-08 13:21:49 +02:00
intel_ips.h
intel_scu_ipc.c platform/x86: intel_scu_ipc: Fail IPC send if still busy 2023-09-18 15:15:15 +02:00
intel_scu_ipcutil.c
intel_scu_pcidrv.c platform/x86: intel_scu_pcidrv: Add back PCI ID for Medfield 2023-05-08 17:35:08 +02:00
intel_scu_pltdrv.c
intel_scu_wdt.c
Kconfig platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code 2023-11-23 14:24:13 +02:00
lenovo-ymc.c platform/x86: lenovo-ymc: Add Lenovo Yoga 7 14ACN6 to ec_trigger_quirk_dmi_table 2023-08-21 13:08:32 +02:00
lenovo-yogabook.c platform/x86: lenovo-yogabook: Rename lenovo-yogabook-wmi to lenovo-yogabook 2023-05-09 12:36:09 +02:00
lg-laptop.c
Makefile platform/x86: inspur-platform-profile: Add platform profile support 2023-10-27 16:14:47 +03:00
meraki-mx100.c
mlx-platform.c Merge branch 'pdx86/platform-drivers-x86-mellanox-init' into review-ilpo 2023-10-06 17:51:21 +03:00
msi-ec.c platform-drivers-x86 for v6.7-1 2023-10-31 17:53:00 -10:00
msi-ec.h platform/x86: msi-ec: rename fn_super_swap 2023-10-09 14:30:11 +03:00
msi-laptop.c platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100 2023-07-25 16:35:58 +02:00
msi-wmi.c
mxm-wmi.c
nvidia-wmi-ec-backlight.c
p2sb.c
panasonic-laptop.c
pcengines-apuv2.c
pmc_atom.c
samsung-laptop.c
samsung-q10.c
sel3350-platform.c platform/x86: sel3350-platform: Convert to platform remove callback returning void 2023-09-28 13:26:58 +03:00
serial-multi-instantiate.c ACPI: scan: Create platform device for CS35L56 2023-07-31 16:03:39 +02:00
sony-laptop.c x86: convert to new timestamp accessors 2023-10-18 13:26:16 +02:00
system76_acpi.c platform/x86: system76: Handle new KBLED ACPI methods 2023-07-26 11:00:07 +02:00
think-lmi.c platform-drivers-x86 for v6.7-1 2023-10-31 17:53:00 -10:00
think-lmi.h platform/x86: think-lmi: Add bulk save feature 2023-09-21 18:29:29 +02:00
thinkpad_acpi.c platform/x86: thinkpad_acpi: fix for incorrect fan reporting on some ThinkPad systems 2023-12-18 14:44:28 +02:00
topstar-laptop.c
toshiba-wmi.c
toshiba_acpi.c platform/x86: toshiba: constify pointers to hwmon_channel_info 2023-05-16 10:36:56 +02:00
toshiba_bluetooth.c
toshiba_haps.c
touchscreen_dmi.c platform/x86: touchscreen_dmi: Add info for the Positivo C4128B 2023-10-05 21:07:59 +02:00
uv_sysfs.c
winmate-fm07-keys.c
wireless-hotkey.c
wmi-bmof.c platform/x86: wmi-bmof: Simplify read_bmof() 2023-07-31 16:07:41 +02:00
wmi.c platform/x86: wmi: Skip blocks with zero instances 2023-11-30 13:53:50 +02:00
xiaomi-wmi.c
xo1-rfkill.c
xo15-ebook.c platform/x86: xo15-ebook: Replace open coded acpi_match_acpi_device() 2023-10-12 16:33:49 +03:00