All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities
@ 2018-10-17 23:10 clinton.a.taylor
  2018-10-17 23:22 ` ✗ Fi.CI.BAT: failure for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: clinton.a.taylor @ 2018-10-17 23:10 UTC (permalink / raw)
  To: Intel-gfx

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 checks for YCbCr420 Deep Color, YCbCR420 VDB,
YCBCR420 CMDB capabilities, and pipe is YCbCr420 to the existing SCDC
supported check to Infer SINK is HDMI 2.0.

HDMI 2.0 CTS HF1-51 test fails on the QD980B.

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>

Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com>
---
 drivers/gpu/drm/i915/intel_hdmi.c | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 2c53efc..6913806 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -458,6 +458,34 @@ static void intel_write_infoframe(struct intel_encoder *encoder,
 					frame->any.type, buffer, len);
 }
 
+static bool is_hdmi2(const struct drm_connector *connector,
+			const struct intel_crtc_state *crtc_state)
+{
+	bool hdmi2 = false;
+	bool vdb_mode = false;
+	bool cmdb_mode = false;
+	int i = 0;
+
+	/* check VDB bits for HDMI 2.0 mode */
+	for (i = 0; i < BITS_TO_LONGS(128); i++)
+		if (connector->display_info.hdmi.y420_vdb_modes[i])
+			vdb_mode = true;
+
+	/* check CMDB bits for HDMI 2.0 mode */
+	for (i = 0; i < BITS_TO_LONGS(128); i++)
+		if (connector->display_info.hdmi.y420_cmdb_modes[i])
+			cmdb_mode = true;
+
+	if (connector->display_info.hdmi.scdc.supported ||
+	    connector->display_info.hdmi.y420_dc_modes ||
+	    crtc_state->ycbcr420 || vdb_mode || cmdb_mode) {
+		DRM_DEBUG_KMS("Inferred HDMI2 sink present\n");
+		hdmi2 = true;
+	}
+
+	return hdmi2;
+}
+
 static void intel_hdmi_set_avi_infoframe(struct intel_encoder *encoder,
 					 const struct intel_crtc_state *crtc_state,
 					 const struct drm_connector_state *conn_state)
@@ -466,10 +494,12 @@ 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 = false;
 	union hdmi_infoframe frame;
 	int ret;
 
+	is_hdmi2_sink = is_hdmi2(connector, crtc_state);
+
 	ret = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi,
 						       adjusted_mode,
 						       is_hdmi2_sink);
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities
  2018-10-17 23:10 [PATCH] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities clinton.a.taylor
@ 2018-10-17 23:22 ` Patchwork
  2018-10-18 10:23 ` [PATCH] " Ville Syrjälä
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-10-17 23:22 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities
URL   : https://patchwork.freedesktop.org/series/51150/
State : failure

== Summary ==

CALL    scripts/checksyscalls.sh
  DESCEND  objtool
  CHK     include/generated/compile.h
  CC [M]  drivers/gpu/drm/i915/intel_hdmi.o
drivers/gpu/drm/i915/intel_hdmi.c: In function ‘is_hdmi2’:
drivers/gpu/drm/i915/intel_hdmi.c:481:16: error: ‘const struct intel_crtc_state’ has no member named ‘ycbcr420’
      crtc_state->ycbcr420 || vdb_mode || cmdb_mode) {
                ^~
scripts/Makefile.build:305: recipe for target 'drivers/gpu/drm/i915/intel_hdmi.o' failed
make[4]: *** [drivers/gpu/drm/i915/intel_hdmi.o] Error 1
scripts/Makefile.build:546: recipe for target 'drivers/gpu/drm/i915' failed
make[3]: *** [drivers/gpu/drm/i915] Error 2
scripts/Makefile.build:546: recipe for target 'drivers/gpu/drm' failed
make[2]: *** [drivers/gpu/drm] Error 2
scripts/Makefile.build:546: recipe for target 'drivers/gpu' failed
make[1]: *** [drivers/gpu] Error 2
Makefile:1052: recipe for target 'drivers' failed
make: *** [drivers] Error 2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities
  2018-10-17 23:10 [PATCH] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities clinton.a.taylor
  2018-10-17 23:22 ` ✗ Fi.CI.BAT: failure for " Patchwork
