]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86/amd/pmc: Add support for Van Gogh SoC
authorAntheas Kapenekakis <lkml@antheas.dev>
Fri, 24 Oct 2025 15:21:50 +0000 (17:21 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 6 Nov 2025 12:19:29 +0000 (14:19 +0200)
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 <lkml@antheas.dev>
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Link: https://patch.msgid.link/20251024152152.3981721-2-lkml@antheas.dev
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/amd/pmc/pmc.c
drivers/platform/x86/amd/pmc/pmc.h

index bd318fd02ccf4ae0c6b7690cf07a0f5231752db2..cae3fcafd4d7bb63d670a279dee6bbf77661ccad 100644 (file)
@@ -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) },
        { }
index 62f3e51020fdf134be3e793f5847772730e9f3cb..fe3f53eb59558e5033cef8e9babb4d2cb409d74f 100644 (file)
@@ -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
 #define AMD_CPU_ID_YC                  0x14B5
 #define AMD_CPU_ID_CB                  0x14D8
 #define AMD_CPU_ID_PS                  0x14E8