]> www.infradead.org Git - users/willy/xarray.git/commitdiff
drm/i915: Utilize edp_disable_dsc from VBT
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 17 May 2024 14:53:55 +0000 (17:53 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 14 Jun 2024 17:28:38 +0000 (20:28 +0300)
Disable eDP DSC usage when instructed to do so by the VBT.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240517145356.26103-7-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_bios.c
drivers/gpu/drm/i915/display/intel_display_types.h
drivers/gpu/drm/i915/display/intel_dp.c

index def2ade619548e1b0d93c5639b79406408a8cf8c..ec1e3a380360138983d5054862ac4c76e53c68d6 100644 (file)
@@ -1525,6 +1525,10 @@ parse_edp(struct drm_i915_private *i915,
        if (i915->display.vbt.version >= 244)
                panel->vbt.edp.max_link_rate =
                        edp->edp_max_port_link_rate[panel_type] * 20;
+
+       if (i915->display.vbt.version >= 251)
+               panel->vbt.edp.dsc_disable =
+                       panel_bool(edp->edp_dsc_disable, panel_type);
 }
 
 static void
index 02ebe6f3e765df34d0e8d894ae41bedc0f7be1e6..46b3cbeb4a823c2709a27caf35f7894cba6d272d 100644 (file)
@@ -335,6 +335,7 @@ struct intel_vbt_panel_data {
                u8 drrs_msa_timing_delay;
                bool low_vswing;
                bool hobl;
+               bool dsc_disable;
        } edp;
 
        struct {
index 926b0beed666f38bd02b5086736e9fcf4d84b52f..fda9a704cd80add440b535e2bdc179e4c5e46b73 100644 (file)
@@ -1181,6 +1181,10 @@ bool intel_dp_has_dsc(const struct intel_connector *connector)
        if (connector->mst_port && !HAS_DSC_MST(i915))
                return false;
 
+       if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP &&
+           connector->panel.vbt.edp.dsc_disable)
+               return false;
+
        if (!drm_dp_sink_supports_dsc(connector->dp.dsc_dpcd))
                return false;