mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 10:41:49 +02:00
drm/amd/display: retain/release stream pointer in link enc table
[why] At every reference to stream pointer, we need to increment/decrement the kref_count. Not doing so will result in invalid stream pointer still alive after hibernate cycle. [how] Call stream retain/release whenever the link encoder assignment is set to true/false since it indicates if we want to reference the stream pointer or not. Reviewed-by: Jun Lei <Jun.Lei@amd.com> Acked-by: Anson Jacob <Anson.Jacob@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Sung Joon Kim <sungkim@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
e43098f6ab
commit
4cbe435dd6
|
|
@ -122,6 +122,7 @@ static void remove_link_enc_assignment(
|
|||
stream->link_enc = NULL;
|
||||
state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].eng_id = ENGINE_ID_UNKNOWN;
|
||||
state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].stream = NULL;
|
||||
dc_stream_release(stream);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -144,6 +145,7 @@ static void add_link_enc_assignment(
|
|||
*/
|
||||
for (i = 0; i < state->stream_count; i++) {
|
||||
if (stream == state->streams[i]) {
|
||||
dc_stream_retain(stream);
|
||||
state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i] = (struct link_enc_assignment){
|
||||
.valid = true,
|
||||
.ep_id = (struct display_endpoint_id) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user