diff options
author | Samson Tam <Samson.Tam@amd.com> | 2018-09-07 10:13:55 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-09-26 22:09:05 -0400 |
commit | a978f65765e2ccefb22eb77940685ae60c05ff6c (patch) | |
tree | bf59f44837a1fd4ea8b3b6c1e5030f8769280d59 /drivers/gpu/drm | |
parent | aa9c4abe466ac7cd4ab8e1d81b959c3d51173745 (diff) |
drm/amd/display: use proper pipe_ctx index
Use link->link_index as index to pipe_ctx[] to get proper link
information instead of using index 0 to avoid potential miss matches.
Signed-off-by: Samson Tam <Samson.Tam@amd.com>
Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/core/dc.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 1c438eedf77a..7d9be87140cc 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c | |||
@@ -460,9 +460,25 @@ void dc_link_set_preferred_link_settings(struct dc *dc, | |||
460 | struct dc_link_settings *link_setting, | 460 | struct dc_link_settings *link_setting, |
461 | struct dc_link *link) | 461 | struct dc_link *link) |
462 | { | 462 | { |
463 | int i; | ||
464 | struct pipe_ctx *pipe; | ||
465 | struct dc_stream_state *link_stream; | ||
463 | struct dc_link_settings store_settings = *link_setting; | 466 | struct dc_link_settings store_settings = *link_setting; |
464 | struct dc_stream_state *link_stream = | 467 | |
465 | link->dc->current_state->res_ctx.pipe_ctx[0].stream; | 468 | for (i = 0; i < MAX_PIPES; i++) { |
469 | pipe = &dc->current_state->res_ctx.pipe_ctx[i]; | ||
470 | if (pipe->stream && pipe->stream->sink | ||
471 | && pipe->stream->sink->link) { | ||
472 | if (pipe->stream->sink->link == link) | ||
473 | break; | ||
474 | } | ||
475 | } | ||
476 | |||
477 | /* Stream not found */ | ||
478 | if (i == MAX_PIPES) | ||
479 | return; | ||
480 | |||
481 | link_stream = link->dc->current_state->res_ctx.pipe_ctx[i].stream; | ||
466 | 482 | ||
467 | link->preferred_link_setting = store_settings; | 483 | link->preferred_link_setting = store_settings; |
468 | if (link_stream) | 484 | if (link_stream) |