mb/google/skyrim: Use edge (vs level) triggering for PS2K

For reasons currently unknown, using a level triggered interrupt for the
PS2 keyboard causes an IRQ storm under Windows when any key is pressed,
leading to audio distortion/dropouts. Work around this by using an edge
triggered interrupt instead.

BUG=none
TEST=build/boot Win11, Linux on google/skyrim (frostflow), verify kb
functionality, verify no IRQ storm or audio stutter/distortion under
Windows.

Change-Id: I6de426c5780b2f05571415e8e411e379de45b5bf
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77679
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
This commit is contained in:
Matt DeVillier 2023-09-05 11:27:46 -05:00 committed by Raul Rangel
commit 2c9596555b

View file

@ -69,7 +69,12 @@
#define SIO_EC_MEMMAP_ENABLE /* EC Memory Map Resources */
#define SIO_EC_HOST_ENABLE /* EC Host Interface Resources */
#define SIO_EC_ENABLE_PS2K /* Enable PS/2 Keyboard */
#define SIO_EC_PS2K_IRQ Interrupt(ResourceConsumer, Level, ActiveLow, Shared) {1}
/*
* This interrupt should technically be level, since that is the contract between the EC
* and the AP, but under Windows it produces an IRQ storm so Edge needs to be used instead.
* Both Windows and Linux are happy with Edge, so we'll use it for now.
*/
#define SIO_EC_PS2K_IRQ Interrupt(ResourceConsumer, Edge, ActiveLow, Shared) {1}
/* Enable EC sync interrupt */
#define EC_ENABLE_SYNC_IRQ_GPIO