[PATCH 10/10] drm/i915: Account for sink max TMDS clock when checking the port clock

Ander Conselvan De Oliveira conselvan2 at gmail.com
Thu Sep 29 08:21:35 UTC 2016


On Wed, 2016-09-28 at 16:51 +0300, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> It's perfectly legal for the sink to support 12bpc only for
> some lower resolution modes, while the higher resolution modes
> can only be used with 8bpc. So let's take the sink's max TMDS clock
> into account before we go and decide that a particular mode can
> be used with 12bpc.

Reviewed-by: Ander Conselvan de Oliveira <conselvan2 at gmail.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_hdmi.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c
> b/drivers/gpu/drm/i915/intel_hdmi.c
> index 8d49800064df..8d46f5836746 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1220,10 +1220,17 @@ static int hdmi_port_clock_limit(struct intel_hdmi
> *hdmi,
>  	int max_tmds_clock = intel_hdmi_source_max_tmds_clock(to_i915(dev));
>  
>  	if (respect_downstream_limits) {
> +		struct intel_connector *connector = hdmi->attached_connector;
> +		const struct drm_display_info *info = &connector-
> >base.display_info;
> +
>  		if (hdmi->dp_dual_mode.max_tmds_clock)
>  			max_tmds_clock = min(max_tmds_clock,
>  					     hdmi-
> >dp_dual_mode.max_tmds_clock);
> -		if (!hdmi->has_hdmi_sink)
> +
> +		if (info->max_tmds_clock)
> +			max_tmds_clock = min(max_tmds_clock,
> +					     info->max_tmds_clock);
> +		else if (!hdmi->has_hdmi_sink)
>  			max_tmds_clock = min(max_tmds_clock, 165000);
>  	}
>  


More information about the dri-devel mailing list