summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaijian2024-04-03 12:27:14 +0200
committerTaijian2024-04-03 12:27:14 +0200
commit3217da41ae43db60d91e2739e978103b509b64b4 (patch)
treeba13c9745c9e4e16c6c0a75d3a8489395f37acfc
parentfe2ced41debb6c571d6542f71ff7bb222144c15f (diff)
downloadaur-3217da41ae43db60d91e2739e978103b509b64b4.tar.gz
include some new/updated patches from upstream
-rw-r--r--.SRCINFO36
-rw-r--r--0001-v2-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-LED.patch195
-rw-r--r--0002-v2-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-MUX.patch122
-rw-r--r--0003-v2-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch94
-rw-r--r--0004-v2-platform-x86-asus-wmi-support-toggling-POST-sound.patch129
-rw-r--r--0005-v2-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch265
-rw-r--r--0006-v2-platform-x86-asus-wmi-adjust-formatting-of-ppt-fcts.patch115
-rw-r--r--0007-v2-platform-x86-asus-wmi-ROG-Ally-increase-wait-time.patch72
-rw-r--r--0008-v2-platform-x86-asus-wmi-add-support-for-MCU-powersave.patch117
-rw-r--r--0009-v2-platform-x86-asus-wmi-add-clean-up-structs.patch91
-rw-r--r--PKGBUILD37
-rwxr-xr-xchroot-build.sh5
12 files changed, 1251 insertions, 27 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0812a552c493..e033936a8996 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = linux-g14
pkgdesc = Linux-g14
- pkgver = 6.8.2.arch1
+ pkgver = 6.8.2.arch2
pkgrel = 1
url = https://gitlab.com/dragonn/linux-g14.git
arch = x86_64
@@ -19,8 +19,8 @@ pkgbase = linux-g14
options = !debug
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.2.tar.xz
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.2.tar.sign
- source = https://github.com/archlinux/linux/releases/download/v6.8.2-arch1/linux-v6.8.2-arch1.patch.zst
- source = https://github.com/archlinux/linux/releases/download/v6.8.2-arch1/linux-v6.8.2-arch1.patch.zst.sig
+ source = https://github.com/archlinux/linux/releases/download/v6.8.2-arch2/linux-v6.8.2-arch2.patch.zst
+ source = https://github.com/archlinux/linux/releases/download/v6.8.2-arch2/linux-v6.8.2-arch2.patch.zst.sig
source = config
source = choose-gcc-optimization.sh
source = sys-kernel_arch-sources-g14-6.8+--more-uarches-for-kernel.patch::https://raw.githubusercontent.com/graysky2/kernel_compiler_patch/master/more-uarches-for-kernel-6.8-rc4%2B.patch
@@ -37,11 +37,15 @@ pkgbase = linux-g14
source = 0001-platform-x86-asus-wmi-Support-2023-ROG-X16-tablet-mo.patch
source = amd-tablet-sfh.patch
source = fix_amd_eDP_HDR_flickering.patch
- source = 0001-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-.patch
- source = 0002-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-M.patch
- source = 0003-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch
- source = 0004-platform-x86-asus-wmi-support-toggling-POST-sound.patch
- source = 0005-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch
+ source = 0001-v2-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-LED.patch
+ source = 0002-v2-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-MUX.patch
+ source = 0003-v2-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch
+ source = 0004-v2-platform-x86-asus-wmi-support-toggling-POST-sound.patch
+ source = 0005-v2-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch
+ source = 0006-v2-platform-x86-asus-wmi-adjust-formatting-of-ppt-fcts.patch
+ source = 0007-v2-platform-x86-asus-wmi-ROG-Ally-increase-wait-time.patch
+ source = 0008-v2-platform-x86-asus-wmi-add-support-for-MCU-powersave.patch
+ source = 0009-v2-platform-x86-asus-wmi-add-clean-up-structs.patch
source = sys-kernel_arch-sources-g14_files-0047-asus-nb-wmi-Add-tablet_mode_sw-lid-flip.patch
source = sys-kernel_arch-sources-g14_files-0048-asus-nb-wmi-fix-tablet_mode_sw_int.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
@@ -49,7 +53,7 @@ pkgbase = linux-g14
validpgpkeys = 83BC8889351B5DEBBB68416EB8AC08600F108CDF
sha256sums = 9ac322d85bcf98a04667d929f5c2666b15bd58c6c2d68dd512c72acbced07d04
sha256sums = SKIP
- sha256sums = 9ccb26c046bacf04777617e96cad5b33d3d048b30bb4840a3b5ac2cdf40a3aba
+ sha256sums = 2d5fa7f4177ba1c40575d57282438ff28cdfc3729e0689eddf650616c8a93b65
sha256sums = SKIP
sha256sums = c2b00c84c4b543db431e06604d939a62f93107d18369f4d9860dc8062b01ab45
sha256sums = 278118011d7a2eeca9971ac97b31bf0c55ab55e99c662ab9ae4717b55819c9a2
@@ -67,11 +71,15 @@ pkgbase = linux-g14
sha256sums = 1edb362a762c8858374027e30ff58ae0014e117fdc05cc7db6da50f80e7aab87
sha256sums = 508f90cbe81a9a145cc540703470f1e6b5d21c7a7b9166d2ce6e56b401262b04
sha256sums = 9b94f02b87c28a7403478ce9f57461c3b2219b7279a928e814cafd78ee767366
- sha256sums = 1bc69aaec2089599c1154d7ee5709f5a6140434ef6edf81702b0ea7042a44967
- sha256sums = aa171a103d4133db4cfe153e48e71b58a85d69ed9fe144100dcc792055d79495
- sha256sums = f0e5b7653c91e025c5c2010e2447c98eaad699106b34ff140da106e628ea5c17
- sha256sums = 4b1e78681848c34175251e9dcbee02f6b2bb67a65aae6ea8bfb5e1322dc51f7a
- sha256sums = 4ee418b9d9905a89e58cc860fb93cb226f45ac2d00d767fc3c4dccb297c731ee
+ sha256sums = 06375fa2bcc6fefd8d57c0d8a13b5af02d08318f3721c58fc0354970656f3b64
+ sha256sums = f64fbf3b7e817edd7267612531d5aba3d17b727d5151b5b9e620d616797cf3da
+ sha256sums = 270fe67b07e8138be848958e9fa28ee8fecffd2e146ea68444c5200a9b09c2ed
+ sha256sums = 1b53d1914fb0186585125fcd9db2367697e4c265bfd38378aa0f59cc4e0fb46d
+ sha256sums = 9a5c4f2cc956933abcb9e1bd652dfad382108dd1f22844d6e5c393861a9ba35d
+ sha256sums = 951fe0da7b7939665ffc5094a0d39641d4c73395c264237e082d8c54b2927dfb
+ sha256sums = 66c25f11f3fc2cc0db9a3392400f072f1c3ac9408328128f075a9260f4eb01ef
+ sha256sums = d31ba415c2b65e3485d74f0268f1020dc49f31a6fe3316cf6c74a0690e96c81f
+ sha256sums = 47ad6e0781f1df1f6a6d35b8f20c2bf9dbd7e8e0b92a332cb88145755afba77c
sha256sums = 15e912a66e4bbce1cf0450f1dc6610653df29df8dd6d5426f9c1b039490436c8
sha256sums = 444f2d86de8c2177655b01596f939f99c2e7abfa8efad8a509e0a334f42dfa85
diff --git a/0001-v2-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-LED.patch b/0001-v2-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-LED.patch
new file mode 100644
index 000000000000..3eb7367db05f
--- /dev/null
+++ b/0001-v2-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-LED.patch
@@ -0,0 +1,195 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 1/9] platform/x86: asus-wmi: add support for 2024 ROG Mini-LED
+Date: Tue, 2 Apr 2024 14:34:45 +1300 [thread overview]
+Message-ID: <20240402013453.18205-2-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Support the 2024 mini-led backlight and adjust the related functions
+to select the relevant dev-id. Also add `available_mini_led_mode` to the
+platform sysfs since the available mini-led levels can be different.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ .../ABI/testing/sysfs-platform-asus-wmi | 8 ++
+ drivers/platform/x86/asus-wmi.c | 81 ++++++++++++++++---
+ include/linux/platform_data/x86/asus-wmi.h | 1 +
+ 3 files changed, 79 insertions(+), 11 deletions(-)
+
+diff --git a/Documentation/ABI/testing/sysfs-platform-asus-wmi b/Documentation/ABI/testing/sysfs-platform-asus-wmi
+index 8a7e25bde085..ef1ac1a20a71 100644
+--- a/Documentation/ABI/testing/sysfs-platform-asus-wmi
++++ b/Documentation/ABI/testing/sysfs-platform-asus-wmi
+@@ -126,6 +126,14 @@ Description:
+ Change the mini-LED mode:
+ * 0 - Single-zone,
+ * 1 - Multi-zone
++ * 2 - Multi-zone strong (available on newer generation mini-led)
++
++What: /sys/devices/platform/<platform>/available_mini_led_mode
++Date: Apr 2024
++KernelVersion: 6.10
++Contact: "Luke Jones" <luke@ljones.dev>
++Description:
++ List the available mini-led modes.
+
+ What: /sys/devices/platform/<platform>/ppt_pl1_spl
+ Date: Jun 2023
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 3f07bbf809ef..646f70c65097 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -288,7 +288,7 @@ struct asus_wmi {
+ bool battery_rsoc_available;
+
+ bool panel_overdrive_available;
+- bool mini_led_mode_available;
++ u32 mini_led_dev_id;
+
+ struct hotplug_slot hotplug_slot;
+ struct mutex hotplug_lock;
+@@ -2108,13 +2108,30 @@ static ssize_t mini_led_mode_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+ {
+ struct asus_wmi *asus = dev_get_drvdata(dev);
+- int result;
++ u32 value;
+
+- result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_MINI_LED_MODE);
+- if (result < 0)
+- return result;
++ asus_wmi_get_devstate(asus, asus->mini_led_dev_id, &value);
++ value = value & 0x03; // only 3 modes on 2024 version
+
+- return sysfs_emit(buf, "%d\n", result);
++ /* Remap the mode values to match previous generation mini-led.
++ * Some BIOSes return -19 instead of 2, which is "mini-LED off", this
++ * appears to be a BIOS bug.
++ */
++ if (asus->mini_led_dev_id == ASUS_WMI_DEVID_MINI_LED_MODE2) {
++ switch (value) {
++ case 0:
++ value = 1;
++ break;
++ case 1:
++ value = 2;
++ break;
++ case 2:
++ value = 0;
++ }
++ } else if (value < 0) {
++ return value;
++ }
++ return sysfs_emit(buf, "%d\n", value);
+ }
+
+ static ssize_t mini_led_mode_store(struct device *dev,
+@@ -2130,11 +2147,28 @@ static ssize_t mini_led_mode_store(struct device *dev,
+ if (result)
+ return result;
+
+- if (mode > 1)
++ if (mode > 1 && asus->mini_led_dev_id == ASUS_WMI_DEVID_MINI_LED_MODE)
+ return -EINVAL;
++ if (mode > 2 && asus->mini_led_dev_id == ASUS_WMI_DEVID_MINI_LED_MODE2)
++ return -EINVAL;
++ /*
++ * Remap the mode values so expected behaviour is the same as the last
++ * generation of mini-LED
++ */
++ if (asus->mini_led_dev_id == ASUS_WMI_DEVID_MINI_LED_MODE2) {
++ switch (mode) {
++ case 0:
++ mode = 2;
++ break;
++ case 1:
++ mode = 0;
++ break;
++ case 2:
++ mode = 1;
++ }
++ }
+
+- err = asus_wmi_set_devstate(ASUS_WMI_DEVID_MINI_LED_MODE, mode, &result);
+-
++ err = asus_wmi_set_devstate(asus->mini_led_dev_id, mode, &result);
+ if (err) {
+ pr_warn("Failed to set mini-LED: %d\n", err);
+ return err;
+@@ -2151,6 +2185,23 @@ static ssize_t mini_led_mode_store(struct device *dev,
+ }
+ static DEVICE_ATTR_RW(mini_led_mode);
+
++static ssize_t available_mini_led_mode_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ switch (asus->mini_led_dev_id) {
++ case ASUS_WMI_DEVID_MINI_LED_MODE:
++ return sysfs_emit(buf, "0 1\n");
++ case ASUS_WMI_DEVID_MINI_LED_MODE2:
++ return sysfs_emit(buf, "0 1 2\n");
++ }
++
++ return sysfs_emit(buf, "0\n");
++}
++
++static DEVICE_ATTR_RO(available_mini_led_mode);
++
+ /* Quirks *********************************************************************/
+
+ static void asus_wmi_set_xusb2pr(struct asus_wmi *asus)
+@@ -4139,6 +4190,7 @@ static struct attribute *platform_attributes[] = {
+ &dev_attr_nv_temp_target.attr,
+ &dev_attr_panel_od.attr,
+ &dev_attr_mini_led_mode.attr,
++ &dev_attr_available_mini_led_mode.attr,
+ NULL
+ };
+
+@@ -4191,7 +4243,9 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
+ else if (attr == &dev_attr_panel_od.attr)
+ ok = asus->panel_overdrive_available;
+ else if (attr == &dev_attr_mini_led_mode.attr)
+- ok = asus->mini_led_mode_available;
++ ok = asus->mini_led_dev_id != 0;
++ else if (attr == &dev_attr_available_mini_led_mode.attr)
++ ok = asus->mini_led_dev_id != 0;
+
+ if (devid != -1)
+ ok = !(asus_wmi_get_devstate_simple(asus, devid) < 0);
+@@ -4444,10 +4498,15 @@ static int asus_wmi_add(struct platform_device *pdev)
+ asus->nv_dyn_boost_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_NV_DYN_BOOST);
+ asus->nv_temp_tgt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_NV_THERM_TARGET);
+ asus->panel_overdrive_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PANEL_OD);
+- asus->mini_led_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MINI_LED_MODE);
+ asus->ally_mcu_usb_switch = acpi_has_method(NULL, ASUS_USB0_PWR_EC0_CSEE)
+ && dmi_match(DMI_BOARD_NAME, "RC71L");
+
++ if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MINI_LED_MODE)) {
++ asus->mini_led_dev_id = ASUS_WMI_DEVID_MINI_LED_MODE;
++ } else if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MINI_LED_MODE2)) {
++ asus->mini_led_dev_id = ASUS_WMI_DEVID_MINI_LED_MODE2;
++ }
++
+ err = fan_boost_mode_check_present(asus);
+ if (err)
+ goto fail_fan_boost_mode;
+diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
+index ab1c7deff118..9cadce10ad9a 100644
+--- a/include/linux/platform_data/x86/asus-wmi.h
++++ b/include/linux/platform_data/x86/asus-wmi.h
+@@ -71,6 +71,7 @@
+ #define ASUS_WMI_DEVID_LID_FLIP 0x00060062
+ #define ASUS_WMI_DEVID_LID_FLIP_ROG 0x00060077
+ #define ASUS_WMI_DEVID_MINI_LED_MODE 0x0005001E
++#define ASUS_WMI_DEVID_MINI_LED_MODE2 0x0005002E
+
+ /* Storage */
+ #define ASUS_WMI_DEVID_CARDREADER 0x00080013
+--
+2.44.0
diff --git a/0002-v2-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-MUX.patch b/0002-v2-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-MUX.patch
new file mode 100644
index 000000000000..d7f688ce8c22
--- /dev/null
+++ b/0002-v2-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-MUX.patch
@@ -0,0 +1,122 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 2/9] platform/x86: asus-wmi: add support for Vivobook GPU MUX
+Date: Tue, 2 Apr 2024 14:34:46 +1300 [thread overview]
+Message-ID: <20240402013453.18205-3-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Add support for the Vivobook dgpu MUX available on the ASUS Viviobook
+and some of the other ranges (Zen).
+
+This MUX functions exactly the same as the existing ROG MUX support so
+the existing functionality now detects which MUX is available and uses
+that for control.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-wmi.c | 23 +++++++++++++---------
+ include/linux/platform_data/x86/asus-wmi.h | 1 +
+ 2 files changed, 15 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 646f70c65097..7d7a9c8ee529 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -259,7 +259,7 @@ struct asus_wmi {
+ bool egpu_enable_available;
+ bool egpu_connect_available;
+ bool dgpu_disable_available;
+- bool gpu_mux_mode_available;
++ u32 gpu_mux_dev;
+
+ /* Tunables provided by ASUS for gaming laptops */
+ bool ppt_pl2_sppt_available;
+@@ -682,8 +682,8 @@ static ssize_t dgpu_disable_store(struct device *dev,
+ if (disable > 1)
+ return -EINVAL;
+
+- if (asus->gpu_mux_mode_available) {
+- result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_GPU_MUX);
++ if (asus->gpu_mux_dev) {
++ result = asus_wmi_get_devstate_simple(asus, asus->gpu_mux_dev);
+ if (result < 0)
+ /* An error here may signal greater failure of GPU handling */
+ return result;
+@@ -748,8 +748,8 @@ static ssize_t egpu_enable_store(struct device *dev,
+ return err;
+ }
+
+- if (asus->gpu_mux_mode_available) {
+- result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_GPU_MUX);
++ if (asus->gpu_mux_dev) {
++ result = asus_wmi_get_devstate_simple(asus, asus->gpu_mux_dev);
+ if (result < 0) {
+ /* An error here may signal greater failure of GPU handling */
+ pr_warn("Failed to get gpu mux status: %d\n", result);
+@@ -802,7 +802,7 @@ static ssize_t gpu_mux_mode_show(struct device *dev,
+ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result;
+
+- result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_GPU_MUX);
++ result = asus_wmi_get_devstate_simple(asus, asus->gpu_mux_dev);
+ if (result < 0)
+ return result;
+
+@@ -848,7 +848,7 @@ static ssize_t gpu_mux_mode_store(struct device *dev,
+ }
+ }
+
+- err = asus_wmi_set_devstate(ASUS_WMI_DEVID_GPU_MUX, optimus, &result);
++ err = asus_wmi_set_devstate(asus->gpu_mux_dev, optimus, &result);
+ if (err) {
+ dev_err(dev, "Failed to set GPU MUX mode: %d\n", err);
+ return err;
+@@ -4221,7 +4221,7 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
+ else if (attr == &dev_attr_dgpu_disable.attr)
+ ok = asus->dgpu_disable_available;
+ else if (attr == &dev_attr_gpu_mux_mode.attr)
+- ok = asus->gpu_mux_mode_available;
++ ok = asus->gpu_mux_dev != 0;
+ else if (attr == &dev_attr_fan_boost_mode.attr)
+ ok = asus->fan_boost_mode_available;
+ else if (attr == &dev_attr_throttle_thermal_policy.attr)
+@@ -4487,7 +4487,6 @@ static int asus_wmi_add(struct platform_device *pdev)
+ asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU);
+ asus->egpu_connect_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU_CONNECTED);
+ asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU);
+- asus->gpu_mux_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX);
+ asus->kbd_rgb_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE);
+ asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
+ asus->ppt_pl2_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PL2_SPPT);
+@@ -4507,6 +4506,12 @@ static int asus_wmi_add(struct platform_device *pdev)
+ asus->mini_led_dev_id = ASUS_WMI_DEVID_MINI_LED_MODE2;
+ }
+
++ if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX)) {
++ asus->gpu_mux_dev = ASUS_WMI_DEVID_GPU_MUX;
++ } else if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX_VIVO)) {
++ asus->gpu_mux_dev = ASUS_WMI_DEVID_GPU_MUX_VIVO;
++ }
++
+ err = fan_boost_mode_check_present(asus);
+ if (err)
+ goto fail_fan_boost_mode;
+diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
+index 9cadce10ad9a..b48b024dd844 100644
+--- a/include/linux/platform_data/x86/asus-wmi.h
++++ b/include/linux/platform_data/x86/asus-wmi.h
+@@ -128,6 +128,7 @@
+
+ /* gpu mux switch, 0 = dGPU, 1 = Optimus */
+ #define ASUS_WMI_DEVID_GPU_MUX 0x00090016
++#define ASUS_WMI_DEVID_GPU_MUX_VIVO 0x00090026
+
+ /* TUF laptop RGB modes/colours */
+ #define ASUS_WMI_DEVID_TUF_RGB_MODE 0x00100056
+--
+2.44.0
+
+
diff --git a/0003-v2-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch b/0003-v2-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch
new file mode 100644
index 000000000000..e735ccdc233d
--- /dev/null
+++ b/0003-v2-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch
@@ -0,0 +1,94 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 3/9] platform/x86: asus-wmi: add support variant of TUF RGB
+Date: Tue, 2 Apr 2024 14:34:47 +1300 [thread overview]
+Message-ID: <20240402013453.18205-4-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Adds support for a second TUF RGB wmi call that some versions of the TUF
+laptop come with. Also adjusts existing support to select whichever is
+available.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-wmi.c | 14 ++++++++++----
+ include/linux/platform_data/x86/asus-wmi.h | 1 +
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 7d7a9c8ee529..fa5735af7675 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -270,7 +270,7 @@ struct asus_wmi {
+ bool nv_dyn_boost_available;
+ bool nv_temp_tgt_available;
+
+- bool kbd_rgb_mode_available;
++ u32 kbd_rgb_dev;
+ bool kbd_rgb_state_available;
+
+ bool throttle_thermal_policy_available;
+@@ -870,6 +870,7 @@ static ssize_t kbd_rgb_mode_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ u32 cmd, mode, r, g, b, speed;
+ int err;
+
+@@ -906,7 +907,7 @@ static ssize_t kbd_rgb_mode_store(struct device *dev,
+ speed = 0xeb;
+ }
+
+- err = asus_wmi_evaluate_method3(ASUS_WMI_METHODID_DEVS, ASUS_WMI_DEVID_TUF_RGB_MODE,
++ err = asus_wmi_evaluate_method3(ASUS_WMI_METHODID_DEVS, asus->kbd_rgb_dev,
+ cmd | (mode << 8) | (r << 16) | (g << 24), b | (speed << 8), NULL);
+ if (err)
+ return err;
+@@ -1549,7 +1550,7 @@ static int asus_wmi_led_init(struct asus_wmi *asus)
+ {
+ int rv = 0, num_rgb_groups = 0, led_val;
+
+- if (asus->kbd_rgb_mode_available)
++ if (asus->kbd_rgb_dev)
+ kbd_rgb_mode_groups[num_rgb_groups++] = &kbd_rgb_mode_group;
+ if (asus->kbd_rgb_state_available)
+ kbd_rgb_mode_groups[num_rgb_groups++] = &kbd_rgb_state_group;
+@@ -4487,7 +4488,6 @@ static int asus_wmi_add(struct platform_device *pdev)
+ asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU);
+ asus->egpu_connect_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU_CONNECTED);
+ asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU);
+- asus->kbd_rgb_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE);
+ asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
+ asus->ppt_pl2_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PL2_SPPT);
+ asus->ppt_pl1_spl_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PL1_SPL);
+@@ -4512,6 +4512,12 @@ static int asus_wmi_add(struct platform_device *pdev)
+ asus->gpu_mux_dev = ASUS_WMI_DEVID_GPU_MUX_VIVO;
+ }
+
++ if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE)) {
++ asus->kbd_rgb_dev = ASUS_WMI_DEVID_TUF_RGB_MODE;
++ } else if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE2)) {
++ asus->kbd_rgb_dev = ASUS_WMI_DEVID_TUF_RGB_MODE2;
++ }
++
+ err = fan_boost_mode_check_present(asus);
+ if (err)
+ goto fail_fan_boost_mode;
+diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
+index b48b024dd844..3e9a01467c67 100644
+--- a/include/linux/platform_data/x86/asus-wmi.h
++++ b/include/linux/platform_data/x86/asus-wmi.h
+@@ -132,6 +132,7 @@
+
+ /* TUF laptop RGB modes/colours */
+ #define ASUS_WMI_DEVID_TUF_RGB_MODE 0x00100056
++#define ASUS_WMI_DEVID_TUF_RGB_MODE2 0x0010005A
+
+ /* TUF laptop RGB power/state */
+ #define ASUS_WMI_DEVID_TUF_RGB_STATE 0x00100057
+--
+2.44.0
diff --git a/0004-v2-platform-x86-asus-wmi-support-toggling-POST-sound.patch b/0004-v2-platform-x86-asus-wmi-support-toggling-POST-sound.patch
new file mode 100644
index 000000000000..e04126fd0802
--- /dev/null
+++ b/0004-v2-platform-x86-asus-wmi-support-toggling-POST-sound.patch
@@ -0,0 +1,129 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 4/9] platform/x86: asus-wmi: support toggling POST sound
+Date: Tue, 2 Apr 2024 14:34:48 +1300 [thread overview]
+Message-ID: <20240402013453.18205-5-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Add support for toggling the BIOS POST sound on some ASUS laptops.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ .../ABI/testing/sysfs-platform-asus-wmi | 9 ++++
+ drivers/platform/x86/asus-wmi.c | 51 +++++++++++++++++++
+ include/linux/platform_data/x86/asus-wmi.h | 3 ++
+ 3 files changed, 63 insertions(+)
+
+diff --git a/Documentation/ABI/testing/sysfs-platform-asus-wmi b/Documentation/ABI/testing/sysfs-platform-asus-wmi
+index ef1ac1a20a71..41b92e53e88a 100644
+--- a/Documentation/ABI/testing/sysfs-platform-asus-wmi
++++ b/Documentation/ABI/testing/sysfs-platform-asus-wmi
+@@ -194,3 +194,12 @@ Contact: "Luke Jones" <luke@ljones.dev>
+ Description:
+ Set the target temperature limit of the Nvidia dGPU:
+ * min=75, max=87
++
++What: /sys/devices/platform/<platform>/boot_sound
++Date: Apr 2024
++KernelVersion: 6.10
++Contact: "Luke Jones" <luke@ljones.dev>
++Description:
++ Set if the BIOS POST sound is played on boot.
++ * 0 - False,
++ * 1 - True
+\ No newline at end of file
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index fa5735af7675..fcf976967325 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -2104,6 +2104,54 @@ static ssize_t panel_od_store(struct device *dev,
+ }
+ static DEVICE_ATTR_RW(panel_od);
+
++/* Bootup sound ***************************************************************/
++
++static ssize_t boot_sound_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++ int result;
++
++ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_BOOT_SOUND);
++ if (result < 0)
++ return result;
++
++ return sysfs_emit(buf, "%d\n", result);
++}
++
++static ssize_t boot_sound_store(struct device *dev,
++ struct device_attribute *attr,
++ const char *buf, size_t count)
++{
++ int result, err;
++ u32 snd;
++
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ result = kstrtou32(buf, 10, &snd);
++ if (result)
++ return result;
++
++ if (snd > 1)
++ return -EINVAL;
++
++ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BOOT_SOUND, snd, &result);
++ if (err) {
++ pr_warn("Failed to set boot sound: %d\n", err);
++ return err;
++ }
++
++ if (result > 1) {
++ pr_warn("Failed to set panel boot sound (result): 0x%x\n", result);
++ return -EIO;
++ }
++
++ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "boot_sound");
++
++ return count;
++}
++static DEVICE_ATTR_RW(boot_sound);
++
+ /* Mini-LED mode **************************************************************/
+ static ssize_t mini_led_mode_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+@@ -4189,6 +4237,7 @@ static struct attribute *platform_attributes[] = {
+ &dev_attr_ppt_platform_sppt.attr,
+ &dev_attr_nv_dynamic_boost.attr,
+ &dev_attr_nv_temp_target.attr,
++ &dev_attr_boot_sound.attr,
+ &dev_attr_panel_od.attr,
+ &dev_attr_mini_led_mode.attr,
+ &dev_attr_available_mini_led_mode.attr,
+@@ -4241,6 +4290,8 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
+ ok = asus->nv_dyn_boost_available;
+ else if (attr == &dev_attr_nv_temp_target.attr)
+ ok = asus->nv_temp_tgt_available;
++ else if (attr == &dev_attr_boot_sound.attr)
++ devid = ASUS_WMI_DEVID_BOOT_SOUND;
+ else if (attr == &dev_attr_panel_od.attr)
+ ok = asus->panel_overdrive_available;
+ else if (attr == &dev_attr_mini_led_mode.attr)
+diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
+index 3e9a01467c67..3eb5cd6773ad 100644
+--- a/include/linux/platform_data/x86/asus-wmi.h
++++ b/include/linux/platform_data/x86/asus-wmi.h
+@@ -137,6 +137,9 @@
+ /* TUF laptop RGB power/state */
+ #define ASUS_WMI_DEVID_TUF_RGB_STATE 0x00100057
+
++/* Bootup sound control */
++#define ASUS_WMI_DEVID_BOOT_SOUND 0x00130022
++
+ /* DSTS masks */
+ #define ASUS_WMI_DSTS_STATUS_BIT 0x00000001
+ #define ASUS_WMI_DSTS_UNKNOWN_BIT 0x00000002
+--
+2.44.0
diff --git a/0005-v2-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch b/0005-v2-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch
new file mode 100644
index 000000000000..61d28d5a4bb1
--- /dev/null
+++ b/0005-v2-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch
@@ -0,0 +1,265 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 5/9] platform/x86: asus-wmi: store a min default for ppt options
+Date: Tue, 2 Apr 2024 14:34:49 +1300 [thread overview]
+Message-ID: <20240402013453.18205-6-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Laptops with any of the ppt or nv tunables default to the minimum setting
+on boot so we can safely assume a stored value is correct.
+
+This patch adds storing of those values in the local struct, and enables
+reading of those values back. To prevent creating a series of byte holes
+in the struct the "<name>_available" bool is removed and
+`asus_sysfs_is_visible()` uses the `ASUS_WMI_DEVID_<name>` directly.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-wmi.c | 127 +++++++++++++++++++++++++-------
+ 1 file changed, 99 insertions(+), 28 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index fcf976967325..0d304a04e7de 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -262,13 +262,13 @@ struct asus_wmi {
+ u32 gpu_mux_dev;
+
+ /* Tunables provided by ASUS for gaming laptops */
+- bool ppt_pl2_sppt_available;
+- bool ppt_pl1_spl_available;
+- bool ppt_apu_sppt_available;
+- bool ppt_plat_sppt_available;
+- bool ppt_fppt_available;
+- bool nv_dyn_boost_available;
+- bool nv_temp_tgt_available;
++ u32 ppt_pl2_sppt;
++ u32 ppt_pl1_spl;
++ u32 ppt_apu_sppt;
++ u32 ppt_platform_sppt;
++ u32 ppt_fppt;
++ u32 nv_dynamic_boost;
++ u32 nv_temp_target;
+
+ u32 kbd_rgb_dev;
+ bool kbd_rgb_state_available;
+@@ -1020,11 +1020,21 @@ static ssize_t ppt_pl2_sppt_store(struct device *dev,
+ return -EIO;
+ }
+
++ asus->ppt_pl2_sppt = value;
+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_pl2_sppt");
+
+ return count;
+ }
+-static DEVICE_ATTR_WO(ppt_pl2_sppt);
++
++static ssize_t ppt_pl2_sppt_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ return sysfs_emit(buf, "%d\n", asus->ppt_pl2_sppt);
++}
++static DEVICE_ATTR_RW(ppt_pl2_sppt);
+
+ /* Tunable: PPT, Intel=PL1, AMD=SPL ******************************************/
+ static ssize_t ppt_pl1_spl_store(struct device *dev,
+@@ -1054,11 +1064,20 @@ static ssize_t ppt_pl1_spl_store(struct device *dev,
+ return -EIO;
+ }
+
++ asus->ppt_pl1_spl = value;
+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_pl1_spl");
+
+ return count;
+ }
+-static DEVICE_ATTR_WO(ppt_pl1_spl);
++static ssize_t ppt_pl1_spl_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ return sysfs_emit(buf, "%d\n", asus->ppt_pl1_spl);
++}
++static DEVICE_ATTR_RW(ppt_pl1_spl);
+
+ /* Tunable: PPT APU FPPT ******************************************************/
+ static ssize_t ppt_fppt_store(struct device *dev,
+@@ -1088,11 +1107,21 @@ static ssize_t ppt_fppt_store(struct device *dev,
+ return -EIO;
+ }
+
++ asus->ppt_fppt = value;
+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_fpu_sppt");
+
+ return count;
+ }
+-static DEVICE_ATTR_WO(ppt_fppt);
++
++static ssize_t ppt_fppt_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ return sysfs_emit(buf, "%d\n", asus->ppt_fppt);
++}
++static DEVICE_ATTR_RW(ppt_fppt);
+
+ /* Tunable: PPT APU SPPT *****************************************************/
+ static ssize_t ppt_apu_sppt_store(struct device *dev,
+@@ -1122,11 +1151,21 @@ static ssize_t ppt_apu_sppt_store(struct device *dev,
+ return -EIO;
+ }
+
++ asus->ppt_apu_sppt = value;
+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_apu_sppt");
+
+ return count;
+ }
+-static DEVICE_ATTR_WO(ppt_apu_sppt);
++
++static ssize_t ppt_apu_sppt_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ return sysfs_emit(buf, "%d\n", asus->ppt_apu_sppt);
++}
++static DEVICE_ATTR_RW(ppt_apu_sppt);
+
+ /* Tunable: PPT platform SPPT ************************************************/
+ static ssize_t ppt_platform_sppt_store(struct device *dev,
+@@ -1156,11 +1195,21 @@ static ssize_t ppt_platform_sppt_store(struct device *dev,
+ return -EIO;
+ }
+
++ asus->ppt_platform_sppt = value;
+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "ppt_platform_sppt");
+
+ return count;
+ }
+-static DEVICE_ATTR_WO(ppt_platform_sppt);
++
++static ssize_t ppt_platform_sppt_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ return sysfs_emit(buf, "%d\n", asus->ppt_platform_sppt);
++}
++static DEVICE_ATTR_RW(ppt_platform_sppt);
+
+ /* Tunable: NVIDIA dynamic boost *********************************************/
+ static ssize_t nv_dynamic_boost_store(struct device *dev,
+@@ -1190,11 +1239,21 @@ static ssize_t nv_dynamic_boost_store(struct device *dev,
+ return -EIO;
+ }
+
++ asus->nv_dynamic_boost = value;
+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "nv_dynamic_boost");
+
+ return count;
+ }
+-static DEVICE_ATTR_WO(nv_dynamic_boost);
++
++static ssize_t nv_dynamic_boost_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ return sysfs_emit(buf, "%d\n", asus->nv_dynamic_boost);
++}
++static DEVICE_ATTR_RW(nv_dynamic_boost);
+
+ /* Tunable: NVIDIA temperature target ****************************************/
+ static ssize_t nv_temp_target_store(struct device *dev,
+@@ -1224,11 +1283,21 @@ static ssize_t nv_temp_target_store(struct device *dev,
+ return -EIO;
+ }
+
++ asus->nv_temp_target = value;
+ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "nv_temp_target");
+
+ return count;
+ }
+-static DEVICE_ATTR_WO(nv_temp_target);
++
++static ssize_t nv_temp_target_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ return sysfs_emit(buf, "%d\n", asus->nv_temp_target);
++}
++static DEVICE_ATTR_RW(nv_temp_target);
+
+ /* Battery ********************************************************************/
+
+@@ -4277,19 +4346,19 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
+ else if (attr == &dev_attr_throttle_thermal_policy.attr)
+ ok = asus->throttle_thermal_policy_available;
+ else if (attr == &dev_attr_ppt_pl2_sppt.attr)
+- ok = asus->ppt_pl2_sppt_available;
++ devid = ASUS_WMI_DEVID_PPT_PL2_SPPT;
+ else if (attr == &dev_attr_ppt_pl1_spl.attr)
+- ok = asus->ppt_pl1_spl_available;
++ devid = ASUS_WMI_DEVID_PPT_PL1_SPL;
+ else if (attr == &dev_attr_ppt_fppt.attr)
+- ok = asus->ppt_fppt_available;
++ devid = ASUS_WMI_DEVID_PPT_FPPT;
+ else if (attr == &dev_attr_ppt_apu_sppt.attr)
+- ok = asus->ppt_apu_sppt_available;
++ devid = ASUS_WMI_DEVID_PPT_APU_SPPT;
+ else if (attr == &dev_attr_ppt_platform_sppt.attr)
+- ok = asus->ppt_plat_sppt_available;
++ devid = ASUS_WMI_DEVID_PPT_PLAT_SPPT;
+ else if (attr == &dev_attr_nv_dynamic_boost.attr)
+- ok = asus->nv_dyn_boost_available;
++ devid = ASUS_WMI_DEVID_NV_DYN_BOOST;
+ else if (attr == &dev_attr_nv_temp_target.attr)
+- ok = asus->nv_temp_tgt_available;
++ devid = ASUS_WMI_DEVID_NV_THERM_TARGET;
+ else if (attr == &dev_attr_boot_sound.attr)
+ devid = ASUS_WMI_DEVID_BOOT_SOUND;
+ else if (attr == &dev_attr_panel_od.attr)
+@@ -4535,18 +4604,20 @@ static int asus_wmi_add(struct platform_device *pdev)
+ if (err)
+ goto fail_platform;
+
++ /* ensure defaults for tunables */
++ asus->ppt_pl2_sppt = 5;
++ asus->ppt_pl1_spl = 5;
++ asus->ppt_apu_sppt = 5;
++ asus->ppt_platform_sppt = 5;
++ asus->ppt_fppt = 5;
++ asus->nv_dynamic_boost = 5;
++ asus->nv_temp_target = 75;
++
+ asus->charge_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_CHARGE_MODE);
+ asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU);
+ asus->egpu_connect_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU_CONNECTED);
+ asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU);
+ asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
+- asus->ppt_pl2_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PL2_SPPT);
+- asus->ppt_pl1_spl_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PL1_SPL);
+- asus->ppt_fppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_FPPT);
+- asus->ppt_apu_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_APU_SPPT);
+- asus->ppt_plat_sppt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PPT_PLAT_SPPT);
+- asus->nv_dyn_boost_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_NV_DYN_BOOST);
+- asus->nv_temp_tgt_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_NV_THERM_TARGET);
+ asus->panel_overdrive_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PANEL_OD);
+ asus->ally_mcu_usb_switch = acpi_has_method(NULL, ASUS_USB0_PWR_EC0_CSEE)
+ && dmi_match(DMI_BOARD_NAME, "RC71L");
+--
+2.44.0
diff --git a/0006-v2-platform-x86-asus-wmi-adjust-formatting-of-ppt-fcts.patch b/0006-v2-platform-x86-asus-wmi-adjust-formatting-of-ppt-fcts.patch
new file mode 100644
index 000000000000..93c3e6ece467
--- /dev/null
+++ b/0006-v2-platform-x86-asus-wmi-adjust-formatting-of-ppt-fcts.patch
@@ -0,0 +1,115 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 6/9] platform/x86: asus-wmi: adjust formatting of ppt-<name>() functions
+Date: Tue, 2 Apr 2024 14:34:50 +1300 [thread overview]
+Message-ID: <20240402013453.18205-7-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Shift the call to dev_get_drvdata() up to top of the function block
+in all of the ppt_<name>() functions as part of a minor cleanup.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-wmi.c | 21 +++++++--------------
+ 1 file changed, 7 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 0d304a04e7de..2ff78e194801 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -997,11 +997,10 @@ static ssize_t ppt_pl2_sppt_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result, err;
+ u32 value;
+
+- struct asus_wmi *asus = dev_get_drvdata(dev);
+-
+ result = kstrtou32(buf, 10, &value);
+ if (result)
+ return result;
+@@ -1041,11 +1040,10 @@ static ssize_t ppt_pl1_spl_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result, err;
+ u32 value;
+
+- struct asus_wmi *asus = dev_get_drvdata(dev);
+-
+ result = kstrtou32(buf, 10, &value);
+ if (result)
+ return result;
+@@ -1084,11 +1082,10 @@ static ssize_t ppt_fppt_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result, err;
+ u32 value;
+
+- struct asus_wmi *asus = dev_get_drvdata(dev);
+-
+ result = kstrtou32(buf, 10, &value);
+ if (result)
+ return result;
+@@ -1128,11 +1125,10 @@ static ssize_t ppt_apu_sppt_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result, err;
+ u32 value;
+
+- struct asus_wmi *asus = dev_get_drvdata(dev);
+-
+ result = kstrtou32(buf, 10, &value);
+ if (result)
+ return result;
+@@ -1172,11 +1168,10 @@ static ssize_t ppt_platform_sppt_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result, err;
+ u32 value;
+
+- struct asus_wmi *asus = dev_get_drvdata(dev);
+-
+ result = kstrtou32(buf, 10, &value);
+ if (result)
+ return result;
+@@ -1216,11 +1211,10 @@ static ssize_t nv_dynamic_boost_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result, err;
+ u32 value;
+
+- struct asus_wmi *asus = dev_get_drvdata(dev);
+-
+ result = kstrtou32(buf, 10, &value);
+ if (result)
+ return result;
+@@ -1260,11 +1254,10 @@ static ssize_t nv_temp_target_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ int result, err;
+ u32 value;
+
+- struct asus_wmi *asus = dev_get_drvdata(dev);
+-
+ result = kstrtou32(buf, 10, &value);
+ if (result)
+ return result;
+--
+2.44.0
diff --git a/0007-v2-platform-x86-asus-wmi-ROG-Ally-increase-wait-time.patch b/0007-v2-platform-x86-asus-wmi-ROG-Ally-increase-wait-time.patch
new file mode 100644
index 000000000000..555dad2c2d03
--- /dev/null
+++ b/0007-v2-platform-x86-asus-wmi-ROG-Ally-increase-wait-time.patch
@@ -0,0 +1,72 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 7/9] platform/x86: asus-wmi: ROG Ally increase wait time, allow MCU powersave
+Date: Tue, 2 Apr 2024 14:34:51 +1300 [thread overview]
+Message-ID: <20240402013453.18205-8-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+The previous work to allow the MCU to be resumed correctly after sleep
+and resume tried to take the shortest possible time. However as work
+continues in various other parts of the s2idle subsystems it has shown
+that it wasn't entirely reliable.
+
+If the MCU disable/enable call is done correctly the MCU fully removes
+its USB endpoints, and this shows as a full USB device reconnection on
+resume. When we tried to short this as much as possible sometimes the
+MCU doesn't get to complete what it needs to do before going to low-power
+and this affected the reconnection.
+
+Through trial it is found that the minimum time required is approx 1200ms
+to allow a proper disconnect and disable, and the same amount of time on
+resume is required to prevent a rapid disconnect/reconnect happening on
+seemingly random occasions. To be safe the time is now 1500ms for msleep.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-wmi.c | 12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 2ff78e194801..ec249eca0d94 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -129,7 +129,7 @@ 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 300
++#define ASUS_USB0_PWR_EC0_CSEE_WAIT 1500
+
+ static const char * const ashs_ids[] = { "ATK4001", "ATK4002", NULL };
+
+@@ -4814,6 +4814,7 @@ static int asus_hotk_resume_early(struct device *device)
+ struct asus_wmi *asus = dev_get_drvdata(device);
+
+ if (asus->ally_mcu_usb_switch) {
++ /* sleep required to prevent USB0 being yanked then reappearing rapidly */
+ 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
+@@ -4825,17 +4826,8 @@ static int asus_hotk_resume_early(struct device *device)
+ static int asus_hotk_prepare(struct device *device)
+ {
+ struct asus_wmi *asus = dev_get_drvdata(device);
+- int result, err;
+
+ if (asus->ally_mcu_usb_switch) {
+- /* When powersave is enabled it causes many issues with resume of USB hub */
+- result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_MCU_POWERSAVE);
+- if (result == 1) {
+- dev_warn(device, "MCU powersave enabled, disabling to prevent resume issues");
+- err = asus_wmi_set_devstate(ASUS_WMI_DEVID_MCU_POWERSAVE, 0, &result);
+- if (err || result != 1)
+- dev_err(device, "Failed to set MCU powersave mode: %d\n", err);
+- }
+ /* 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");
+--
+2.44.0
diff --git a/0008-v2-platform-x86-asus-wmi-add-support-for-MCU-powersave.patch b/0008-v2-platform-x86-asus-wmi-add-support-for-MCU-powersave.patch
new file mode 100644
index 000000000000..11e0a346f685
--- /dev/null
+++ b/0008-v2-platform-x86-asus-wmi-add-support-for-MCU-powersave.patch
@@ -0,0 +1,117 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 8/9] platform/x86: asus-wmi: Add support for MCU powersave
+Date: Tue, 2 Apr 2024 14:34:52 +1300 [thread overview]
+Message-ID: <20240402013453.18205-9-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Add support for an MCU powersave WMI call. This is intended to set the
+MCU in to a low-power mode when sleeping. This mode can cut sleep power
+use by around half.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ .../ABI/testing/sysfs-platform-asus-wmi | 11 +++-
+ drivers/platform/x86/asus-wmi.c | 50 +++++++++++++++++++
+ 2 files changed, 60 insertions(+), 1 deletion(-)
+
+diff --git a/Documentation/ABI/testing/sysfs-platform-asus-wmi b/Documentation/ABI/testing/sysfs-platform-asus-wmi
+index 41b92e53e88a..28144371a0f1 100644
+--- a/Documentation/ABI/testing/sysfs-platform-asus-wmi
++++ b/Documentation/ABI/testing/sysfs-platform-asus-wmi
+@@ -202,4 +202,13 @@ Contact: "Luke Jones" <luke@ljones.dev>
+ Description:
+ Set if the BIOS POST sound is played on boot.
+ * 0 - False,
+- * 1 - True
+\ No newline at end of file
++ * 1 - True
++
++What: /sys/devices/platform/<platform>/mcu_powersave
++Date: Apr 2024
++KernelVersion: 6.10
++Contact: "Luke Jones" <luke@ljones.dev>
++Description:
++ Set if the MCU can go in to low-power mode on system sleep
++ * 0 - False,
++ * 1 - True
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index ec249eca0d94..a6b648457908 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -1292,6 +1292,53 @@ static ssize_t nv_temp_target_show(struct device *dev,
+ }
+ static DEVICE_ATTR_RW(nv_temp_target);
+
++/* Ally MCU Powersave ********************************************************/
++static ssize_t mcu_powersave_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++ int result;
++
++ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_MCU_POWERSAVE);
++ if (result < 0)
++ return result;
++
++ return sysfs_emit(buf, "%d\n", result);
++}
++
++static ssize_t mcu_powersave_store(struct device *dev,
++ struct device_attribute *attr,
++ const char *buf, size_t count)
++{
++ int result, err;
++ u32 enable;
++
++ struct asus_wmi *asus = dev_get_drvdata(dev);
++
++ result = kstrtou32(buf, 10, &enable);
++ if (result)
++ return result;
++
++ if (enable > 1)
++ return -EINVAL;
++
++ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_MCU_POWERSAVE, enable, &result);
++ if (err) {
++ pr_warn("Failed to set MCU powersave: %d\n", err);
++ return err;
++ }
++
++ if (result > 1) {
++ pr_warn("Failed to set MCU powersave (result): 0x%x\n", result);
++ return -EIO;
++ }
++
++ sysfs_notify(&asus->platform_device->dev.kobj, NULL, "mcu_powersave");
++
++ return count;
++}
++static DEVICE_ATTR_RW(mcu_powersave);
++
+ /* Battery ********************************************************************/
+
+ /* The battery maximum charging percentage */
+@@ -4299,6 +4346,7 @@ static struct attribute *platform_attributes[] = {
+ &dev_attr_ppt_platform_sppt.attr,
+ &dev_attr_nv_dynamic_boost.attr,
+ &dev_attr_nv_temp_target.attr,
++ &dev_attr_mcu_powersave.attr,
+ &dev_attr_boot_sound.attr,
+ &dev_attr_panel_od.attr,
+ &dev_attr_mini_led_mode.attr,
+@@ -4352,6 +4400,8 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
+ devid = ASUS_WMI_DEVID_NV_DYN_BOOST;
+ else if (attr == &dev_attr_nv_temp_target.attr)
+ devid = ASUS_WMI_DEVID_NV_THERM_TARGET;
++ else if (attr == &dev_attr_mcu_powersave.attr)
++ devid = ASUS_WMI_DEVID_MCU_POWERSAVE;
+ else if (attr == &dev_attr_boot_sound.attr)
+ devid = ASUS_WMI_DEVID_BOOT_SOUND;
+ else if (attr == &dev_attr_panel_od.attr)
+--
+2.44.0
diff --git a/0009-v2-platform-x86-asus-wmi-add-clean-up-structs.patch b/0009-v2-platform-x86-asus-wmi-add-clean-up-structs.patch
new file mode 100644
index 000000000000..6d38151cdf0e
--- /dev/null
+++ b/0009-v2-platform-x86-asus-wmi-add-clean-up-structs.patch
@@ -0,0 +1,91 @@
+From: "Luke D. Jones" <luke@ljones.dev>
+To: hdegoede@redhat.com
+Cc: corentin.chary@gmail.com, ilpo.jarvinen@linux.intel.com,
+ platform-driver-x86@vger.kernel.org,
+ linux-kernel@vger.kernel.org, "Luke D. Jones" <luke@ljones.dev>
+Subject: [PATCH v1 9/9] platform/x86: asus-wmi: cleanup main struct to avoid some holes
+Date: Tue, 2 Apr 2024 14:34:53 +1300 [thread overview]
+Message-ID: <20240402013453.18205-10-luke@ljones.dev> (raw)
+In-Reply-To: <20240402013453.18205-1-luke@ljones.dev>
+
+Reorganises some attr-available calls to remove a few unrequired
+booleans in the main driver struct which combined with some
+reorganisation prevents a series of large holes seen with pahole.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-wmi.c | 17 ++++++-----------
+ 1 file changed, 6 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index a6b648457908..7163cce7079c 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -243,6 +243,9 @@ struct asus_wmi {
+ u32 tablet_switch_dev_id;
+ bool tablet_switch_inverted;
+
++ /* The ROG Ally device requires the MCU USB device be disconnected before suspend */
++ bool ally_mcu_usb_switch;
++
+ enum fan_type fan_type;
+ enum fan_type gpu_fan_type;
+ enum fan_type mid_fan_type;
+@@ -255,9 +258,7 @@ struct asus_wmi {
+ u8 fan_boost_mode_mask;
+ u8 fan_boost_mode;
+
+- bool charge_mode_available;
+ bool egpu_enable_available;
+- bool egpu_connect_available;
+ bool dgpu_disable_available;
+ u32 gpu_mux_dev;
+
+@@ -298,9 +299,6 @@ struct asus_wmi {
+
+ bool fnlock_locked;
+
+- /* The ROG Ally device requires the MCU USB device be disconnected before suspend */
+- bool ally_mcu_usb_switch;
+-
+ struct asus_wmi_debug debug;
+
+ struct asus_wmi_driver *driver;
+@@ -4373,11 +4371,11 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
+ else if (attr == &dev_attr_als_enable.attr)
+ devid = ASUS_WMI_DEVID_ALS_ENABLE;
+ else if (attr == &dev_attr_charge_mode.attr)
+- ok = asus->charge_mode_available;
++ devid = ASUS_WMI_DEVID_CHARGE_MODE;
+ else if (attr == &dev_attr_egpu_enable.attr)
+ ok = asus->egpu_enable_available;
+ else if (attr == &dev_attr_egpu_connected.attr)
+- ok = asus->egpu_connect_available;
++ devid = ASUS_WMI_DEVID_EGPU_CONNECTED;
+ else if (attr == &dev_attr_dgpu_disable.attr)
+ ok = asus->dgpu_disable_available;
+ else if (attr == &dev_attr_gpu_mux_mode.attr)
+@@ -4405,7 +4403,7 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
+ else if (attr == &dev_attr_boot_sound.attr)
+ devid = ASUS_WMI_DEVID_BOOT_SOUND;
+ else if (attr == &dev_attr_panel_od.attr)
+- ok = asus->panel_overdrive_available;
++ devid = ASUS_WMI_DEVID_PANEL_OD;
+ else if (attr == &dev_attr_mini_led_mode.attr)
+ ok = asus->mini_led_dev_id != 0;
+ else if (attr == &dev_attr_available_mini_led_mode.attr)
+@@ -4656,12 +4654,9 @@ static int asus_wmi_add(struct platform_device *pdev)
+ asus->nv_dynamic_boost = 5;
+ asus->nv_temp_target = 75;
+
+- asus->charge_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_CHARGE_MODE);
+ asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU);
+- asus->egpu_connect_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU_CONNECTED);
+ asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU);
+ asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
+- asus->panel_overdrive_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PANEL_OD);
+ asus->ally_mcu_usb_switch = acpi_has_method(NULL, ASUS_USB0_PWR_EC0_CSEE)
+ && dmi_match(DMI_BOARD_NAME, "RC71L");
+
+--
+2.44.0
diff --git a/PKGBUILD b/PKGBUILD
index b8dec971b3db..553ff2b5f055 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgbase=linux-g14
-pkgver=6.8.2.arch1
+pkgver=6.8.2.arch2
pkgrel=1
pkgdesc='Linux-g14'
url="https://gitlab.com/dragonn/linux-g14.git"
@@ -56,11 +56,20 @@ source=(
amd-tablet-sfh.patch
fix_amd_eDP_HDR_flickering.patch
- 0001-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-.patch
- 0002-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-M.patch
- 0003-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch
- 0004-platform-x86-asus-wmi-support-toggling-POST-sound.patch
- 0005-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch
+# 0001-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-.patch
+ 0001-v2-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-LED.patch
+# 0002-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-M.patch
+ 0002-v2-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-MUX.patch
+# 0003-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch
+ 0003-v2-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch
+# 0004-platform-x86-asus-wmi-support-toggling-POST-sound.patch
+ 0004-v2-platform-x86-asus-wmi-support-toggling-POST-sound.patch
+# 0005-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch
+ 0005-v2-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch
+ 0006-v2-platform-x86-asus-wmi-adjust-formatting-of-ppt-fcts.patch
+ 0007-v2-platform-x86-asus-wmi-ROG-Ally-increase-wait-time.patch
+ 0008-v2-platform-x86-asus-wmi-add-support-for-MCU-powersave.patch
+ 0009-v2-platform-x86-asus-wmi-add-clean-up-structs.patch
"sys-kernel_arch-sources-g14_files-0047-asus-nb-wmi-Add-tablet_mode_sw-lid-flip.patch"
"sys-kernel_arch-sources-g14_files-0048-asus-nb-wmi-fix-tablet_mode_sw_int.patch"
@@ -73,7 +82,7 @@ validpgpkeys=(
sha256sums=('9ac322d85bcf98a04667d929f5c2666b15bd58c6c2d68dd512c72acbced07d04'
'SKIP'
- '9ccb26c046bacf04777617e96cad5b33d3d048b30bb4840a3b5ac2cdf40a3aba'
+ '2d5fa7f4177ba1c40575d57282438ff28cdfc3729e0689eddf650616c8a93b65'
'SKIP'
'c2b00c84c4b543db431e06604d939a62f93107d18369f4d9860dc8062b01ab45'
'278118011d7a2eeca9971ac97b31bf0c55ab55e99c662ab9ae4717b55819c9a2'
@@ -91,11 +100,15 @@ sha256sums=('9ac322d85bcf98a04667d929f5c2666b15bd58c6c2d68dd512c72acbced07d04'
'1edb362a762c8858374027e30ff58ae0014e117fdc05cc7db6da50f80e7aab87'
'508f90cbe81a9a145cc540703470f1e6b5d21c7a7b9166d2ce6e56b401262b04'
'9b94f02b87c28a7403478ce9f57461c3b2219b7279a928e814cafd78ee767366'
- '1bc69aaec2089599c1154d7ee5709f5a6140434ef6edf81702b0ea7042a44967'
- 'aa171a103d4133db4cfe153e48e71b58a85d69ed9fe144100dcc792055d79495'
- 'f0e5b7653c91e025c5c2010e2447c98eaad699106b34ff140da106e628ea5c17'
- '4b1e78681848c34175251e9dcbee02f6b2bb67a65aae6ea8bfb5e1322dc51f7a'
- '4ee418b9d9905a89e58cc860fb93cb226f45ac2d00d767fc3c4dccb297c731ee'
+ '06375fa2bcc6fefd8d57c0d8a13b5af02d08318f3721c58fc0354970656f3b64'
+ 'f64fbf3b7e817edd7267612531d5aba3d17b727d5151b5b9e620d616797cf3da'
+ '270fe67b07e8138be848958e9fa28ee8fecffd2e146ea68444c5200a9b09c2ed'
+ '1b53d1914fb0186585125fcd9db2367697e4c265bfd38378aa0f59cc4e0fb46d'
+ '9a5c4f2cc956933abcb9e1bd652dfad382108dd1f22844d6e5c393861a9ba35d'
+ '951fe0da7b7939665ffc5094a0d39641d4c73395c264237e082d8c54b2927dfb'
+ '66c25f11f3fc2cc0db9a3392400f072f1c3ac9408328128f075a9260f4eb01ef'
+ 'd31ba415c2b65e3485d74f0268f1020dc49f31a6fe3316cf6c74a0690e96c81f'
+ '47ad6e0781f1df1f6a6d35b8f20c2bf9dbd7e8e0b92a332cb88145755afba77c'
'15e912a66e4bbce1cf0450f1dc6610653df29df8dd6d5426f9c1b039490436c8'
'444f2d86de8c2177655b01596f939f99c2e7abfa8efad8a509e0a334f42dfa85')
diff --git a/chroot-build.sh b/chroot-build.sh
index 7d98d468ba4e..f6045161f2b5 100755
--- a/chroot-build.sh
+++ b/chroot-build.sh
@@ -45,7 +45,7 @@ updpkgsums
#
# To send environment variable to a PKGBUILD call this script like this:
-# `rbuild.sh -- {any makepkg flags} VAR=VALUE VAR2=VALUE etc..`
+# `chroot-build.sh -- {any makepkg flags} VAR=VALUE VAR2=VALUE etc..`
#
# either use makechrootpkg ...
@@ -54,5 +54,8 @@ updpkgsums
# or clean-chroot-manager (AUR)
sudo ccm s
+# sync repos afterwards (again)
+sudo pacman -Sy
+
rm PKGBUILD
mv .PKGBUILD PKGBUILD