drm/amd/display: Fix DCN3 B0 DP Alt Mapping
authorLiu, Zhan <Zhan.Liu@amd.com>
Thu, 2 Sep 2021 19:08:29 +0000 (15:08 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 5 Oct 2021 14:17:50 +0000 (10:17 -0400)
[Why]
DCN3 B0 has a mux, which redirects PHYC and PHYD to PHYF and PHYG.

[How]
Fix DIG mapping.

Reviewed-by: Charlene Liu <charlene.liu@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Zhan Liu <Zhan.Liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
(cherry picked from commit 4b7786d87fb3adf3e534c4f1e4f824d8700b786b)

drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c

index a7702d3c75cdd8d0856160d4984ab39194426815..cb50e6eda47e25c37bd509860f64ed6cd013ec9b 100644 (file)
@@ -1284,6 +1284,12 @@ static struct stream_encoder *dcn31_stream_encoder_create(
        if (!enc1 || !vpg || !afmt)
                return NULL;
 
+       if (ctx->asic_id.chip_family == FAMILY_YELLOW_CARP &&
+                       ctx->asic_id.hw_internal_rev == YELLOW_CARP_B0) {
+               if ((eng_id == ENGINE_ID_DIGC) || (eng_id == ENGINE_ID_DIGD))
+                       eng_id = eng_id + 3; // For B0 only. C->F, D->G.
+       }
+
        dcn30_dio_stream_encoder_construct(enc1, ctx, ctx->dc_bios,
                                        eng_id, vpg, afmt,
                                        &stream_enc_regs[eng_id],