Re: acer-wmi: Nitro button doesn't produce a WMI event

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 06.01.25 um 19:33 schrieb Hans de Goede:

Hi all,

On 6-Jan-25 5:59 PM, Armin Wolf wrote:
Am 02.01.25 um 07:18 schrieb Hridesh MG:

On Thu, Jan 2, 2025 at 1:51 AM Armin Wolf <W_Armin@xxxxxx> wrote:
Am 01.01.25 um 20:53 schrieb Hridesh MG:

This ACPI method should trigger the turbo mode button (found inside the DSDT table):

           Method (_Q58, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
            {
                   Debug = "=====PROJECT_QUERY_58====="
                    ^^^WMID.FEBC [Zero] = 0x07
                    ^^^WMID.FEBC [One] = 0x04
                    ^^^WMID.FEBC [0x02] = One
                    Notify (WMID, 0xBC) // Device-Specific
           }

I feel like an idiot right now but I just realized something: So far
I've been assuming that the button I've been calling the "Turbo
Button" worked the same way on both Nitro and Predator laptops, but
that's not the case.

On Predator laptops, the button directly enables Turbo mode but on the
Nitro it only opens the Nitro Sense app. I had assumed that both
buttons simply opened the app and that directly enabling Turbo mode
was a feature provided by the Linux driver.

Given this, the ACPI code that you linked earlier is probably for the
Predator's "Turbo Button". Could it be that the button on my laptop
doesn’t use that ACPI code at all, considering its functionality is
completely different? (Though i doubt Acer would leave it in if it
wasn't being used)
It is quite common for manufactures to just copy and paste ACPI code snippets, so it is not
unusual to have some unused code inside the ACPI tables.

Did you receive any input events or dmesg messages when pressing that button?

If no then it could also be that this button depends on the Intel THC touch controller to work,
take a look at https://lore.kernel.org/all/20241216014127.3722172-1-even.xu@xxxxxxxxx for details
about the Intel THC controller.

Thanks,
Armin Wolf

I do receive input events, it shows up with the keycode 433 and symbol
XF86Presentation. I think you mentioned something regarding an i8042
filter, can we use that to call the function to cycle between the
profiles?
Since this is a valid keycode i advise against filtering it out. Instead it would make more
sense to allow userspace to control the turbo state for example trough a sysfs attribute.

Then you can use a userspace program to react to this key press.
Since some laptops handle this completely in the EC, so far drivers
which get an event for this have been reacting to this event
themselves and calling the platform_profile_cycle() helper to cycle
through the various performance profiles.

I think it would be best to do this here too.

Regards,

Hans

This keycode event is different from the WMI notification used to toggle the turbo status.

As mentioned above, the turbo button on the Predator series is meant to toggle the turbo mode,
while the special button found on the Nitro series is meant to only open the OEM application.

Toggling the turbo mode in response to this special button will confuse users should Acer
mark the button with a small application icon.

I rather let applications change the turbo mode from userspace. This would also benifit machines
which do not have any special buttons for this.

Thanks,
Armin Wolf






[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux