drm/amd/display: Use is_dig_enable function instead of dcn10 hardcode
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Thu, 15 Jun 2023 15:12:33 +0000 (11:12 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 18 Jul 2023 15:12:29 +0000 (11:12 -0400)
[Why]
This can differ depending on ASIC and we can end up skipping all
transmitter control if we're relying on the wrong bit as a shortcut
for whether link is on/off.

[How]
The ASIC table itself provides the correct DIG check, use that instead
of the dcn10 hardcode.

Reviewed-by: Syed Hassan <syed.hassan@amd.com>
Acked-by: Alan Liu <haoping.liu@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_link_encoder.c
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c

index ee08b545aaeaf353749fad791ef86ba0696faee9..377f1ba1a81b70cf05bb7e66763d40ca6ff2fe45 100644 (file)
@@ -1056,7 +1056,7 @@ void dcn10_link_encoder_disable_output(
        struct bp_transmitter_control cntl = { 0 };
        enum bp_result result;
 
-       if (!dcn10_is_dig_enabled(enc)) {
+       if (enc->funcs->is_dig_enabled && !enc->funcs->is_dig_enabled(enc)) {
                /* OF_SKIP_POWER_DOWN_INACTIVE_ENCODER */
        /*in DP_Alt_No_Connect case, we turn off the dig already,
        after excuation the PHY w/a sequence, not allow touch PHY any more*/
index bd62502380d8da7961634084f8627f9cc2e18437..4596f3bac1b4c7654974c75bdc5bae9a32f3ab2d 100644 (file)
@@ -558,7 +558,7 @@ void dcn31_link_encoder_disable_output(
                struct dmub_cmd_dig_dpia_control_data dpia_control = { 0 };
                struct dc_link *link;
 
-               if (!dcn10_is_dig_enabled(enc))
+               if (enc->funcs->is_dig_enabled && !enc->funcs->is_dig_enabled(enc))
                        return;
 
                link = link_enc_cfg_get_link_using_link_enc(enc->ctx->dc, enc->preferred_engine);