ASUS ROG Zephyrus G14 (2022) GA402RJ and GA402RK laptops use custom AC power limits of 100W (RX 6700S) and 105W (RX 6800S). On resume from suspend, the SMU firmware resets to the reference vBIOS default of 80W, hard-capping GPU performance.
Override SocketPowerLimitAc in sienna_cichlid_patch_pptable_quirk for these subsystem IDs so the driver restores the platform's intended AC power limit when reloading PPTable during boot and resume. Signed-off-by: Teodor Bostan <[email protected]> --- .../gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c index cef628752..10d330edb 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c @@ -479,6 +479,7 @@ static int sienna_cichlid_patch_pptable_quirk(struct smu_context *smu) struct amdgpu_device *adev = smu->adev; uint32_t *board_reserved; uint16_t *freq_table_gfx; + uint16_t *power_limit; uint32_t i; /* Fix some OEM SKU specific stability issues */ @@ -501,6 +502,18 @@ static int sienna_cichlid_patch_pptable_quirk(struct smu_context *smu) } } + /* Fix some OEM SKU specific power limit issues */ + if ((adev->pdev->device == 0x73EF) && + (adev->pdev->subsystem_vendor == 0x1043)) { + if (adev->pdev->subsystem_device == 0x1DEC) { + GET_PPTABLE_MEMBER(SocketPowerLimitAc, &power_limit); + power_limit[PPT_THROTTLER_PPT0] = 100; + } else if (adev->pdev->subsystem_device == 0x1DCC) { + GET_PPTABLE_MEMBER(SocketPowerLimitAc, &power_limit); + power_limit[PPT_THROTTLER_PPT0] = 105; + } + } + return 0; } -- 2.55.0
