drm/edid: Ignore "DFP 1.x" bit for EDID 1.2 and earlier
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 29 May 2019 11:02:04 +0000 (14:02 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 6 Jun 2019 13:18:15 +0000 (16:18 +0300)
From VESA EDID implementation guide v1.0:
"For EDID version 1 revision 2 or earlier data structures when offset 14h
 bit 7 is set to one, the value of bits 6-0 are undefined, and therefore
 cannot be interpreted to mean anything."

And since EDID 1.4 redefines that bit let's consult it only for
EDID 1.3.

Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190529110204.2384-2-ville.syrjala@linux.intel.com
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>
drivers/gpu/drm/drm_edid.c

index dd601ed6a30e6ea837a7bb230d183b93cd42775e..c3296a72fff97c5d5bb41e15061f0c92a9ec79bd 100644 (file)
@@ -4569,8 +4569,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
         * tells us to assume 8 bpc color depth if the EDID doesn't have
         * extensions which tell otherwise.
         */
-       if ((info->bpc == 0) && (edid->revision < 4) &&
-           (edid->input & DRM_EDID_DIGITAL_DFP_1_X)) {
+       if (info->bpc == 0 && edid->revision == 3 &&
+           edid->input & DRM_EDID_DIGITAL_DFP_1_X) {
                info->bpc = 8;
                DRM_DEBUG("%s: Assigning DFP sink color depth as %d bpc.\n",
                          connector->name, info->bpc);