Message ID | 1540415073-5102-1-git-send-email-clinton.a.taylor@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities | expand |
On Wed, Oct 24, 2018 at 02:04:33PM -0700, clinton.a.taylor@intel.com wrote: > From: Clint Taylor <clinton.a.taylor@intel.com> > > HDMI 2.0 monitors may not support SCDC and still be able to accept VICs > above 63. Use multiple EDID capbilities to determine if the SINK is > actually an HDMI 2.0 device. The QD980B HDMI 2.0 Analyzer generates unique > EDIDs during CTS tests that don't contain a HDMI Forum VSDB if the block is > not used during the test. The current HDMI AVI infoframe code only uses the > SCDC supported information in the HDMI Forum VSDB to determine if the sink > is HDMI 2.0. This patch adds a check for YCbCr420 present in the EDID > supported formats as well as the existing SCDC supported check. > > HDMI 2.0 CTS HF1-51 test fails on the QD980B. > > V2: Make check for display_info->color formats == YCbCR420 and SCDC > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107894 > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Dropped the bogus newline here, and pushed to drm-misc-next. Thanks for the patch. > Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com> > --- > drivers/gpu/drm/i915/intel_hdmi.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c > index 89d5e39..eca0a3e 100644 > --- a/drivers/gpu/drm/i915/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/intel_hdmi.c > @@ -466,7 +466,8 @@ static void intel_hdmi_set_avi_infoframe(struct intel_encoder *encoder, > const struct drm_display_mode *adjusted_mode = > &crtc_state->base.adjusted_mode; > struct drm_connector *connector = &intel_hdmi->attached_connector->base; > - bool is_hdmi2_sink = connector->display_info.hdmi.scdc.supported; > + bool is_hdmi2_sink = connector->display_info.hdmi.scdc.supported || > + connector->display_info.color_formats & DRM_COLOR_FORMAT_YCRCB420; > union hdmi_infoframe frame; > int ret; > > -- > 1.9.1
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 89d5e39..eca0a3e 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c @@ -466,7 +466,8 @@ static void intel_hdmi_set_avi_infoframe(struct intel_encoder *encoder, const struct drm_display_mode *adjusted_mode = &crtc_state->base.adjusted_mode; struct drm_connector *connector = &intel_hdmi->attached_connector->base; - bool is_hdmi2_sink = connector->display_info.hdmi.scdc.supported; + bool is_hdmi2_sink = connector->display_info.hdmi.scdc.supported || + connector->display_info.color_formats & DRM_COLOR_FORMAT_YCRCB420; union hdmi_infoframe frame; int ret;