On Fri, 24 Oct 2025 at 17:43, Mario Limonciello <[email protected]> wrote: > > > > On 10/24/2025 10:21 AM, Antheas Kapenekakis wrote: > > The ROG Xbox Ally (non-X) SoC features a similar architecture to the > > Steam Deck. While the Steam Deck supports S3 (s2idle causes a crash), > > this support was dropped by the Xbox Ally which only S0ix suspend. > > > > Since the handler is missing here, this causes the device to not suspend > > and the AMD GPU driver to crash while trying to resume afterwards due to > > a power hang. > > > > Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4659 > > Signed-off-by: Antheas Kapenekakis <[email protected]> > > --- > > drivers/platform/x86/amd/pmc/pmc.c | 3 +++ > > drivers/platform/x86/amd/pmc/pmc.h | 1 + > > 2 files changed, 4 insertions(+) > > > > diff --git a/drivers/platform/x86/amd/pmc/pmc.c > > b/drivers/platform/x86/amd/pmc/pmc.c > > index bd318fd02ccf..cae3fcafd4d7 100644 > > --- a/drivers/platform/x86/amd/pmc/pmc.c > > +++ b/drivers/platform/x86/amd/pmc/pmc.c > > @@ -106,6 +106,7 @@ static void amd_pmc_get_ip_info(struct amd_pmc_dev *dev) > > switch (dev->cpu_id) { > > case AMD_CPU_ID_PCO: > > case AMD_CPU_ID_RN: > > + case AMD_CPU_ID_VG: > > case AMD_CPU_ID_YC: > > case AMD_CPU_ID_CB: > > dev->num_ips = 12; > > @@ -517,6 +518,7 @@ static int amd_pmc_get_os_hint(struct amd_pmc_dev *dev) > > case AMD_CPU_ID_PCO: > > return MSG_OS_HINT_PCO; > > case AMD_CPU_ID_RN: > > + case AMD_CPU_ID_VG: > > case AMD_CPU_ID_YC: > > case AMD_CPU_ID_CB: > > case AMD_CPU_ID_PS: > > @@ -717,6 +719,7 @@ static const struct pci_device_id pmc_pci_ids[] = { > > { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_RV) }, > > { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_SP) }, > > { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_SHP) }, > > + { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_VG) }, > > { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M20H_ROOT) }, > > { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M60H_ROOT) }, > > { } > > diff --git a/drivers/platform/x86/amd/pmc/pmc.h > > b/drivers/platform/x86/amd/pmc/pmc.h > > index 62f3e51020fd..fe3f53eb5955 100644 > > --- a/drivers/platform/x86/amd/pmc/pmc.h > > +++ b/drivers/platform/x86/amd/pmc/pmc.h > > @@ -156,6 +156,7 @@ void amd_mp2_stb_deinit(struct amd_pmc_dev *dev); > > #define AMD_CPU_ID_RN 0x1630 > > #define AMD_CPU_ID_PCO AMD_CPU_ID_RV > > #define AMD_CPU_ID_CZN AMD_CPU_ID_RN > > +#define AMD_CPU_ID_VG 0x1645 > > Can you see if 0xF14 gives you a reasonable value for the idle mask if > you add it to amd_pmc_idlemask_read()? Make a new define for it though, > it shouldn't use the same define as 0x1a platforms.
It does not work. Reports 0. I also tested the other ones, but the 0x1a was the same as you said. All report 0x0. Any idea why the OS hint only works 90% of the time? > > #define AMD_CPU_ID_YC 0x14B5 > > #define AMD_CPU_ID_CB 0x14D8 > > #define AMD_CPU_ID_PS 0x14E8 > >
