OSDN Git Service

amd/powerplay: arcturus baco reset disable all features
authorJohn Clements <john.clements@amd.com>
Wed, 18 Mar 2020 16:22:32 +0000 (00:22 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 19 Mar 2020 04:03:05 +0000 (00:03 -0400)
issue smu cmd to disable all features upon baco entry for arcturus

to mitigate potential dirty I2C controller on boot

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: John Clements <john.clements@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/amdgpu_smu.c

index 0273c63..f6d4b0e 100644 (file)
@@ -1470,21 +1470,26 @@ static int smu_disable_dpm(struct smu_context *smu)
        }
 
        /*
-        * For baco on Arcturus, this operation
-        * (disable all smu feature) will be handled by SMU FW.
+        * Disable all enabled SMU features.
+        * This should be handled in SMU FW, as a backup
+        * driver can issue call to SMU FW until sequence
+        * in SMU FW is operational.
         */
-       if (adev->asic_type == CHIP_ARCTURUS) {
-               if (use_baco && (smu_version > 0x360e00))
-                       return 0;
-       }
-
-       /* Disable all enabled SMU features */
        ret = smu_system_features_control(smu, false);
        if (ret) {
                pr_err("Failed to disable smu features.\n");
                return ret;
        }
 
+       /*
+        * Arcturus does not have BACO bit in disable feature mask.
+        * Enablement of BACO bit on Arcturus should be skipped.
+        */
+       if (adev->asic_type == CHIP_ARCTURUS) {
+               if (use_baco && (smu_version > 0x360e00))
+                       return 0;
+       }
+
        /* For baco, need to leave BACO feature enabled */
        if (use_baco) {
                /*