drm: Fix EDID color format parsing
The code should obviously check the EDID feature field for EDID feature flags and not the color_formats field of the drm_display_info struct. Also update the color_formats field with new modes instead of overwriting the current mode. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
d1b45d5f05
commit
ee58808dec
|
@ -1699,10 +1699,10 @@ static void drm_add_display_info(struct edid *edid,
|
|||
}
|
||||
|
||||
info->color_formats = DRM_COLOR_FORMAT_RGB444;
|
||||
if (info->color_formats & DRM_EDID_FEATURE_RGB_YCRCB444)
|
||||
info->color_formats = DRM_COLOR_FORMAT_YCRCB444;
|
||||
if (info->color_formats & DRM_EDID_FEATURE_RGB_YCRCB422)
|
||||
info->color_formats = DRM_COLOR_FORMAT_YCRCB422;
|
||||
if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB444)
|
||||
info->color_formats |= DRM_COLOR_FORMAT_YCRCB444;
|
||||
if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB422)
|
||||
info->color_formats |= DRM_COLOR_FORMAT_YCRCB422;
|
||||
|
||||
/* Get data from CEA blocks if present */
|
||||
edid_ext = drm_find_cea_extension(edid);
|
||||
|
|
Loading…
Reference in New Issue