On 4/20/2022 7:32 AM, Prike Liang wrote:
Without MMHUB clock gating being enabled then MMHUB will not disconnect
from DF and will result in DF C-state entry can't be accessed during S2idle
suspend, and eventually s0ix entry will be blocked.

Signed-off-by: Prike Liang <[email protected]>
---
  drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 9 +++++++++
  1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c 
b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
index 1957fb098c4d..cb3dca4834b4 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c
@@ -568,6 +568,15 @@ static int mmhub_v2_3_set_clockgating(struct amdgpu_device 
*adev,
  {
        if (amdgpu_sriov_vf(adev))
                return 0;
+       /*
+        * The issue mmhub can't disconnect from DF with clock gating being 
disabled
+        * seems only observed at DF 3.0.3, with the same suspend sequence not 
seen
+        * any issue on the DF 3.0.2 series platform.
+        */
+       if (adev->in_s0ix) {
+               dev_dbg(adev->dev, "keep mmhub clock gating being enabled for 
s0ix\n");
+               return 0;
+       }

A better fix would be to explicitly enable mmhub clockgating during s0ix suspend of gmc for this IP version.

Thanks,
Lijo

        mmhub_v2_3_update_medium_grain_clock_gating(adev,
                                state == AMD_CG_STATE_GATE);

Reply via email to