diff --git a/patches.kernel.org/6.2.2-006-drm-amd-display-Properly-reuse-completion-struc.patch b/patches.kernel.org/6.2.2-006-drm-amd-display-Properly-reuse-completion-struc.patch new file mode 100644 index 0000000..d594dce --- /dev/null +++ b/patches.kernel.org/6.2.2-006-drm-amd-display-Properly-reuse-completion-struc.patch @@ -0,0 +1,55 @@ +From: Stylon Wang +Date: Tue, 10 Jan 2023 14:38:33 +0800 +Subject: [PATCH] drm/amd/display: Properly reuse completion structure +References: bsc#1012628 +Patch-mainline: 6.2.2 +Git-commit: 0cf8307adbc6beb5ff3b8a76afedc6e4e0b536a9 + +commit 0cf8307adbc6beb5ff3b8a76afedc6e4e0b536a9 upstream. + +[Why] +Connecting displays to TBT3 docks often produces invalid +replies for DPIA AUX requests. It turns out the completion +structure was not re-initialized before reusing it, resulting +in immature wake up to completion. + +[How] +Properly call reinit_completion() on reused completion structure. + +Cc: stable@vger.kernel.org +Reviewed-by: Solomon Chiu +Acked-by: Alan Liu +Signed-off-by: Stylon Wang +Tested-by: Daniel Wheeler +Signed-off-by: Alex Deucher +Cc: "Limonciello, Mario" +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Jiri Slaby +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 9c7b69d3..af16d6bb 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -10359,6 +10359,7 @@ int amdgpu_dm_process_dmub_aux_transfer_sync( + ret = p_notify->aux_reply.length; + *operation_result = p_notify->result; + out: ++ reinit_completion(&adev->dm.dmub_aux_transfer_done); + mutex_unlock(&adev->dm.dpia_aux_lock); + return ret; + } +@@ -10386,6 +10387,8 @@ int amdgpu_dm_process_dmub_set_config_sync( + *operation_result = SET_CONFIG_UNKNOWN_ERROR; + } + ++ if (!is_cmd_complete) ++ reinit_completion(&adev->dm.dmub_aux_transfer_done); + mutex_unlock(&adev->dm.dpia_aux_lock); + return ret; + } +-- +2.35.3 + diff --git a/series.conf b/series.conf index 21a5dca..59028a2 100644 --- a/series.conf +++ b/series.conf @@ -45,6 +45,7 @@ patches.kernel.org/6.2.2-003-bpf-bpf_fib_lookup-should-not-return-neigh-in-N.patch patches.kernel.org/6.2.2-004-vc_screen-don-t-clobber-return-value-in-vcs_rea.patch patches.kernel.org/6.2.2-005-drm-amd-display-Move-DCN314-DOMAIN-power-contro.patch + patches.kernel.org/6.2.2-006-drm-amd-display-Properly-reuse-completion-struc.patch ######################################################## # Build fixes that apply to the vanilla kernel too.