Commit 88c0ef69 authored by Luke D. Jones's avatar Luke D. Jones Committed by Hans de Goede

platform/x86: asus-wmi: cleanup main struct to avoid some holes

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: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarLuke D. Jones <luke@ljones.dev>
Link: https://lore.kernel.org/r/20240404001652.86207-10-luke@ljones.devSigned-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent a94e8a56
...@@ -254,6 +254,9 @@ struct asus_wmi { ...@@ -254,6 +254,9 @@ struct asus_wmi {
u32 tablet_switch_dev_id; u32 tablet_switch_dev_id;
bool tablet_switch_inverted; 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 fan_type;
enum fan_type gpu_fan_type; enum fan_type gpu_fan_type;
enum fan_type mid_fan_type; enum fan_type mid_fan_type;
...@@ -266,9 +269,7 @@ struct asus_wmi { ...@@ -266,9 +269,7 @@ struct asus_wmi {
u8 fan_boost_mode_mask; u8 fan_boost_mode_mask;
u8 fan_boost_mode; u8 fan_boost_mode;
bool charge_mode_available;
bool egpu_enable_available; bool egpu_enable_available;
bool egpu_connect_available;
bool dgpu_disable_available; bool dgpu_disable_available;
u32 gpu_mux_dev; u32 gpu_mux_dev;
...@@ -309,9 +310,6 @@ struct asus_wmi { ...@@ -309,9 +310,6 @@ struct asus_wmi {
bool fnlock_locked; 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_debug debug;
struct asus_wmi_driver *driver; struct asus_wmi_driver *driver;
...@@ -4391,11 +4389,11 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, ...@@ -4391,11 +4389,11 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
else if (attr == &dev_attr_als_enable.attr) else if (attr == &dev_attr_als_enable.attr)
devid = ASUS_WMI_DEVID_ALS_ENABLE; devid = ASUS_WMI_DEVID_ALS_ENABLE;
else if (attr == &dev_attr_charge_mode.attr) 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) else if (attr == &dev_attr_egpu_enable.attr)
ok = asus->egpu_enable_available; ok = asus->egpu_enable_available;
else if (attr == &dev_attr_egpu_connected.attr) 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) else if (attr == &dev_attr_dgpu_disable.attr)
ok = asus->dgpu_disable_available; ok = asus->dgpu_disable_available;
else if (attr == &dev_attr_gpu_mux_mode.attr) else if (attr == &dev_attr_gpu_mux_mode.attr)
...@@ -4423,7 +4421,7 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, ...@@ -4423,7 +4421,7 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj,
else if (attr == &dev_attr_boot_sound.attr) else if (attr == &dev_attr_boot_sound.attr)
devid = ASUS_WMI_DEVID_BOOT_SOUND; devid = ASUS_WMI_DEVID_BOOT_SOUND;
else if (attr == &dev_attr_panel_od.attr) 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) else if (attr == &dev_attr_mini_led_mode.attr)
ok = asus->mini_led_dev_id != 0; ok = asus->mini_led_dev_id != 0;
else if (attr == &dev_attr_available_mini_led_mode.attr) else if (attr == &dev_attr_available_mini_led_mode.attr)
...@@ -4674,12 +4672,9 @@ static int asus_wmi_add(struct platform_device *pdev) ...@@ -4674,12 +4672,9 @@ static int asus_wmi_add(struct platform_device *pdev)
asus->nv_dynamic_boost = 5; asus->nv_dynamic_boost = 5;
asus->nv_temp_target = 75; 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_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->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->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) asus->ally_mcu_usb_switch = acpi_has_method(NULL, ASUS_USB0_PWR_EC0_CSEE)
&& dmi_match(DMI_BOARD_NAME, "RC71L"); && dmi_match(DMI_BOARD_NAME, "RC71L");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment