All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] drm/edid: temporary workaround to pass HDMI 2.0 compliance HF1-13
  2020-02-17 17:41 [PATCH] drm/edid: temporary workaround to pass HDMI 2.0 compliance HF1-13 Lee Shawn C
@ 2020-02-17 14:53 ` Ville Syrjälä
  2020-02-18  6:49   ` Lee, Shawn C
  0 siblings, 1 reply; 3+ messages in thread
From: Ville Syrjälä @ 2020-02-17 14:53 UTC (permalink / raw)
  To: Lee Shawn C; +Cc: Jani Nikula, dri-devel, Cooper Chiou

On Tue, Feb 18, 2020 at 01:41:39AM +0800, Lee Shawn C wrote:
> Test case HF1-13 for HDMI 2.0 compliance would ask DUT to downgrade
> output resolution to 720x480 or 720x576 (lower than 3.4Gbps).
> And check scrambling feature was disabled as well.
> 
> But QD980 report it can support low rate scrambling. The vendor
> specific data block byte[6] was 0x88. If driver enabled scrambling
> rely on this info. Then HF1-13 would not get pass because DUT have
> to disable scrambling to run this case.

Sounds like a broken test to me.

> 
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Clint Taylor <clinton.a.taylor@intel.com>
> Cc: Cooper Chiou <cooper.chiou@intel.com>
> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
> ---
>  drivers/gpu/drm/drm_edid.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 99769d6c9f84..0b4badc20c35 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -85,6 +85,8 @@
>  #define EDID_QUIRK_FORCE_10BPC			(1 << 11)
>  /* Non desktop display (i.e. HMD) */
>  #define EDID_QUIRK_NON_DESKTOP			(1 << 12)
> +/* Do not enable low rates scrambling */
> +#define EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING	(1 << 13)
>  
>  struct detailed_mode_closure {
>  	struct drm_connector *connector;
> @@ -214,6 +216,9 @@ static const struct edid_quirk {
>  
>  	/* OSVR HDK and HDK2 VR Headsets */
>  	{ "SVR", 0x1019, EDID_QUIRK_NON_DESKTOP },
> +
> +	/* Quantumdata 980 test platform */
> +	{ "QDI", 0x03D4, EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING },
>  };
>  
>  /*
> @@ -4710,10 +4715,11 @@ static void drm_parse_ycbcr420_deep_color_info(struct drm_connector *connector,
>  }
>  
>  static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector,
> -				 const u8 *hf_vsdb)
> +				 const u8 *hf_vsdb, const struct edid *edid)
>  {
>  	struct drm_display_info *display = &connector->display_info;
>  	struct drm_hdmi_info *hdmi = &display->hdmi;
> +	u32 quirks = edid_get_quirks(edid);
>  
>  	display->has_hdmi_infoframe = true;
>  
> @@ -4747,7 +4753,8 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector,
>  			scdc->scrambling.supported = true;
>  
>  			/* Few sinks support scrambling for clocks < 340M */
> -			if ((hf_vsdb[6] & 0x8))
> +			if ((hf_vsdb[6] & 0x8) &&
> +			    !(quirks & EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING))
>  				scdc->scrambling.low_rates = true;
>  		}
>  	}
> @@ -4870,7 +4877,7 @@ static void drm_parse_cea_ext(struct drm_connector *connector,
>  		if (cea_db_is_hdmi_vsdb(db))
>  			drm_parse_hdmi_vsdb_video(connector, db);
>  		if (cea_db_is_hdmi_forum_vsdb(db))
> -			drm_parse_hdmi_forum_vsdb(connector, db);
> +			drm_parse_hdmi_forum_vsdb(connector, db, edid);
>  		if (cea_db_is_y420cmdb(db))
>  			drm_parse_y420cmdb_bitmap(connector, db);
>  		if (cea_db_is_vcdb(db))
> -- 
> 2.17.1

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

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

* [PATCH] drm/edid: temporary workaround to pass HDMI 2.0 compliance HF1-13
@ 2020-02-17 17:41 Lee Shawn C
  2020-02-17 14:53 ` Ville Syrjälä
  0 siblings, 1 reply; 3+ messages in thread
From: Lee Shawn C @ 2020-02-17 17:41 UTC (permalink / raw)
  To: dri-devel; +Cc: Jani Nikula, Lee Shawn C, Cooper Chiou

Test case HF1-13 for HDMI 2.0 compliance would ask DUT to downgrade
output resolution to 720x480 or 720x576 (lower than 3.4Gbps).
And check scrambling feature was disabled as well.

But QD980 report it can support low rate scrambling. The vendor
specific data block byte[6] was 0x88. If driver enabled scrambling
rely on this info. Then HF1-13 would not get pass because DUT have
to disable scrambling to run this case.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Clint Taylor <clinton.a.taylor@intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 99769d6c9f84..0b4badc20c35 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -85,6 +85,8 @@
 #define EDID_QUIRK_FORCE_10BPC			(1 << 11)
 /* Non desktop display (i.e. HMD) */
 #define EDID_QUIRK_NON_DESKTOP			(1 << 12)
+/* Do not enable low rates scrambling */
+#define EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING	(1 << 13)
 
 struct detailed_mode_closure {
 	struct drm_connector *connector;
@@ -214,6 +216,9 @@ static const struct edid_quirk {
 
 	/* OSVR HDK and HDK2 VR Headsets */
 	{ "SVR", 0x1019, EDID_QUIRK_NON_DESKTOP },
+
+	/* Quantumdata 980 test platform */
+	{ "QDI", 0x03D4, EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING },
 };
 
 /*
@@ -4710,10 +4715,11 @@ static void drm_parse_ycbcr420_deep_color_info(struct drm_connector *connector,
 }
 
 static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector,
-				 const u8 *hf_vsdb)
+				 const u8 *hf_vsdb, const struct edid *edid)
 {
 	struct drm_display_info *display = &connector->display_info;
 	struct drm_hdmi_info *hdmi = &display->hdmi;
+	u32 quirks = edid_get_quirks(edid);
 
 	display->has_hdmi_infoframe = true;
 
@@ -4747,7 +4753,8 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector,
 			scdc->scrambling.supported = true;
 
 			/* Few sinks support scrambling for clocks < 340M */
-			if ((hf_vsdb[6] & 0x8))
+			if ((hf_vsdb[6] & 0x8) &&
+			    !(quirks & EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING))
 				scdc->scrambling.low_rates = true;
 		}
 	}
@@ -4870,7 +4877,7 @@ static void drm_parse_cea_ext(struct drm_connector *connector,
 		if (cea_db_is_hdmi_vsdb(db))
 			drm_parse_hdmi_vsdb_video(connector, db);
 		if (cea_db_is_hdmi_forum_vsdb(db))
-			drm_parse_hdmi_forum_vsdb(connector, db);
+			drm_parse_hdmi_forum_vsdb(connector, db, edid);
 		if (cea_db_is_y420cmdb(db))
 			drm_parse_y420cmdb_bitmap(connector, db);
 		if (cea_db_is_vcdb(db))
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* RE: [PATCH] drm/edid: temporary workaround to pass HDMI 2.0 compliance HF1-13
  2020-02-17 14:53 ` Ville Syrjälä
@ 2020-02-18  6:49   ` Lee, Shawn C
  0 siblings, 0 replies; 3+ messages in thread
From: Lee, Shawn C @ 2020-02-18  6:49 UTC (permalink / raw)
  To: dri-devel, Ville Syrjälä; +Cc: Nikula, Jani, Chiou, Cooper


On Tue, Feb 18, Ville Syrjälä wrote:
>On Tue, Feb 18, 2020 at 01:41:39AM +0800, Lee Shawn C wrote:
>> Test case HF1-13 for HDMI 2.0 compliance would ask DUT to downgrade 
>> output resolution to 720x480 or 720x576 (lower than 3.4Gbps).
>> And check scrambling feature was disabled as well.
>> 
>> But QD980 report it can support low rate scrambling. The vendor 
>> specific data block byte[6] was 0x88. If driver enabled scrambling 
>> rely on this info. Then HF1-13 would not get pass because DUT have to 
>> disable scrambling to run this case.
>
>Sounds like a broken test to me.

Yes! We will try to contact the vendor (Teledyne LeCroy) to analyze.
Like what we mention the patch title. This is just a temporary
workaround to pass this case.

Best regards,
Shawn

>
>> 
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Cc: Clint Taylor <clinton.a.taylor@intel.com>
>> Cc: Cooper Chiou <cooper.chiou@intel.com>
>> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
>> ---
>>  drivers/gpu/drm/drm_edid.c | 13 ++++++++++---
>>  1 file changed, 10 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c 
>> index 99769d6c9f84..0b4badc20c35 100644
>> --- a/drivers/gpu/drm/drm_edid.c
>> +++ b/drivers/gpu/drm/drm_edid.c
>> @@ -85,6 +85,8 @@
>>  #define EDID_QUIRK_FORCE_10BPC			(1 << 11)
>>  /* Non desktop display (i.e. HMD) */
>>  #define EDID_QUIRK_NON_DESKTOP			(1 << 12)
>> +/* Do not enable low rates scrambling */
>> +#define EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING	(1 << 13)
>>  
>>  struct detailed_mode_closure {
>>  	struct drm_connector *connector;
>> @@ -214,6 +216,9 @@ static const struct edid_quirk {
>>  
>>  	/* OSVR HDK and HDK2 VR Headsets */
>>  	{ "SVR", 0x1019, EDID_QUIRK_NON_DESKTOP },
>> +
>> +	/* Quantumdata 980 test platform */
>> +	{ "QDI", 0x03D4, EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING },
>>  };
>>  
>>  /*
>> @@ -4710,10 +4715,11 @@ static void 
>> drm_parse_ycbcr420_deep_color_info(struct drm_connector *connector,  }
>>  
>>  static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector,
>> -				 const u8 *hf_vsdb)
>> +				 const u8 *hf_vsdb, const struct edid *edid)
>>  {
>>  	struct drm_display_info *display = &connector->display_info;
>>  	struct drm_hdmi_info *hdmi = &display->hdmi;
>> +	u32 quirks = edid_get_quirks(edid);
>>  
>>  	display->has_hdmi_infoframe = true;
>>  
>> @@ -4747,7 +4753,8 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector,
>>  			scdc->scrambling.supported = true;
>>  
>>  			/* Few sinks support scrambling for clocks < 340M */
>> -			if ((hf_vsdb[6] & 0x8))
>> +			if ((hf_vsdb[6] & 0x8) &&
>> +			    !(quirks & EDID_QUIRK_DISABLE_LOW_RATE_SCRAMBLING))
>>  				scdc->scrambling.low_rates = true;
>>  		}
>>  	}
>> @@ -4870,7 +4877,7 @@ static void drm_parse_cea_ext(struct drm_connector *connector,
>>  		if (cea_db_is_hdmi_vsdb(db))
>>  			drm_parse_hdmi_vsdb_video(connector, db);
>>  		if (cea_db_is_hdmi_forum_vsdb(db))
>> -			drm_parse_hdmi_forum_vsdb(connector, db);
>> +			drm_parse_hdmi_forum_vsdb(connector, db, edid);
>>  		if (cea_db_is_y420cmdb(db))
>>  			drm_parse_y420cmdb_bitmap(connector, db);
>>  		if (cea_db_is_vcdb(db))
>> --
>> 2.17.1
>
>--
>Ville Syrjälä
>Intel
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

end of thread, other threads:[~2020-02-18  6:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-17 17:41 [PATCH] drm/edid: temporary workaround to pass HDMI 2.0 compliance HF1-13 Lee Shawn C
2020-02-17 14:53 ` Ville Syrjälä
2020-02-18  6:49   ` Lee, Shawn C

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.