From fc8b7422d9fb1acf9f402bb64b5d994769458237 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Thu, 20 Jul 2017 18:28:52 -0700 Subject: [PATCH] drm/edid: add support for parsing quantization select field Add support for parsing the RGB and YCC quantization selectable field from the Video Capability Data block(VCDB) of the EDID. These fields help to decide whether the default quantization range for a particular video format can be overridden by the source. Change-Id: Ibc72eb13302527089ad66231cd7e8bb34fb364f3 Signed-off-by: Abhinav Kumar --- drivers/gpu/drm/drm_edid.c | 6 ++++++ include/drm/drm_crtc.h | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 39b8e171cad5..c3574c5042da 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -3526,11 +3526,17 @@ drm_extract_vcdb_info(struct drm_connector *connector, const u8 *db) (db[2] & (BIT(3) | BIT(2))) >> 2; connector->ce_scan_info = db[2] & (BIT(1) | BIT(0)); + connector->rgb_qs = + db[2] & BIT(6); + connector->yuv_qs = + db[2] & BIT(7); DRM_DEBUG_KMS("Scan Info (pt|it|ce): (%d|%d|%d)", (int) connector->pt_scan_info, (int) connector->it_scan_info, (int) connector->ce_scan_info); + DRM_DEBUG_KMS("rgb_quant_range_select %d", connector->rgb_qs); + DRM_DEBUG_KMS("ycc_quant_range_select %d", connector->yuv_qs); } static bool drm_edid_is_luminance_value_present( diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 6555fdbee88a..f2b42825fb7a 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -658,6 +658,8 @@ struct drm_encoder { * @hdr_avg_luminance: desired avg luminance obtained from HDR block * @hdr_min_luminance: desired min luminance obtained from HDR block * @hdr_supported: does the sink support HDR content + * @rgb_qs: does the sink declare RGB selectable quantization range + * @yuv_qs: does the sink declare YCC selectable quantization range * @edid_corrupt: indicates whether the last read EDID was corrupt * @debugfs_entry: debugfs directory for this connector * @state: current atomic state for this connector @@ -746,6 +748,8 @@ struct drm_connector { u32 hdr_avg_luminance; u32 hdr_min_luminance; bool hdr_supported; + bool rgb_qs; + bool yuv_qs; /* Flag for raw EDID header corruption - used in Displayport * compliance testing - * Displayport Link CTS Core 1.2 rev1.1 4.2.2.6 */