diff options
Diffstat (limited to 'SOURCES/tkg-misc-additions.patch')
-rw-r--r-- | SOURCES/tkg-misc-additions.patch | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/SOURCES/tkg-misc-additions.patch b/SOURCES/tkg-misc-additions.patch index 618b53c..31368a7 100644 --- a/SOURCES/tkg-misc-additions.patch +++ b/SOURCES/tkg-misc-additions.patch @@ -97,161 +97,3 @@ index f4b210ab061291..837d0dbb28ea08 100644 depends on HAVE_ARCH_MMAP_RND_COMPAT_BITS help This value can be used to select the number of bits to use to - -From 3cfb591e23181791195a74efe2e9065e0d4bd201 Mon Sep 17 00:00:00 2001 -From: Etienne JUVIGNY <ti3nou@gmail.com> -Date: Mon, 15 Jan 2024 19:09:39 +0100 -Subject: Revert: drm/amd/pm: fix the high voltage and temperature issue - -This was supposed to fix the high voltage and temperature issue after the driver is unloaded on smu 13.0.0, -smu 13.0.7 and smu 13.0.10, but introduced an arguably more annoying issue. Let's revert it until a proper fix is offered. - -Fixes rdna3 shutdown/reboot hang. - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -index 93cf73d6f..960966f4b 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -@@ -4050,23 +4050,13 @@ int amdgpu_device_init(struct amdgpu_device *adev, - } - } - } else { -- switch (amdgpu_ip_version(adev, MP1_HWIP, 0)) { -- case IP_VERSION(13, 0, 0): -- case IP_VERSION(13, 0, 7): -- case IP_VERSION(13, 0, 10): -- r = psp_gpu_reset(adev); -- break; -- default: -- tmp = amdgpu_reset_method; -- /* It should do a default reset when loading or reloading the driver, -- * regardless of the module parameter reset_method. -- */ -- amdgpu_reset_method = AMD_RESET_METHOD_NONE; -- r = amdgpu_asic_reset(adev); -- amdgpu_reset_method = tmp; -- break; -- } -- -+ tmp = amdgpu_reset_method; -+ /* It should do a default reset when loading or reloading the driver, -+ * regardless of the module parameter reset_method. -+ */ -+ amdgpu_reset_method = AMD_RESET_METHOD_NONE; -+ r = amdgpu_asic_reset(adev); -+ amdgpu_reset_method = tmp; - if (r) { - dev_err(adev->dev, "asic reset on init failed\n"); - goto failed; -diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c -index e1a5ee911..308ebeb43 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c -@@ -733,7 +733,7 @@ static int smu_early_init(void *handle) - smu->adev = adev; - smu->pm_enabled = !!amdgpu_dpm; - smu->is_apu = false; -- smu->smu_baco.state = SMU_BACO_STATE_NONE; -+ smu->smu_baco.state = SMU_BACO_STATE_EXIT; - smu->smu_baco.platform_support = false; - smu->user_dpm_profile.fan_mode = -1; - -@@ -1753,31 +1753,10 @@ static int smu_smc_hw_cleanup(struct smu_context *smu) - return 0; - } - --static int smu_reset_mp1_state(struct smu_context *smu) --{ -- struct amdgpu_device *adev = smu->adev; -- int ret = 0; -- -- if ((!adev->in_runpm) && (!adev->in_suspend) && -- (!amdgpu_in_reset(adev))) -- switch (amdgpu_ip_version(adev, MP1_HWIP, 0)) { -- case IP_VERSION(13, 0, 0): -- case IP_VERSION(13, 0, 7): -- case IP_VERSION(13, 0, 10): -- ret = smu_set_mp1_state(smu, PP_MP1_STATE_UNLOAD); -- break; -- default: -- break; -- } -- -- return ret; --} -- - static int smu_hw_fini(void *handle) - { - struct amdgpu_device *adev = (struct amdgpu_device *)handle; - struct smu_context *smu = adev->powerplay.pp_handle; -- int ret; - - if (amdgpu_sriov_vf(adev) && !amdgpu_sriov_is_pp_one_vf(adev)) - return 0; -@@ -1795,15 +1774,7 @@ static int smu_hw_fini(void *handle) - - adev->pm.dpm_enabled = false; - -- ret = smu_smc_hw_cleanup(smu); -- if (ret) -- return ret; -- -- ret = smu_reset_mp1_state(smu); -- if (ret) -- return ret; -- -- return 0; -+ return smu_smc_hw_cleanup(smu); - } - - static void smu_late_fini(void *handle) -diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h -index f8b2e6cc2..e8329d157 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h -+++ b/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h -@@ -419,7 +419,6 @@ enum smu_reset_mode { - enum smu_baco_state { - SMU_BACO_STATE_ENTER = 0, - SMU_BACO_STATE_EXIT, -- SMU_BACO_STATE_NONE, - }; - - struct smu_baco_context { -diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c -index 82c4e1f1c..2ba77b1d1 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c -@@ -2772,13 +2766,7 @@ static int smu_v13_0_0_set_mp1_state(struct smu_context *smu, - - switch (mp1_state) { - case PP_MP1_STATE_UNLOAD: -- ret = smu_cmn_send_smc_msg_with_param(smu, -- SMU_MSG_PrepareMp1ForUnload, -- 0x55, NULL); -- -- if (!ret && smu->smu_baco.state == SMU_BACO_STATE_EXIT) -- ret = smu_v13_0_disable_pmfw_state(smu); -- -+ ret = smu_cmn_set_mp1_state(smu, mp1_state); - break; - default: - /* Ignore others */ -diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c -index 81eafed76..19c1289d0 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c -@@ -2499,13 +2499,7 @@ static int smu_v13_0_7_set_mp1_state(struct smu_context *smu, - - switch (mp1_state) { - case PP_MP1_STATE_UNLOAD: -- ret = smu_cmn_send_smc_msg_with_param(smu, -- SMU_MSG_PrepareMp1ForUnload, -- 0x55, NULL); -- -- if (!ret && smu->smu_baco.state == SMU_BACO_STATE_EXIT) -- ret = smu_v13_0_disable_pmfw_state(smu); -- -+ ret = smu_cmn_set_mp1_state(smu, mp1_state); - break; - default: - /* Ignore others */ |