Re: [PATCH v3 3/3] ALSA: hda: allow direct complete with a powered-off GPU

From: Takashi Iwai

Date: Wed Aug 12 2026 - 10:31:20 EST


On Wed, 12 Aug 2026 16:23:00 +0200,
Andre Eikmeyer wrote:
>
> The HDA controller normally needs different WAKEEN settings for runtime and
> system suspend, so azx_prepare() prevents direct complete. For a switcheroo
> audio client whose bound GPU is already runtime suspended and switched off,
> however, the controller is physically inaccessible and cannot signal wake
> events.
>
> Resuming the HDA function during system suspend also acquires its runtime
> PM supplier. This powers the discrete GPU back on only to suspend it again
> and can expose failures while restoring an otherwise unused GPU.
>
> Direct complete is now allowed when the bound VGA device is both runtime
> suspended and reported off by vga_switcheroo. Active GPUs and HDA
> controllers without a switcheroo binding retain the existing WAKEEN
> transition.
>
> This was tested as part of the MacBookPro15,1 hybrid graphics series on
> both the 2018 and 2019 revisions. The discrete GPU remains powered off
> across system suspend when it is unused, and suspend and resume complete
> successfully.
>
> Signed-off-by: Andre Eikmeyer <dev@deq.rocks>
> ---
> Changes in v3:
> - Rework the conditional compilation as suggested in the follow-up review.
> - Keep the switcheroo implementation in the existing switcheroo section.
>
> The follow-up review crossed with the v2 submission.
>
> Changes in v2:
> - Explain the significance of the positive azx_prepare() return value.

Feel free to take my ack:

Reviewed-by: Takashi Iwai <tiwai@xxxxxxx>

But I guess you'd need to refresh the patch descriptions in other two
patches in the series, so better to resubmit the whole series with
corrected patches :)


thanks,

Takashi