@ 2018-10-18 10:23 ` Ville Syrjälä
  2018-10-24 21:04 ` [PATCH v2] " clinton.a.taylor
  2018-10-24 22:10 ` ✓ Fi.CI.BAT: success for drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities (rev2) Patchwork
  3 siblings, 0 replies; 6+ messages in thread
From: Ville Syrjälä @ 2018-10-18 10:23 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: Intel-gfx

On Wed, Oct 17, 2018 at 04:10:34PM -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 checks for YCbCr420 Deep Color, YCbCR420 VDB,
> YCBCR420 CMDB capabilities, and pipe is YCbCr420 to the existing SCDC
> supported check to Infer SINK is HDMI 2.0.
> 
> HDMI 2.0 CTS HF1-51 test fails on the QD980B.
> 
> 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>
> 
> Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_hdmi.c | 32 +++++++++++++++++++++++++++++++-
>  1 file changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 2c53efc..6913806 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -458,6 +458,34 @@ static void intel_write_infoframe(struct intel_encoder *encoder,
>  					frame->any.type, buffer, len);
>  }
>  
> +static bool is_hdmi2(const struct drm_connector *connector,
> +			const struct intel_crtc_state *crtc_state)
> +{
> +	bool hdmi2 = false;
> +	bool vdb_mode = false;
> +	bool cmdb_mode = false;
> +	int i = 0;
> +
> +	/* check VDB bits for HDMI 2.0 mode */
> +	for (i = 0; i < BITS_TO_LONGS(128); i++)
> +		if (connector->display_info.hdmi.y420_vdb_modes[i])
> +			vdb_mode = true;
> +
> +	/* check CMDB bits for HDMI 2.0 mode */
> +	for (i = 0; i < BITS_TO_LONGS(128); i++)
> +		if (connector->display_info.hdmi.y420_cmdb_modes[i])
> +			cmdb_mode = true;
> +
> +	if (connector->display_info.hdmi.scdc.supported ||
> +	    connector->display_info.hdmi.y420_dc_modes ||
> +	    crtc_state->ycbcr420 || vdb_mode || cmdb_mode) {

I think we can replace all this 4:2:0 related stuff with just a
display_info->color_formats & DRM_COLOR_FORMAT_YCRCB420
check.

> +		DRM_DEBUG_KMS("Inferred HDMI2 sink present\n");
> +		hdmi2 = true;
> +	}
> +
> +	return hdmi2;
> +}
> +
>  static void intel_hdmi_set_avi_infoframe(struct intel_encoder *encoder,
>  					 const struct intel_crtc_state *crtc_state,
>  					 const struct drm_connector_state *conn_state)
> @@ -466,10 +494,12 @@ 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 = false;
>  	union hdmi_infoframe frame;
>  	int ret;
>  
> +	is_hdmi2_sink = is_hdmi2(connector, crtc_state);
> +
>  	ret = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi,
>  						       adjusted_mode,
>  						       is_hdmi2_sink);
> -- 
> 1.9.1

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities
  2018-10-17 23:10 [PATCH] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities clinton.a.taylor
  2018-10-17 23:22 ` ✗ Fi.CI.BAT: failure for " Patchwork
  2018-10-18 10:23 ` [PATCH] " Ville Syrjälä
@ 2018-10-24 21:04 ` clinton.a.taylor
  2018-10-26 16:26   ` Ville Syrjälä
  2018-10-24 22:10 ` ✓ Fi.CI.BAT: success for drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities (rev2) Patchwork
  3 siblings, 1 reply; 6+ messages in thread
From: clinton.a.taylor @ 2018-10-24 21:04 UTC (permalink / raw)
  To: Intel-gfx

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>

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

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities (rev2)
  2018-10-17 23:10 [PATCH] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities clinton.a.taylor
                   ` (2 preceding siblings ...)
  2018-10-24 21:04 ` [PATCH v2] " clinton.a.taylor
@ 2018-10-24 22:10 ` Patchwork
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-10-24 22:10 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities (rev2)
URL   : https://patchwork.freedesktop.org/series/51150/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5033 -> Patchwork_10568 =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_10568 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10568, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/51150/revisions/2/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10568:

  === IGT changes ===

    ==== Warnings ====

    igt@pm_rpm@module-reload:
      fi-hsw-4770r:       SKIP -> PASS

    
== Known issues ==

  Here are the changes found in Patchwork_10568 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
      fi-byt-clapper:     PASS -> FAIL (fdo#103191, fdo#107362)

    
    ==== Possible fixes ====

    igt@drv_module_reload@basic-reload-inject:
      fi-hsw-4770r:       DMESG-WARN (fdo#107924, fdo#107425) -> PASS

    igt@drv_selftest@live_hangcheck:
      fi-kbl-7560u:       INCOMPLETE (fdo#108044) -> PASS

    igt@kms_flip@basic-flip-vs-dpms:
      fi-skl-6700hq:      DMESG-WARN (fdo#105998) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-icl-u:           INCOMPLETE (fdo#107713) -> PASS

    
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#105998 https://bugs.freedesktop.org/show_bug.cgi?id=105998
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425
  fdo#107713 https://bugs.freedesktop.org/show_bug.cgi?id=107713
  fdo#107924 https://bugs.freedesktop.org/show_bug.cgi?id=107924
  fdo#108044 https://bugs.freedesktop.org/show_bug.cgi?id=108044


== Participating hosts (47 -> 43) ==

  Missing    (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


== Build changes ==

    * Linux: CI_DRM_5033 -> Patchwork_10568

  CI_DRM_5033: f935e4c7634781e6ffef10bb8a1c93225ac42d90 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4691: d445be01f5edc7e7a324444c73e221c9ed75602e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10568: 44bb3aa43cde72010dead830b5bf0a3e0f5f6e55 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

44bb3aa43cde drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10568/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities
  2018-10-24 21:04 ` [PATCH v2] " clinton.a.taylor
@ 2018-10-26 16:26   ` Ville Syrjälä
  0 siblings, 0 replies; 6+ messages in thread
From: Ville Syrjälä @ 2018-10-26 16:26 UTC (permalink / raw)
  To: clinton.a.taylor; +Cc: Intel-gfx

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

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-10-26 16:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-17 23:10 [PATCH] drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities clinton.a.taylor
2018-10-17 23:22 ` ✗ Fi.CI.BAT: failure for " Patchwork
2018-10-18 10:23 ` [PATCH] " Ville Syrjälä
2018-10-24 21:04 ` [PATCH v2] " clinton.a.taylor
2018-10-26 16:26   ` Ville Syrjälä
2018-10-24 22:10 ` ✓ Fi.CI.BAT: success for drm/i915/hdmi: Detect HDMI 2.0 monitors using multiple EDID capabilities (rev2) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.