Gpu reset might be needed during driver reloading. To guard that(gpu reset) work, df cstate needs to be disabled properly. Signed-off-by: Evan Quan <evan.quan@xxxxxxx> Change-Id: I5c074c265c0b08a67b6934ae1ad9aa3fed245461 --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 51bbeaa1f311..3c854461ef32 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -2816,6 +2816,15 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev) amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE); amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE); + /* + * Get df cstate disabled properly on driver unloading. + * Since on the succeeding driver reloading, gpu reset might + * be required. And cstate disabled is a prerequisite for + * that(gpu reset). + */ + if (amdgpu_dpm_set_df_cstate(adev, DF_CSTATE_DISALLOW)) + dev_warn(adev->dev, "Failed to disallow df cstate"); + amdgpu_amdkfd_suspend(adev, false); /* Workaroud for ASICs need to disable SMC first */ -- 2.34.1