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); >  } > Â