[PATCH] drm/edid: temporary workaround to pass HDMI 2.0 compliance HF1-13

Lee, Shawn C shawn.c.lee at intel.com
Tue Feb 18 06:49:16 UTC 2020


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 at intel.com>
>> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
>> Cc: Clint Taylor <clinton.a.taylor at intel.com>
>> Cc: Cooper Chiou <cooper.chiou at intel.com>
>> Signed-off-by: Lee Shawn C <shawn.c.lee at 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
>


More information about the dri-devel mailing list