From 64e48d6e922b8b64640ab7d166746c3eb470f438 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Mon, 11 Dec 2023 13:11:16 -0500 Subject: [PATCH] Fixes for 6.6 Signed-off-by: Sasha Levin --- ...fix-refclk-reporting-for-smu-v13.0.6.patch | 37 +++++++++++ ...estrict-extended-wait-to-psp-v13.0.6.patch | 63 +++++++++++++++++++ ...u-update-retry-times-for-psp-bl-wait.patch | 39 ++++++++++++ queue-6.6/series | 3 + 4 files changed, 142 insertions(+) create mode 100644 queue-6.6/drm-amdgpu-fix-refclk-reporting-for-smu-v13.0.6.patch create mode 100644 queue-6.6/drm-amdgpu-restrict-extended-wait-to-psp-v13.0.6.patch create mode 100644 queue-6.6/drm-amdgpu-update-retry-times-for-psp-bl-wait.patch diff --git a/queue-6.6/drm-amdgpu-fix-refclk-reporting-for-smu-v13.0.6.patch b/queue-6.6/drm-amdgpu-fix-refclk-reporting-for-smu-v13.0.6.patch new file mode 100644 index 00000000000..76df11127fb --- /dev/null +++ b/queue-6.6/drm-amdgpu-fix-refclk-reporting-for-smu-v13.0.6.patch @@ -0,0 +1,37 @@ +From 0dba26c42aa6a14342cca4d669da6016caefd47c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 6 Sep 2023 09:21:39 +0530 +Subject: drm/amdgpu: Fix refclk reporting for SMU v13.0.6 + +From: Lijo Lazar + +[ Upstream commit 6b7d211740da2c3a7656be8cbb36f32e6d9c6cbd ] + +SMU v13.0.6 SOCs have 100MHz reference clock. + +Signed-off-by: Lijo Lazar +Reviewed-by: Hawking Zhang +Signed-off-by: Alex Deucher +Stable-dep-of: 6fce23a4d8c5 ("drm/amdgpu: Restrict extended wait to PSP v13.0.6") +Signed-off-by: Sasha Levin +--- + drivers/gpu/drm/amd/amdgpu/soc15.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c +index f5be40d7ba367..28094cd7d9c21 100644 +--- a/drivers/gpu/drm/amd/amdgpu/soc15.c ++++ b/drivers/gpu/drm/amd/amdgpu/soc15.c +@@ -325,7 +325,8 @@ static u32 soc15_get_xclk(struct amdgpu_device *adev) + u32 reference_clock = adev->clock.spll.reference_freq; + + if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, 0, 0) || +- adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, 0, 1)) ++ adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, 0, 1) || ++ adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 6)) + return 10000; + if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(10, 0, 0) || + adev->ip_versions[MP1_HWIP][0] == IP_VERSION(10, 0, 1)) +-- +2.42.0 + diff --git a/queue-6.6/drm-amdgpu-restrict-extended-wait-to-psp-v13.0.6.patch b/queue-6.6/drm-amdgpu-restrict-extended-wait-to-psp-v13.0.6.patch new file mode 100644 index 00000000000..b55414b2006 --- /dev/null +++ b/queue-6.6/drm-amdgpu-restrict-extended-wait-to-psp-v13.0.6.patch @@ -0,0 +1,63 @@ +From a128ed70eff90689c95a03e77caa5fc1d71b4e76 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 29 Nov 2023 18:06:55 +0530 +Subject: drm/amdgpu: Restrict extended wait to PSP v13.0.6 + +From: Lijo Lazar + +[ Upstream commit 6fce23a4d8c5f93bf80b7f122449fbb97f1e40dd ] + +Only PSPv13.0.6 SOCs take a longer time to reach steady state. Other +PSPv13 based SOCs don't need extended wait. Also, reduce PSPv13.0.6 wait +time. + +Cc: stable@vger.kernel.org +Fixes: fc5988907156 ("drm/amdgpu: update retry times for psp vmbx wait") +Fixes: d8c1925ba8cd ("drm/amdgpu: update retry times for psp BL wait") +Link: https://lore.kernel.org/amd-gfx/34dd4c66-f7bf-44aa-af8f-c82889dd652c@amd.com/ +Signed-off-by: Lijo Lazar +Reviewed-by: Asad Kamal +Reviewed-by: Mario Limonciello +Signed-off-by: Alex Deucher +Signed-off-by: Sasha Levin +--- + drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +index 8e4372f24f850..fe1995ed13be7 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +@@ -60,7 +60,7 @@ MODULE_FIRMWARE("amdgpu/psp_14_0_0_ta.bin"); + #define GFX_CMD_USB_PD_USE_LFB 0x480 + + /* Retry times for vmbx ready wait */ +-#define PSP_VMBX_POLLING_LIMIT 20000 ++#define PSP_VMBX_POLLING_LIMIT 3000 + + /* VBIOS gfl defines */ + #define MBOX_READY_MASK 0x80000000 +@@ -161,14 +161,18 @@ static int psp_v13_0_wait_for_vmbx_ready(struct psp_context *psp) + static int psp_v13_0_wait_for_bootloader(struct psp_context *psp) + { + struct amdgpu_device *adev = psp->adev; +- int retry_loop, ret; ++ int retry_loop, retry_cnt, ret; + ++ retry_cnt = ++ (adev->ip_versions[MP0_HWIP][0] == IP_VERSION(13, 0, 6)) ? ++ PSP_VMBX_POLLING_LIMIT : ++ 10; + /* Wait for bootloader to signify that it is ready having bit 31 of + * C2PMSG_35 set to 1. All other bits are expected to be cleared. + * If there is an error in processing command, bits[7:0] will be set. + * This is applicable for PSP v13.0.6 and newer. + */ +- for (retry_loop = 0; retry_loop < PSP_VMBX_POLLING_LIMIT; retry_loop++) { ++ for (retry_loop = 0; retry_loop < retry_cnt; retry_loop++) { + ret = psp_wait_for( + psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35), + 0x80000000, 0xffffffff, false); +-- +2.42.0 + diff --git a/queue-6.6/drm-amdgpu-update-retry-times-for-psp-bl-wait.patch b/queue-6.6/drm-amdgpu-update-retry-times-for-psp-bl-wait.patch new file mode 100644 index 00000000000..2861b4b9334 --- /dev/null +++ b/queue-6.6/drm-amdgpu-update-retry-times-for-psp-bl-wait.patch @@ -0,0 +1,39 @@ +From 8d5538535edb54f7700919aab8d61627ff42d601 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 16 Oct 2023 22:10:34 +0800 +Subject: drm/amdgpu: update retry times for psp BL wait + +From: Asad Kamal + +[ Upstream commit d8c1925ba8cde2863297728a4c8fbf8fe766757a ] + +Increase retry time for PSP BL wait, to compensate +for longer time to set c2pmsg 35 ready bit during +mode1 with RAS + +Signed-off-by: Asad Kamal +Reviewed-by: Hawking Zhang +Reviewed-by: Lijo Lazar +Signed-off-by: Alex Deucher +Stable-dep-of: 6fce23a4d8c5 ("drm/amdgpu: Restrict extended wait to PSP v13.0.6") +Signed-off-by: Sasha Levin +--- + drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +index 52d80f286b3dd..8e4372f24f850 100644 +--- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +@@ -168,7 +168,7 @@ static int psp_v13_0_wait_for_bootloader(struct psp_context *psp) + * If there is an error in processing command, bits[7:0] will be set. + * This is applicable for PSP v13.0.6 and newer. + */ +- for (retry_loop = 0; retry_loop < 10; retry_loop++) { ++ for (retry_loop = 0; retry_loop < PSP_VMBX_POLLING_LIMIT; retry_loop++) { + ret = psp_wait_for( + psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35), + 0x80000000, 0xffffffff, false); +-- +2.42.0 + diff --git a/queue-6.6/series b/queue-6.6/series index c72f6c0ada8..3bb37639174 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -239,3 +239,6 @@ netfilter-nft_set_pipapo-skip-inactive-elements-during-set-walk.patch asoc-qcom-sc8280xp-limit-speaker-digital-volumes.patch gcc-plugins-randstruct-update-code-comment-in-relayout_struct.patch riscv-kconfig-add-select-arm_amba-to-soc_starfive.patch +drm-amdgpu-fix-refclk-reporting-for-smu-v13.0.6.patch +drm-amdgpu-update-retry-times-for-psp-bl-wait.patch +drm-amdgpu-restrict-extended-wait-to-psp-v13.0.6.patch -- 2.47.3