Re: [PATCH v4 0/2] hid-asus: asus-wmi: refactor Ally suspend/resume
From: Antheas Kapenekakis
Date: Mon Mar 24 2025 - 04:12:17 EST
On Mon, 24 Mar 2025 at 02:41, Luke D. Jones <luke@xxxxxxxxxx> wrote:
>
> On 24/03/25 00:41, Antheas Kapenekakis wrote:
> > On Sun, 23 Mar 2025 at 03:34, Luke Jones <luke@xxxxxxxxxx> wrote:
> >>
> >> This short series refactors the Ally suspend/resume functionality in the
> >> asus-wmi driver along with adding support for ROG Ally MCU version checking.
> >>
> >> The version checking is then used to toggle the use of older CSEE call hacks
> >> that were initially used to combat Ally suspend/wake issues arising from the MCU
> >> not clearing a particular flag on resume. ASUS have since corrected this
> >> especially for Linux in newer firmware versions.
> >>
> >> - hid-asus requests the MCU version and displays a warning if the version is
> >> older than the one that fixes the issue.
> >> - hid-asus awill also toggle the CSEE hack off, and mcu_powersave to on if the
> >> version is high enough.
> >>
> >> *Note: In review it was requested by Mario that I try strsep() for parsing
> >> the version. I did try this and a few variations but the result was much
> >> more code due to having to check more edge cases due to the input being
> >> raw bytes. In the end the cleaned up while loop proved more robust.
> >>
> >> - Changelog:
> >> + V2: https://lore.kernel.org/platform-driver-x86/20250226010129.32043-1-luke@xxxxxxxxxx/T/#t
> >> - Adjust warning message to explicitly mention suspend issues
> >
> > How did the testing go with this one, especially with mcu_powersave 0?
>
> Appears to be good. Checked a few reboots with powersave off - it is
> setting on as I expect every time. Did modules unload/load also. And
> tested with it set off after boot plus suspend resumes.
Did you test suspends with mcu_powersave to 0 and rgb on? I had a few
issues you can reference the previous version for and I want to see if
you have them.
Even with powersave set to 1, the RGB does not fade anymore without the quirk
Antheas
> Very much hope this is the end of that particular saga, and with
> bazzites help we can hopefully get everyone on November MCU FW or later,
> then finally remove the hack completely this year.
>
> A small side note - I expect ASUS to fully reuse the X hardware, or at
> least the bios/acpi/mcu-fw for that new windows handheld they've doing,
> so fingers crossed that they actually do, and there will be nomore
> suspend issues with current kernels plus this patch.
>
> Cheers,
> Luke.
>
> >> - Use switch/case block to set min_version
> >> - Set min_version to 0 by default and toggle hacks off
> >> + V3
> >> - Remove noise (excess pr_info)
> >> - Use kstrtoint, not kstrtolong
> >> - Use __free(kfree) for allocated mem and drop goto + logging
> >> - Use print_hex_dump() to show failed data after pr_err in mcu_request_version()
> >> - Use pr_debug in set_ally_mcu_hack() and set_ally_mcu_powersave() plus
> >> correct the message.
> >> + V4
> >> - Change use_ally_mcu_hack var to enum to track init state and
> >> prevent a race condition
> >>
> >> Luke D. Jones (2):
> >> hid-asus: check ROG Ally MCU version and warn
> >> platform/x86: asus-wmi: Refactor Ally suspend/resume
> >>
> >> drivers/hid/hid-asus.c | 111 ++++++++++++++++-
> >> drivers/platform/x86/asus-wmi.c | 133 +++++++++++++++------
> >> include/linux/platform_data/x86/asus-wmi.h | 19 +++
> >> 3 files changed, 222 insertions(+), 41 deletions(-)
> >>
> >> --
> >> 2.49.0
> >>
>