summarylogtreecommitdiffstats
path: root/0009-v4-platform-x86-asus-wmi-add-clean-up-structs.patch
diff options
context:
space:
mode:
Diffstat (limited to '0009-v4-platform-x86-asus-wmi-add-clean-up-structs.patch')
-rw-r--r--0009-v4-platform-x86-asus-wmi-add-clean-up-structs.patch92
1 files changed, 92 insertions, 0 deletions
diff --git a/0009-v4-platform-x86-asus-wmi-add-clean-up-structs.patch b/0009-v4-platform-x86-asus-wmi-add-clean-up-structs.patch
new file mode 100644
index 000000000000..27ea10404d76
--- /dev/null
+++ b/0009-v4-platform-x86-asus-wmi-add-clean-up-structs.patch
@@ -0,0 +1,92 @@
+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 v4 9/9] platform/x86: asus-wmi: cleanup main struct to avoid some holes
+Date: Thu, 4 Apr 2024 13:16:52 +1300 [thread overview]
+Message-ID: <20240404001652.86207-10-luke@ljones.dev> (raw)
+In-Reply-To: <20240404001652.86207-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.
+
+Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
+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 d06d9e0c498c..2d2b4eca7fd8 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -254,6 +254,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;
+@@ -266,9 +269,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;
+
+@@ -309,9 +310,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;
+@@ -4391,11 +4389,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)
+@@ -4423,7 +4421,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)
+@@ -4674,12 +4672,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