platform/x86: asus-wmi: cleanup main struct to avoid some holes
authorLuke D. Jones <luke@ljones.dev>
Thu, 4 Apr 2024 00:16:52 +0000 (13:16 +1300)
committerHans de Goede <hdegoede@redhat.com>
Mon, 8 Apr 2024 16:30:27 +0000 (18:30 +0200)
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>
Link: https://lore.kernel.org/r/20240404001652.86207-10-luke@ljones.dev
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/asus-wmi.c

index e9e5724746773a1b4f118c087034492d24183c24..727dbdec45f45808891e04c57375baded37508a2 100644 (file)
@@ -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");