mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 14:04:27 -04:00
drm/amd/display: Fix eDP receiver ready status check in T7 sequence
[Why] Some eDP panels return sinkstatus as 0x5, causing the original sinkstatus == 1 check to never match and resulting in unnecessary polling delay. The equality check is too restrictive and doesn't properly validate the specific status bit that indicates receiver readiness. [How] Replace direct value comparison with proper bitmask check using DP_RECEIVE_PORT_0_STATUS constant. Reviewed-by: Wenjing Liu <wenjing.liu@amd.com> Signed-off-by: Sung-huai Wang <Danny.Wang@amd.com> Signed-off-by: Ivan Lipski <ivan.lipski@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
67fb68996c
commit
ab5c6213cf
@@ -462,7 +462,7 @@ bool edp_receiver_ready_T9(struct dc_link *link)
|
||||
do {
|
||||
sinkstatus = 1;
|
||||
result = core_link_read_dpcd(link, DP_SINK_STATUS, &sinkstatus, sizeof(sinkstatus));
|
||||
if (sinkstatus == 0)
|
||||
if (!(sinkstatus & DP_RECEIVE_PORT_0_STATUS))
|
||||
break;
|
||||
if (result != DC_OK)
|
||||
break;
|
||||
@@ -492,7 +492,7 @@ bool edp_receiver_ready_T7(struct dc_link *link)
|
||||
do {
|
||||
sinkstatus = 0;
|
||||
result = core_link_read_dpcd(link, DP_SINK_STATUS, &sinkstatus, sizeof(sinkstatus));
|
||||
if (sinkstatus == 1)
|
||||
if (sinkstatus & DP_RECEIVE_PORT_0_STATUS)
|
||||
break;
|
||||
if (result != DC_OK)
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user