drm/amd/display: add stream_enc_inst for PSP HDCP inst use
authorCharlene Liu <Charlene.Liu@amd.com>
Fri, 10 Jan 2020 19:52:49 +0000 (14:52 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 6 Feb 2020 20:04:37 +0000 (15:04 -0500)
[why]
new HW engine mapping requirment use in PSP
[how]
report stream_enc_inst

Signed-off-by: Charlene Liu <Charlene.Liu@amd.com>
Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c
drivers/gpu/drm/amd/display/dc/core/dc_resource.c
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_stream_encoder.c
drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h

index 41184e593f85d7721f6ddc29a716d44da75e3834..fe50747692ecf1577c5a9f130a5494fd732fd26c 100644 (file)
@@ -2922,7 +2922,8 @@ static void update_psp_stream_config(struct pipe_ctx *pipe_ctx, bool dpms_off)
                memset(&config, 0, sizeof(config));
 
                config.otg_inst = (uint8_t) pipe_ctx->stream_res.tg->inst;
-               config.stream_enc_inst = (uint8_t) pipe_ctx->stream_res.stream_enc->id;
+               /*stream_enc_inst*/
+               config.stream_enc_inst = (uint8_t) pipe_ctx->stream_res.stream_enc->stream_enc_inst;
                config.link_enc_inst = pipe_ctx->stream->link->link_enc_hw_inst;
                config.dpms_off = dpms_off;
                config.dm_stream_ctx = pipe_ctx->stream->dm_stream_context;
index a0eb9e533a615b316cc442918c740e47a90bab71..cd80d8249d1420991368eb6412ded82d3c7a514c 100644 (file)
@@ -2034,7 +2034,7 @@ enum dc_status resource_map_pool_resources(
        for (i = 0; i < context->stream_count; i++)
                if (context->streams[i] == stream) {
                        context->stream_status[i].primary_otg_inst = pipe_ctx->stream_res.tg->inst;
-                       context->stream_status[i].stream_enc_inst = pipe_ctx->stream_res.stream_enc->id;
+                       context->stream_status[i].stream_enc_inst = pipe_ctx->stream_res.stream_enc->stream_enc_inst;
                        context->stream_status[i].audio_inst =
                                pipe_ctx->stream_res.audio ? pipe_ctx->stream_res.audio->inst : -1;
 
index 376c4264d295b5f9fe808e14ed44389093c66581..7eba9333c3285dc9420b32cf4f530888c93b2794 100644 (file)
@@ -1667,5 +1667,6 @@ void dcn10_stream_encoder_construct(
        enc1->regs = regs;
        enc1->se_shift = se_shift;
        enc1->se_mask = se_mask;
+       enc1->base.stream_enc_inst = eng_id - ENGINE_ID_DIGA;
 }
 
index 9b70a1e7b962b87f1a4b20e918471dea7f2e3306..99a7ef6ab878bd958a079fd6279d3a3ab6d5f6be 100644 (file)
@@ -616,5 +616,6 @@ void dcn20_stream_encoder_construct(
        enc1->regs = regs;
        enc1->se_shift = se_shift;
        enc1->se_mask = se_mask;
+       enc1->base.stream_enc_inst = eng_id - ENGINE_ID_DIGA;
 }
 
index 351b387ad606226d89f42dbfa88d91589f85e7ff..ac6523c0828e2ea46bdb616b243f18fad1341486 100644 (file)
@@ -103,6 +103,7 @@ struct stream_encoder {
        struct dc_context *ctx;
        struct dc_bios *bp;
        enum engine_id id;
+       uint32_t stream_enc_inst;
 };
 
 struct enc_state {