diff options
author | Taijian | 2024-04-03 12:27:14 +0200 |
---|---|---|
committer | Taijian | 2024-04-03 12:27:14 +0200 |
commit | 3217da41ae43db60d91e2739e978103b509b64b4 (patch) | |
tree | ba13c9745c9e4e16c6c0a75d3a8489395f37acfc | |
parent | fe2ced41debb6c571d6542f71ff7bb222144c15f (diff) | |
download | aur-3217da41ae43db60d91e2739e978103b509b64b4.tar.gz |
include some new/updated patches from upstream
-rw-r--r-- | .SRCINFO | 36 | ||||
-rw-r--r-- | 0001-v2-platform-x86-asus-wmi-add-support-for-2024-ROG-Mini-LED.patch | 195 | ||||
-rw-r--r-- | 0002-v2-platform-x86-asus-wmi-add-support-for-Vivobook-GPU-MUX.patch | 122 | ||||
-rw-r--r-- | 0003-v2-platform-x86-asus-wmi-add-support-variant-of-TUF-RGB.patch | 94 | ||||
-rw-r--r-- | 0004-v2-platform-x86-asus-wmi-support-toggling-POST-sound.patch | 129 | ||||
-rw-r--r-- | 0005-v2-platform-x86-asus-wmi-store-a-min-default-for-ppt-op.patch | 265 | ||||
-rw-r--r-- | 0006-v2-platform-x86-asus-wmi-adjust-formatting-of-ppt-fcts.patch | 115 | ||||
-rw-r--r-- | 0007-v2-platform-x86-asus-wmi-ROG-Ally-increase-wait-time.patch | 72 | ||||
-rw-r--r-- | 0008-v2-platform-x86-asus-wmi-add-support-for-MCU-powersave.patch | 117 | ||||
-rw-r--r-- | 0009-v2-platform-x86-asus-wmi-add-clean-up-structs.patch | 91 | ||||
-rw-r--r-- | PKGBUILD | 37 | ||||
-rwxr-xr-x | chroot-build.sh | 5 |
12 files changed, 1251 insertions, 27 deletions
@@ -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 @@ -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 |