[Intel-gfx] [PATCH 08/20] drm/i915/dp: Reuse intel_hdmi_tmds_clock()

Nautiyal, Ankit K ankit.k.nautiyal at intel.com
Thu Feb 10 12:34:15 UTC 2022


LGTM

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>

On 10/15/2021 7:09 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Reuse intel_hdmi_tmds_clock() for DP->HDMI TMDS clock calculations.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_dp.c   | 20 +++++---------------
>   drivers/gpu/drm/i915/display/intel_hdmi.c |  2 +-
>   drivers/gpu/drm/i915/display/intel_hdmi.h |  1 +
>   3 files changed, 7 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 5cc99ffc1841..45e4bf54e1de 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -814,9 +814,8 @@ intel_dp_mode_valid_downstream(struct intel_connector *connector,
>   		return MODE_CLOCK_HIGH;
>   
>   	/* Assume 8bpc for the DP++/HDMI/DVI TMDS clock check */
> -	tmds_clock = target_clock;
> -	if (drm_mode_is_420_only(info, mode))
> -		tmds_clock /= 2;
> +	tmds_clock = intel_hdmi_tmds_clock(target_clock, 8,
> +					   drm_mode_is_420_only(info, mode));
>   
>   	if (intel_dp->dfp.min_tmds_clock &&
>   	    tmds_clock < intel_dp->dfp.min_tmds_clock)
> @@ -1070,21 +1069,12 @@ static bool intel_dp_hdmi_ycbcr420(struct intel_dp *intel_dp,
>   		 intel_dp->dfp.ycbcr_444_to_420);
>   }
>   
> -static int intel_dp_hdmi_tmds_clock(struct intel_dp *intel_dp,
> -				    const struct intel_crtc_state *crtc_state, int bpc)
> -{
> -	int clock = crtc_state->hw.adjusted_mode.crtc_clock * bpc / 8;
> -
> -	if (intel_dp_hdmi_ycbcr420(intel_dp, crtc_state))
> -		clock /= 2;
> -
> -	return clock;
> -}
> -
>   static bool intel_dp_hdmi_tmds_clock_valid(struct intel_dp *intel_dp,
>   					   const struct intel_crtc_state *crtc_state, int bpc)
>   {
> -	int tmds_clock = intel_dp_hdmi_tmds_clock(intel_dp, crtc_state, bpc);
> +	int clock = crtc_state->hw.adjusted_mode.crtc_clock;
> +	int tmds_clock = intel_hdmi_tmds_clock(clock, bpc,
> +					       intel_dp_hdmi_ycbcr420(intel_dp, crtc_state));
>   
>   	if (intel_dp->dfp.min_tmds_clock &&
>   	    tmds_clock < intel_dp->dfp.min_tmds_clock)
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index c6586d10a9d0..f1d42279a2df 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -1868,7 +1868,7 @@ hdmi_port_clock_valid(struct intel_hdmi *hdmi,
>   	return MODE_OK;
>   }
>   
> -static int intel_hdmi_tmds_clock(int clock, int bpc, bool ycbcr420_output)
> +int intel_hdmi_tmds_clock(int clock, int bpc, bool ycbcr420_output)
>   {
>   	/* YCBCR420 TMDS rate requirement is half the pixel clock */
>   	if (ycbcr420_output)
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.h b/drivers/gpu/drm/i915/display/intel_hdmi.h
> index ee144db67e66..d892cbff0da0 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.h
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.h
> @@ -47,6 +47,7 @@ bool intel_hdmi_limited_color_range(const struct intel_crtc_state *crtc_state,
>   				    const struct drm_connector_state *conn_state);
>   bool intel_hdmi_bpc_possible(const struct intel_crtc_state *crtc_state,
>   			     int bpc, bool has_hdmi_sink, bool ycbcr420_output);
> +int intel_hdmi_tmds_clock(int clock, int bpc, bool ycbcr420_output);
>   int intel_hdmi_dsc_get_bpp(int src_fractional_bpp, int slice_width,
>   			   int num_slices, int output_format, bool hdmi_all_bpp,
>   			   int hdmi_max_chunk_bytes);


More information about the Intel-gfx mailing list