drm/amd/display: Disable FEC if DSC not supported for EDP
authorIswara Nagulendran <inagulen@amd.com>
Wed, 5 Jan 2022 22:56:25 +0000 (17:56 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 12 Apr 2022 18:17:17 +0000 (14:17 -0400)
[WHY]
Screen was seen corrupted for a few ms
when switching both ways. There was also
not enough bandwidth for HDR to be
enabled in HG disabled mode.
This was due to FEC being
enabled although DSC was not supported
or disabled for the EDP.

[HOW]
Check for EDP DSC support in DC caps
or if DSC should be disabled for EDP
before enabling FEC for EDP.

Reviewed-by: Harry Vanzylldejong <harry.vanzylldejong@amd.com>
Reviewed-by: Evgenii Krasnikov <Evgenii.Krasnikov@amd.com>
Reviewed-by: Nicholas Choi <Nicholas.Choi@amd.com>
Acked-by: Pavle Kotarac <Pavle.Kotarac@amd.com>
Signed-off-by: Iswara Nagulendran <inagulen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index 22f2d88fab9967616474cfabd4654993a7083b87..c1a727ff8b1d2476b3d8c7ae67ac41a39e0dc866 100644 (file)
@@ -4663,8 +4663,10 @@ bool dc_link_should_enable_fec(const struct dc_link *link)
                        link->local_sink->edid_caps.panel_patch.disable_fec)
                force_disable = true;
        else if (link->connector_signal == SIGNAL_TYPE_EDP
-                       && link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.
-                        dsc_support.DSC_SUPPORT == false)
+                       && (link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.
+                        dsc_support.DSC_SUPPORT == false
+                               || link->dc->debug.disable_dsc_edp
+                               || !link->dc->caps.edp_dsc_support))
                force_disable = true;
 
        return !force_disable && dc_link_is_fec_supported(link);