Re: [PATCH v3 6/6] asus-wmi: Support the hardware GPU MUX on some laptops

From: Thomas Weißschuh
Date: Fri Aug 12 2022 - 04:41:10 EST


Hi,

On 2022-08-12 09:59+0200, Hans de Goede wrote:
> Date: Fri, 12 Aug 2022 09:59:29 +0200
> From: Hans de Goede <hdegoede@xxxxxxxxxx>
> To: Luke Jones <luke@xxxxxxxxxx>
> Cc: andy.shevchenko@xxxxxxxxx, pobrn@xxxxxxxxxxxxxx, pavel@xxxxxx,
> platform-driver-x86@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH v3 6/6] asus-wmi: Support the hardware GPU MUX on some
> laptops
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
> Thunderbird/91.12.0
>
> Hi,
>
> On 8/12/22 00:01, Luke Jones wrote:
> > Hi Hans,
> >
> > On Thu, 2022-08-11 at 15:53 +0200, Hans de Goede wrote:
> >> Hi,
> >>
> >> On 8/9/22 04:50, Luke D. Jones wrote:
> >>> Support the hardware GPU MUX switch available on some models. This
> >>> switch can toggle the MUX between:
> >>>
> >>> - 0, Dedicated mode
> >>> - 1, Optimus mode
> >>>
> >>> Optimus mode is the regular iGPU + dGPU available, while dedicated
> >>> mode switches the system to have only the dGPU available.
> >>>
> >>> Signed-off-by: Luke D. Jones <luke@xxxxxxxxxx>
> >>
> >> I see that you have replied to this that it needs more work.
> >>
> >> Besides it needing more work, ideally this should hook into
> >> the existing vga-switcheroo mechanism for this. Can you take
> >> a look at that please?
> >>
> >> I think this might be the first non GPU driver doing vga-
> >> switcheroo stuff. So this may be something to discuss
> >> on the dri-devel list.
> >
> > I'm not sure how this would work. In typical ASUS fashion they do non-
> > standard stuff. This switch is a basic toggle that requires a reboot to
> > enable after writing to the ACPI method, after reboot the dGPU becomes
> > the only visible GPU on the system and (this GPU) can not be suspended.
> >
> > In short: it toggles the laptop from discrete-only mode, and optimus
> > mode, requiring a reboot to switch.
> >
> > From what I understand of switcheroo it is more to manage having dual
> > (or more) GPU available during runtime, and manage the power states,
> > offload etc.
>
> Right, I did not realize this requires a reboot, that would be
> something to mention in the Documentation bits accompanying the patch.
>
> This is also a reason why it is good to have the docs update in
> the same patch as adding the functionality, because the docs may
> help with reviewing.
>
> Anyways I agree that if this requires a reboot then using
> the vga switcheroo stuff is not applicable. So we can just go with
> a simple(ish) asus-wmi sysfs attribute.

Would this not fit the existing "firmware-attributes" class?
It even has a flag to signal that a reboot is required after an attribute has
been changed.

Maybe it is overkill to use it only for this, though.

> > I have a vastly improved patch for this prepared now. Because of how
> > the actual feature works (and the above explanation) it must be under
> > the asus-nb-wmi sysfs (next to the dgpu_disable and egpu_enable toggles
> > which are also unusual and non-standard work-arounds of Windows
> > issues).
>
> Ack, sounds good.

Thomas