Commit 926b726c authored by Imre Deak's avatar Imre Deak

drm/i915/dp: Use connector DSC DPCD in intel_dp_dsc_supports_format()

Use the connector's DSC DPCD capabilities in
intel_dp_dsc_supports_format().
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231006133727.1822579-15-imre.deak@intel.com
parent 2c4907c2
...@@ -1691,10 +1691,10 @@ static int intel_dp_dsc_compute_params(const struct intel_connector *connector, ...@@ -1691,10 +1691,10 @@ static int intel_dp_dsc_compute_params(const struct intel_connector *connector,
return drm_dsc_compute_rc_parameters(vdsc_cfg); return drm_dsc_compute_rc_parameters(vdsc_cfg);
} }
static bool intel_dp_dsc_supports_format(struct intel_dp *intel_dp, static bool intel_dp_dsc_supports_format(const struct intel_connector *connector,
enum intel_output_format output_format) enum intel_output_format output_format)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp); struct drm_i915_private *i915 = to_i915(connector->base.dev);
u8 sink_dsc_format; u8 sink_dsc_format;
switch (output_format) { switch (output_format) {
...@@ -1706,7 +1706,7 @@ static bool intel_dp_dsc_supports_format(struct intel_dp *intel_dp, ...@@ -1706,7 +1706,7 @@ static bool intel_dp_dsc_supports_format(struct intel_dp *intel_dp,
break; break;
case INTEL_OUTPUT_FORMAT_YCBCR420: case INTEL_OUTPUT_FORMAT_YCBCR420:
if (min(intel_dp_source_dsc_version_minor(i915), if (min(intel_dp_source_dsc_version_minor(i915),
intel_dp_sink_dsc_version_minor(intel_dp->dsc_dpcd)) < 2) intel_dp_sink_dsc_version_minor(connector->dp.dsc_dpcd)) < 2)
return false; return false;
sink_dsc_format = DP_DSC_YCbCr420_Native; sink_dsc_format = DP_DSC_YCbCr420_Native;
break; break;
...@@ -1714,7 +1714,7 @@ static bool intel_dp_dsc_supports_format(struct intel_dp *intel_dp, ...@@ -1714,7 +1714,7 @@ static bool intel_dp_dsc_supports_format(struct intel_dp *intel_dp,
return false; return false;
} }
return drm_dp_dsc_sink_supports_format(intel_dp->dsc_dpcd, sink_dsc_format); return drm_dp_dsc_sink_supports_format(connector->dp.dsc_dpcd, sink_dsc_format);
} }
static bool is_bw_sufficient_for_dsc_config(u16 compressed_bpp, u32 link_clock, static bool is_bw_sufficient_for_dsc_config(u16 compressed_bpp, u32 link_clock,
...@@ -2124,7 +2124,7 @@ int intel_dp_dsc_compute_config(struct intel_dp *intel_dp, ...@@ -2124,7 +2124,7 @@ int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
if (!intel_dp_supports_dsc(connector, pipe_config)) if (!intel_dp_supports_dsc(connector, pipe_config))
return -EINVAL; return -EINVAL;
if (!intel_dp_dsc_supports_format(intel_dp, pipe_config->output_format)) if (!intel_dp_dsc_supports_format(connector, pipe_config->output_format))
return -EINVAL; return -EINVAL;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment