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 <[email protected]>
> Cc: Ville Syrjälä <[email protected]>
> Cc: Clint Taylor <[email protected]>
> Cc: Cooper Chiou <[email protected]>
> Signed-off-by: Lee Shawn C <[email protected]>
> ---
>  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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to