Skip to content

Commit d1acd68

Browse files
Guchun Chenalexdeucher
authored andcommitted
drm/amdgpu: disable runtime pm on several sienna cichlid cards(v2)
Disable runtime power management on several sienna cichlid cards, otherwise SMU will possibly fail to be resumed from runtime suspend. Will drop this after a clean solution between kernel driver and SMU FW is available. amdgpu 0000:63:00.0: amdgpu: GECC is enabled amdgpu 0000:63:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available amdgpu 0000:63:00.0: amdgpu: SMU is resuming... amdgpu 0000:63:00.0: amdgpu: SMU: I'm not done with your command: SMN_C2PMSG_66:0x0000000E SMN_C2PMSG_82:0x00000080 amdgpu 0000:63:00.0: amdgpu: Failed to SetDriverDramAddr! amdgpu 0000:63:00.0: amdgpu: Failed to setup smc hw! [drm:amdgpu_device_ip_resume_phase2 [amdgpu]] *ERROR* resume of IP block <smu> failed -62 amdgpu 0000:63:00.0: amdgpu: amdgpu_device_ip_resume failed (-62) v2: seperate to a function. Signed-off-by: Guchun Chen <[email protected]> Reviewed-by: Evan Quan <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 5cb1cfd commit d1acd68

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@
4343
#include "amdgpu_display.h"
4444
#include "amdgpu_ras.h"
4545

46+
static void amdgpu_runtime_pm_quirk(struct amdgpu_device *adev)
47+
{
48+
/*
49+
* Add below quirk on several sienna_cichlid cards to disable
50+
* runtime pm to fix EMI failures.
51+
*/
52+
if (((adev->pdev->device == 0x73A1) && (adev->pdev->revision == 0x00)) ||
53+
((adev->pdev->device == 0x73BF) && (adev->pdev->revision == 0xCF)))
54+
adev->runpm = false;
55+
}
56+
4657
void amdgpu_unregister_gpu_instance(struct amdgpu_device *adev)
4758
{
4859
struct amdgpu_gpu_instance *gpu_instance;
@@ -180,6 +191,9 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, unsigned long flags)
180191
*/
181192
if (adev->is_fw_fb)
182193
adev->runpm = false;
194+
195+
amdgpu_runtime_pm_quirk(adev);
196+
183197
if (adev->runpm)
184198
dev_info(adev->dev, "Using BACO for runtime pm\n");
185199
}

0 commit comments

Comments
 (0)