summaryrefslogtreecommitdiff
path: root/config/coreboot/default/patches/0045-ec-dell-mec5035-Add-S3-suspend-SMI-handler.patch
diff options
context:
space:
mode:
Diffstat (limited to 'config/coreboot/default/patches/0045-ec-dell-mec5035-Add-S3-suspend-SMI-handler.patch')
-rw-r--r--config/coreboot/default/patches/0045-ec-dell-mec5035-Add-S3-suspend-SMI-handler.patch117
1 files changed, 0 insertions, 117 deletions
diff --git a/config/coreboot/default/patches/0045-ec-dell-mec5035-Add-S3-suspend-SMI-handler.patch b/config/coreboot/default/patches/0045-ec-dell-mec5035-Add-S3-suspend-SMI-handler.patch
deleted file mode 100644
index 97f14314..00000000
--- a/config/coreboot/default/patches/0045-ec-dell-mec5035-Add-S3-suspend-SMI-handler.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From a8c4f7004ea1c9b8268a87dd0b700c250ec4747d Mon Sep 17 00:00:00 2001
-From: Nicholas Chin <nic.c3.14@gmail.com>
-Date: Fri, 3 May 2024 11:03:32 -0600
-Subject: [PATCH] ec/dell/mec5035: Add S3 suspend SMI handler
-
-Change-Id: I655868aba46911d128f6c24f410dc6fdf83f3070
-Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
----
- src/ec/dell/mec5035/Makefile.mk | 1 +
- src/ec/dell/mec5035/mec5035.c | 14 ++++++++++++++
- src/ec/dell/mec5035/mec5035.h | 19 +++++++++++++++++++
- src/ec/dell/mec5035/smihandler.c | 17 +++++++++++++++++
- 4 files changed, 51 insertions(+)
- create mode 100644 src/ec/dell/mec5035/smihandler.c
-
-diff --git a/src/ec/dell/mec5035/Makefile.mk b/src/ec/dell/mec5035/Makefile.mk
-index 4ebdd811f9..be557e4599 100644
---- a/src/ec/dell/mec5035/Makefile.mk
-+++ b/src/ec/dell/mec5035/Makefile.mk
-@@ -5,5 +5,6 @@ ifeq ($(CONFIG_EC_DELL_MEC5035),y)
- bootblock-y += mec5035.c
- romstage-y += mec5035.c
- ramstage-y += mec5035.c
-+smm-y += mec5035.c smihandler.c
-
- endif
-diff --git a/src/ec/dell/mec5035/mec5035.c b/src/ec/dell/mec5035/mec5035.c
-index 68b6b2f7fb..33bf046634 100644
---- a/src/ec/dell/mec5035/mec5035.c
-+++ b/src/ec/dell/mec5035/mec5035.c
-@@ -94,6 +94,20 @@ void mec5035_control_radio(enum ec_radio_dev dev, enum ec_radio_state state)
- ec_command(CMD_RADIO_CTRL);
- }
-
-+void mec5035_sleep_enable(void)
-+{
-+ u8 buf[SLEEP_EN_NUM_ARGS] = {3, 0};
-+ write_mailbox_regs(buf, 2, SLEEP_EN_NUM_ARGS);
-+ ec_command(CMD_SLEEP_ENABLE);
-+}
-+
-+void mec5035_change_wake(u8 source, enum ec_wake_change change)
-+{
-+ u8 buf[ACPI_WAKEUP_NUM_ARGS] = {change, source, 0, 0x40};
-+ write_mailbox_regs(buf, 2, ACPI_WAKEUP_NUM_ARGS);
-+ ec_command(CMD_ACPI_WAKEUP_CHANGE);
-+}
-+
- void mec5035_early_init(void)
- {
- /* If this isn't sent the EC shuts down the system after about 15
-diff --git a/src/ec/dell/mec5035/mec5035.h b/src/ec/dell/mec5035/mec5035.h
-index fa15a9d621..069616fbc5 100644
---- a/src/ec/dell/mec5035/mec5035.h
-+++ b/src/ec/dell/mec5035/mec5035.h
-@@ -4,6 +4,7 @@
- #define _EC_DELL_MEC5035_H_
-
- #include <stdint.h>
-+#include <types.h>
-
- #define NUM_REGISTERS 32
-
-@@ -29,9 +30,27 @@ enum ec_radio_state {
- RADIO_ON
- };
-
-+#define CMD_ACPI_WAKEUP_CHANGE 0x4a
-+#define ACPI_WAKEUP_NUM_ARGS 4
-+enum ec_wake_change {
-+ WAKE_OFF = 0,
-+ WAKE_ON
-+};
-+enum ec_acpi_wake_events {
-+ EC_ACPI_WAKE_PWRB = BIT(0), /* Wake up by power button */
-+ EC_ACPI_WAKE_LID = BIT(1), /* Wake up by lid switch */
-+ EC_ACPI_WAKE_RTC = BIT(5), /* Wake up by RTC */
-+};
-+
-+#define CMD_SLEEP_ENABLE 0x64
-+#define SLEEP_EN_NUM_ARGS 2
-+
- u8 mec5035_mouse_touchpad(u8 setting);
- void mec5035_cpu_ok(void);
- void mec5035_early_init(void);
- void mec5035_control_radio(enum ec_radio_dev device, enum ec_radio_state state);
-+void mec5035_sleep(int slp_type);
-+void mec5035_change_wake(u8 source, enum ec_wake_change change);
-+void mec5035_sleep_enable(void);
-
- #endif /* _EC_DELL_MEC5035_H_ */
-diff --git a/src/ec/dell/mec5035/smihandler.c b/src/ec/dell/mec5035/smihandler.c
-new file mode 100644
-index 0000000000..1db834773d
---- /dev/null
-+++ b/src/ec/dell/mec5035/smihandler.c
-@@ -0,0 +1,17 @@
-+/* SPDX-License-Identifier: GPL-2.0-only */
-+
-+#include <acpi/acpi.h>
-+#include <console/console.h>
-+#include <ec/acpi/ec.h>
-+#include "mec5035.h"
-+
-+void mec5035_sleep(int slp_type)
-+{
-+ switch (slp_type) {
-+ case ACPI_S3:
-+ /* System does not yet resume properly if woken by lid */
-+ mec5035_change_wake(EC_ACPI_WAKE_LID, WAKE_OFF);
-+ mec5035_sleep_enable();
-+ break;
-+ }
-+}
---
-2.44.0
-