aboutsummaryrefslogtreecommitdiff
path: root/SOURCES
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES')
-rw-r--r--SOURCES/0001-add-ally-x-dmi-quirk-for-controller-suspend.patch107
1 files changed, 102 insertions, 5 deletions
diff --git a/SOURCES/0001-add-ally-x-dmi-quirk-for-controller-suspend.patch b/SOURCES/0001-add-ally-x-dmi-quirk-for-controller-suspend.patch
index bffa8c5..e0f47aa 100644
--- a/SOURCES/0001-add-ally-x-dmi-quirk-for-controller-suspend.patch
+++ b/SOURCES/0001-add-ally-x-dmi-quirk-for-controller-suspend.patch
@@ -1,14 +1,14 @@
-From 79d958eccfa4a1cfbb552032e9542f03333005e7 Mon Sep 17 00:00:00 2001
-From: antheas <antheas@users.noreply.github.com>
-Date: Mon, 15 Jul 2024 00:00:45 +0300
-Subject: [PATCH] add ally x dmi quirk for controller suspend
+From 650af3af1d5ebd5e5b759c503147f2fbc88ac3b7 Mon Sep 17 00:00:00 2001
+From: antheas <git@antheas.dev>
+Date: Sat, 20 Jul 2024 19:43:36 +0300
+Subject: [PATCH v2 1/3] allyx: add quirk for suspending controllers
---
drivers/platform/x86/asus-wmi.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
-index 3f9b6285c9a6..8e362726b703 100644
+index 3f9b6285c..8e362726b 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -4645,8 +4645,10 @@ static int asus_wmi_add(struct platform_device *pdev)
@@ -26,3 +26,100 @@ index 3f9b6285c9a6..8e362726b703 100644
asus->mini_led_dev_id = ASUS_WMI_DEVID_MINI_LED_MODE;
--
2.45.2
+
+
+From 013f01137eab6cb7ebbc6e7345185bd44456cbf6 Mon Sep 17 00:00:00 2001
+From: antheas <git@antheas.dev>
+Date: Sat, 20 Jul 2024 19:57:34 +0300
+Subject: [PATCH v2 2/3] allyx: tweak suspend and resume suspends
+
+---
+ drivers/platform/x86/asus-wmi.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 8e362726b..b51b0153e 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -139,8 +139,11 @@ module_param(fnlock_default, bool, 0444);
+
+ /* Controls the power state of the USB0 hub on ROG Ally which input is on */
+ #define ASUS_USB0_PWR_EC0_CSEE "\\_SB.PCI0.SBRG.EC0.CSEE"
+-/* 300ms so far seems to produce a reliable result on AC and battery */
+-#define ASUS_USB0_PWR_EC0_CSEE_WAIT 1500
++/* Use different delays for the ally depending on context. */
++#define ASUS_USB0_PWR_EC0_CSEE_PREPARE 1200
++#define ASUS_USB0_PWR_EC0_CSEE_RESUME_BEFORE 1000
++#define ASUS_USB0_PWR_EC0_CSEE_RESUME_AFTER 1500
++
+
+ static const char * const ashs_ids[] = { "ATK4001", "ATK4002", NULL };
+
+@@ -4847,10 +4850,11 @@ static int asus_hotk_resume_early(struct device *device)
+
+ if (asus->ally_mcu_usb_switch) {
+ /* sleep required to prevent USB0 being yanked then reappearing rapidly */
++ msleep(ASUS_USB0_PWR_EC0_CSEE_RESUME_BEFORE);
+ if (ACPI_FAILURE(acpi_execute_simple_method(NULL, ASUS_USB0_PWR_EC0_CSEE, 0xB8)))
+ dev_err(device, "ROG Ally MCU failed to connect USB dev\n");
+ else
+- msleep(ASUS_USB0_PWR_EC0_CSEE_WAIT);
++ msleep(ASUS_USB0_PWR_EC0_CSEE_RESUME_AFTER);
+ }
+ return 0;
+ }
+@@ -4864,7 +4868,7 @@ static int asus_hotk_prepare(struct device *device)
+ if (ACPI_FAILURE(acpi_execute_simple_method(NULL, ASUS_USB0_PWR_EC0_CSEE, 0xB7)))
+ dev_err(device, "ROG Ally MCU failed to disconnect USB dev\n");
+ else
+- msleep(ASUS_USB0_PWR_EC0_CSEE_WAIT);
++ msleep(ASUS_USB0_PWR_EC0_CSEE_PREPARE);
+ }
+ return 0;
+ }
+--
+2.45.2
+
+
+From f508c14d1ca1c8161088da37752b1e4c816cd6a9 Mon Sep 17 00:00:00 2001
+From: antheas <git@antheas.dev>
+Date: Sat, 20 Jul 2024 20:07:37 +0300
+Subject: [PATCH v2 3/3] add logging to allyx suspend quirk
+
+---
+ drivers/platform/x86/asus-wmi.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index b51b0153e..3122d2c27 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -4853,8 +4853,11 @@ static int asus_hotk_resume_early(struct device *device)
+ msleep(ASUS_USB0_PWR_EC0_CSEE_RESUME_BEFORE);
+ if (ACPI_FAILURE(acpi_execute_simple_method(NULL, ASUS_USB0_PWR_EC0_CSEE, 0xB8)))
+ dev_err(device, "ROG Ally MCU failed to connect USB dev\n");
+- else
++ else {
++ dev_info(device,
++ "ROG Ally MCU resume command sent after suspend\n");
+ msleep(ASUS_USB0_PWR_EC0_CSEE_RESUME_AFTER);
++ }
+ }
+ return 0;
+ }
+@@ -4867,8 +4870,11 @@ static int asus_hotk_prepare(struct device *device)
+ /* sleep required to ensure USB0 is disabled before sleep continues */
+ if (ACPI_FAILURE(acpi_execute_simple_method(NULL, ASUS_USB0_PWR_EC0_CSEE, 0xB7)))
+ dev_err(device, "ROG Ally MCU failed to disconnect USB dev\n");
+- else
++ else {
++ dev_info(device,
++ "ROG Ally MCU disconnect command sent before suspend.\n");
+ msleep(ASUS_USB0_PWR_EC0_CSEE_PREPARE);
++ }
+ }
+ return 0;
+ }
+--
+2.45.2
+