From patchwork Mon Apr 13 21:40:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yussuf Khalil X-Patchwork-Id: 11486391 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C0F5C81 for ; Mon, 13 Apr 2020 21:51:52 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9C37420644 for ; Mon, 13 Apr 2020 21:51:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=pp3345.net header.i=@pp3345.net header.b="S3g50iG3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9C37420644 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=pp3345.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id F40CF89AEB; Mon, 13 Apr 2020 21:51:43 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from saul.pp3345.net (saul.pp3345.net [163.172.111.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80D2689ADC for ; Mon, 13 Apr 2020 21:51:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: dev@pp3345.net) by saul.pp3345.net (Postcow) with ESMTPSA id E7CE79A45E9; Mon, 13 Apr 2020 23:42:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pp3345.net; s=saul; t=1586814168; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:openpgp:autocrypt; bh=mLQh6rOSSTr8rmQR2noDfKObP5yY0fFQpqQZs6nN01o=; b=S3g50iG3NvTpyXkm0fE3BQrytPBc0hVuNOqZqWWZReRhYHDkPpv/AWcOtXAzK+RO2Z9caZ niApSpo3IrrnTCrYQGcch+t49uDyopW2VQZz0oBUWTpley6Ndrp/lLwHZNP9/CoydXdtVA x9zoiMG/JruBzaD+Wf3oIC89cTG5HA50ZGFWQJBh1/Zp4UFZMEZebvHSIz/WlG71f7BI5D MTagjHk5oN8XqAzkmb1abCSp4pRUhmX0XGqrHIg/satzT2ItkZ8S+zLVRkr5XFmMvb8C2U 4S+vdW4qHMRx7ymW2Ls/HIuAilhsS0rMhyueo5sTCw7RowA+Mbd/TaVNk0af4w== From: Yussuf Khalil To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] drm/modes: Indicate CEA-861 CE modes to user-space Date: Mon, 13 Apr 2020 23:40:22 +0200 Message-Id: <20200413214024.46500-2-dev@pp3345.net> In-Reply-To: <20200413214024.46500-1-dev@pp3345.net> References: <20200413214024.46500-1-dev@pp3345.net> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yussuf Khalil Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add a new flag to mark modes that are considered a CE mode according to the CEA-861 specification. Modes without this flag are implicitly considered to be IT modes. User-space applications may use this flag to determine possible implications of using a CE mode (e.g., limited RGB range). There is no use for this flag inside the kernel, so we set it only when communicating a mode to user-space. Signed-off-by: Yussuf Khalil --- drivers/gpu/drm/drm_modes.c | 14 ++++++++++++++ include/uapi/drm/drm_mode.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index d4d64518e11b..0d8a032f437d 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -1973,6 +1973,14 @@ void drm_mode_convert_to_umode(struct drm_mode_modeinfo *out, break; } + if (drm_match_cea_mode(in) > 1) { + /* + * All modes in CTA-861-G Table 1 are CE modes, except 640x480p + * (VIC 1). + */ + out->flags |= DRM_MODE_FLAG_CEA_861_CE_MODE; + } + strncpy(out->name, in->name, DRM_DISPLAY_MODE_LEN); out->name[DRM_DISPLAY_MODE_LEN-1] = 0; } @@ -2045,6 +2053,12 @@ int drm_mode_convert_umode(struct drm_device *dev, return -EINVAL; } + /* + * The CEA-861 CE mode flag is purely informational and intended for + * userspace only. + */ + out->flags &= ~DRM_MODE_FLAG_CEA_861_CE_MODE; + out->status = drm_mode_validate_driver(dev, out); if (out->status != MODE_OK) return -EINVAL; diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 735c8cfdaaa1..5e78b350b2e2 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h @@ -124,6 +124,8 @@ extern "C" { #define DRM_MODE_FLAG_PIC_AR_256_135 \ (DRM_MODE_PICTURE_ASPECT_256_135<<19) +#define DRM_MODE_FLAG_CEA_861_CE_MODE (1<<23) + #define DRM_MODE_FLAG_ALL (DRM_MODE_FLAG_PHSYNC | \ DRM_MODE_FLAG_NHSYNC | \ DRM_MODE_FLAG_PVSYNC | \ From patchwork Mon Apr 13 21:40:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yussuf Khalil X-Patchwork-Id: 11486397 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8C0C581 for ; Mon, 13 Apr 2020 21:51:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6A5BF2074B for ; Mon, 13 Apr 2020 21:51:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=pp3345.net header.i=@pp3345.net header.b="CFd8qH59" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6A5BF2074B Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=pp3345.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8B86589B46; Mon, 13 Apr 2020 21:51:47 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from saul.pp3345.net (saul.pp3345.net [163.172.111.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id A963089AF3 for ; Mon, 13 Apr 2020 21:51:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: dev@pp3345.net) by saul.pp3345.net (Postcow) with ESMTPSA id 00F7F9A45ED; Mon, 13 Apr 2020 23:43:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pp3345.net; s=saul; t=1586814184; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:openpgp:autocrypt; bh=jiSzLqUhJT84Fasmh/xWn11q8s8/UivOsitInucSSJg=; b=CFd8qH59JP/5gV8RWHTJ+Q1AnwXANR1VUuKdmiADvZwtdJqvJwUtz16q2oqTh86CizOueZ 3xg6SId6u6mcd5ZBdhD8taTEVX/ODQr36v6Rscx9lALPIKzmm8qH8KBIHcf+C3V62vwg0x oM/5OJgtJNxPFZJ8d/JLz5MeYLeBK0RjkXaY1Pp5oMhLdckQvOg82+7X/MUgTcR7ewc0Xx oXbBKHShLFLyv1wz90hOBnhLOaP9mRcFbWGWI+wzSUcJn+rwt2idOGuwBt7jP571XE9jrl b6sPl12OlWWQofs/CJEs0MJqO5+31d2i6HplVM6r4714+aRUoMh87Dn/bJv/1g== From: Yussuf Khalil To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/5] drm: Add "RGB quantization range" connector property Date: Mon, 13 Apr 2020 23:40:23 +0200 Message-Id: <20200413214024.46500-3-dev@pp3345.net> In-Reply-To: <20200413214024.46500-1-dev@pp3345.net> References: <20200413214024.46500-1-dev@pp3345.net> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yussuf Khalil Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add a new "RGB quantization range" property with three possible values: Automatic, Limited, and Full. User-space may use this property to override the automatic selection of the RGB range as specified by CTA-861. Drivers should attach this property to all CTA-861 sinks. Signed-off-by: Yussuf Khalil --- drivers/gpu/drm/drm_atomic_uapi.c | 4 ++++ drivers/gpu/drm/drm_connector.c | 35 +++++++++++++++++++++++++++++++ include/drm/drm_connector.h | 23 ++++++++++++++++++++ include/drm/drm_mode_config.h | 7 +++++++ 4 files changed, 69 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c index a1e5e262bae2..f12b3a40c6cf 100644 --- a/drivers/gpu/drm/drm_atomic_uapi.c +++ b/drivers/gpu/drm/drm_atomic_uapi.c @@ -766,6 +766,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector, fence_ptr); } else if (property == connector->max_bpc_property) { state->max_requested_bpc = val; + } else if (property == config->rgb_quantization_range_property) { + state->rgb_quantization_range = val; } else if (connector->funcs->atomic_set_property) { return connector->funcs->atomic_set_property(connector, state, property, val); @@ -842,6 +844,8 @@ drm_atomic_connector_get_property(struct drm_connector *connector, *val = 0; } else if (property == connector->max_bpc_property) { *val = state->max_requested_bpc; + } else if (property == config->rgb_quantization_range_property) { + *val = state->rgb_quantization_range; } else if (connector->funcs->atomic_get_property) { return connector->funcs->atomic_get_property(connector, state, property, val); diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index 644f0ad10671..e60d3b6e5e56 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -929,6 +929,12 @@ static const struct drm_prop_enum_list dp_colorspaces[] = { { DRM_MODE_COLORIMETRY_BT2020_YCC, "BT2020_YCC" }, }; +static const struct drm_prop_enum_list rgb_quantization_range_options[] = { + { DRM_MODE_RGB_QUANTIZATION_RANGE_AUTOMATIC, "Automatic" }, + { DRM_MODE_RGB_QUANTIZATION_RANGE_LIMITED, "Limited" }, + { DRM_MODE_RGB_QUANTIZATION_RANGE_FULL, "Full" }, +}; + /** * DOC: standard connector properties * @@ -1804,6 +1810,35 @@ int drm_mode_create_dp_colorspace_property(struct drm_connector *connector) } EXPORT_SYMBOL(drm_mode_create_dp_colorspace_property); +/** + * drm_mode_create_rgb_quantization_range_property - create RGB quantization + * range property + * @dev: device to create the RGB quantization range property on. + * + * Called by a driver the first time it's needed, must be attached to connectors + * of CEA-861-compliant sinks. + * + * Returns: + * Zero on success, negative errno on failure. + */ +int drm_mode_create_rgb_quantization_range_property(struct drm_device *dev) +{ + if (dev->mode_config.rgb_quantization_range_property) + return 0; + + dev->mode_config.rgb_quantization_range_property = + drm_property_create_enum(dev, DRM_MODE_PROP_ENUM, + "RGB quantization range", + rgb_quantization_range_options, + ARRAY_SIZE(rgb_quantization_range_options)); + + if (!dev->mode_config.rgb_quantization_range_property) + return -ENOMEM; + + return 0; +} +EXPORT_SYMBOL(drm_mode_create_rgb_quantization_range_property); + /** * drm_mode_create_content_type_property - create content type property * @dev: DRM device diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 19ae6bb5c85b..f605e0fbcc0e 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -303,6 +303,22 @@ struct drm_monitor_range_info { #define DRM_MODE_COLORIMETRY_RGB_WIDE_FLOAT 14 #define DRM_MODE_COLORIMETRY_BT601_YCC 15 +/** + * enum drm_rgb_quantization_range - rgb_quantization_range property value + * + * This enum lists the possible options for the rgb_quantization_range property. + * + * @DRM_MODE_RGB_QUANTIZATION_RANGE_AUTOMATIC: Let the driver select the + * appropriate quantization range. + * @DRM_MODE_RGB_QUANTIZATION_RANGE_LIMITED: Force limited range RGB. + * @DRM_MODE_RGB_QUANTIZATION_RANGE_FULL: Force full range RGB. + */ +enum drm_rgb_quantization_range { + DRM_MODE_RGB_QUANTIZATION_RANGE_AUTOMATIC = 0, + DRM_MODE_RGB_QUANTIZATION_RANGE_LIMITED = 1, + DRM_MODE_RGB_QUANTIZATION_RANGE_FULL = 2, +}; + /** * enum drm_bus_flags - bus_flags info for &drm_display_info * @@ -661,6 +677,12 @@ struct drm_connector_state { */ u32 colorspace; + /** + * @rgb_quantization_range: Connector property to control the selected + * RGB quantization range for CEA-861 outputs. + */ + u32 rgb_quantization_range; + /** * @writeback_job: Writeback job for writeback connectors * @@ -1575,6 +1597,7 @@ int drm_mode_create_aspect_ratio_property(struct drm_device *dev); int drm_mode_create_hdmi_colorspace_property(struct drm_connector *connector); int drm_mode_create_dp_colorspace_property(struct drm_connector *connector); int drm_mode_create_content_type_property(struct drm_device *dev); +int drm_mode_create_rgb_quantization_range_property(struct drm_device *dev); void drm_hdmi_avi_infoframe_content_type(struct hdmi_avi_infoframe *frame, const struct drm_connector_state *conn_state); diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h index 3bcbe30339f0..745587f6b83c 100644 --- a/include/drm/drm_mode_config.h +++ b/include/drm/drm_mode_config.h @@ -855,6 +855,13 @@ struct drm_mode_config { */ struct drm_property *hdcp_content_type_property; + /** + * @rgb_quantization_range_property: Connector property to allow + * user-space to override the RGB quantization range for CEA-861 + * outputs. + */ + struct drm_property *rgb_quantization_range_property; + /* dumb ioctl parameters */ uint32_t preferred_depth, prefer_shadow; From patchwork Mon Apr 13 21:40:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yussuf Khalil X-Patchwork-Id: 11486393 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 73FE414DD for ; Mon, 13 Apr 2020 21:51:54 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5261520739 for ; Mon, 13 Apr 2020 21:51:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=pp3345.net header.i=@pp3345.net header.b="lp0mI9+p" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5261520739 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=pp3345.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6380289B0C; Mon, 13 Apr 2020 21:51:47 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from saul.pp3345.net (saul.pp3345.net [163.172.111.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id A1E3589AEB for ; Mon, 13 Apr 2020 21:51:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: dev@pp3345.net) by saul.pp3345.net (Postcow) with ESMTPSA id D38089A420B; Mon, 13 Apr 2020 23:43:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pp3345.net; s=saul; t=1586814196; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:openpgp:autocrypt; bh=0Dd50Aj7Tm41xdkXFsIgBzwtxqD7/pPkBoUkuy2w2PM=; b=lp0mI9+pg396qWyQOxDdLw778E9nXBjvlymgaeLMbaINrUjEBK9zn6HzoEmVmFQh6AZLCZ et9rJfDCTAqy6+iFUQIhnyCK+3236NwyiAqdMByBUfIml0DITtcGbPI1cDZb7i1VUic1H2 D/m1ooJIIetw+U8O0zmi3/BOuTc8iqzJjJviBeQky63I+uY0XyHMMr44aVromVXvSpYOaw aeOMeecNj2awTkdi4j1m72atjYphNZjX7/aSA15ytKlarXOYoRfybXL//iL3RH6kW57hoi uIXSqbbLza5nQuEXytXdJ8gm1RJiejv5RWqhNQ/3y5OLOmoAigqc/9GCaHhkNA== From: Yussuf Khalil To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/5] drm: Add drm_connector_state_select_rgb_quantization_range() helper Date: Mon, 13 Apr 2020 23:40:24 +0200 Message-Id: <20200413214024.46500-4-dev@pp3345.net> In-Reply-To: <20200413214024.46500-1-dev@pp3345.net> References: <20200413214024.46500-1-dev@pp3345.net> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yussuf Khalil Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This helper can be used to determine the appropriate RGB quantization range based on a connector's "RGB quantization range" property and a mode. Signed-off-by: Yussuf Khalil --- drivers/gpu/drm/drm_connector.c | 31 +++++++++++++++++++++++++++++++ include/drm/drm_connector.h | 4 ++++ 2 files changed, 35 insertions(+) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index e60d3b6e5e56..d5a46bbf284e 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -2187,6 +2187,37 @@ int drm_connector_set_panel_orientation_with_quirk( } EXPORT_SYMBOL(drm_connector_set_panel_orientation_with_quirk); +/** + * drm_connector_state_select_rgb_quantization_range - find RGB quantization + * range appropriate for a connector's state and mode + * + * @state: state of the connector for which to determine the range + * @mode: mode for which to determine the range + * + * For a given connector state (i.e., RGB quantization range property) and a + * given mode, determine which RGB quantization range should be used. + * + * Returns: + * A constant from the HDMI quantization range enum. + */ +enum hdmi_quantization_range drm_connector_state_select_rgb_quantization_range( + const struct drm_connector_state *state, + const struct drm_display_mode *mode) +{ + switch (state->rgb_quantization_range) { + default: + WARN_ON(1); + /* fallthrough */ + case DRM_MODE_RGB_QUANTIZATION_RANGE_AUTOMATIC: + return drm_default_rgb_quant_range(mode); + case DRM_MODE_RGB_QUANTIZATION_RANGE_FULL: + return HDMI_QUANTIZATION_RANGE_FULL; + case DRM_MODE_RGB_QUANTIZATION_RANGE_LIMITED: + return HDMI_QUANTIZATION_RANGE_LIMITED; + } +} +EXPORT_SYMBOL(drm_connector_state_select_rgb_quantization_range); + int drm_connector_set_obj_prop(struct drm_mode_object *obj, struct drm_property *property, uint64_t value) diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index f605e0fbcc0e..43ce305d882f 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -42,6 +42,7 @@ struct drm_property_blob; struct drm_printer; struct edid; struct i2c_adapter; +struct drm_display_mode; enum drm_connector_force { DRM_FORCE_UNSPECIFIED, @@ -1621,6 +1622,9 @@ int drm_connector_set_panel_orientation_with_quirk( int width, int height); int drm_connector_attach_max_bpc_property(struct drm_connector *connector, int min, int max); +enum hdmi_quantization_range drm_connector_state_select_rgb_quantization_range( + const struct drm_connector_state *state, + const struct drm_display_mode *mode); /** * struct drm_tile_group - Tile group metadata From patchwork Mon Apr 13 21:40:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yussuf Khalil X-Patchwork-Id: 11486387 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 62AEA81 for ; Mon, 13 Apr 2020 21:51:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4059120644 for ; Mon, 13 Apr 2020 21:51:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=pp3345.net header.i=@pp3345.net header.b="hD2DOXr4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4059120644 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=pp3345.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id ABEC589ADC; Mon, 13 Apr 2020 21:51:43 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from saul.pp3345.net (saul.pp3345.net [163.172.111.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 79E0189ACD for ; Mon, 13 Apr 2020 21:51:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: dev@pp3345.net) by saul.pp3345.net (Postcow) with ESMTPSA id 9D70E9A45EE; Mon, 13 Apr 2020 23:43:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pp3345.net; s=saul; t=1586814207; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:openpgp:autocrypt; bh=zKLpvb4399IPLBTYUy54gr53ZNSHE8t5s2HLC/LNoMM=; b=hD2DOXr4dAVFZaqYX0188tAp0uW3dKdkH8mQApK2H5IYYeQsXEjVIJxkwjtUBVyd2gMxBB A71usZOWzSTQ8/gxX8wf0GoZJk0sxEDCV3i1EB2D2t2An9diuyBKe7vgU9UXTrMihPMHpv jnkD0SdomK9flmTiyD1dweKNf9pHgzLY80EytZbZjDeozW6HO1htV287JiOe81563zjZmv faOq5UDiYvTYo00FiinCOOtGykSHH5SdUff950eWqGk83dAjgoYY/Hw7Ey5cH5SU3Bp/Ps 1cHImZFoH8irPg9xgiYhhiHytgz/9wBt11k4nqrA67q9XgXwNXMBPzyV/zLAFw== From: Yussuf Khalil To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] drm/atomic-helper: Consider RGB quantization changes to be mode changes Date: Mon, 13 Apr 2020 23:40:25 +0200 Message-Id: <20200413214024.46500-5-dev@pp3345.net> In-Reply-To: <20200413214024.46500-1-dev@pp3345.net> References: <20200413214024.46500-1-dev@pp3345.net> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yussuf Khalil Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Ensure RGB quantization range changes are applied immediately. Signed-off-by: Yussuf Khalil --- drivers/gpu/drm/drm_atomic_helper.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 85d163f16801..b74e90a2b214 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -686,6 +686,12 @@ drm_atomic_helper_check_modeset(struct drm_device *dev, if (old_connector_state->max_requested_bpc != new_connector_state->max_requested_bpc) new_crtc_state->connectors_changed = true; + + if (drm_connector_state_select_rgb_quantization_range( + old_connector_state, &new_crtc_state->mode) != + drm_connector_state_select_rgb_quantization_range( + new_connector_state, &new_crtc_state->mode)) + new_crtc_state->mode_changed = true; } if (funcs->atomic_check) From patchwork Mon Apr 13 21:40:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yussuf Khalil X-Patchwork-Id: 11486389 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C50E381 for ; Mon, 13 Apr 2020 21:51:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A326520644 for ; Mon, 13 Apr 2020 21:51:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=pp3345.net header.i=@pp3345.net header.b="hIqDVqvw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A326520644 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=pp3345.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D589B89AE6; Mon, 13 Apr 2020 21:51:43 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org X-Greylist: delayed 551 seconds by postgrey-1.36 at gabe; Mon, 13 Apr 2020 21:51:42 UTC Received: from saul.pp3345.net (saul.pp3345.net [163.172.111.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E8B889AC9 for ; Mon, 13 Apr 2020 21:51:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: dev@pp3345.net) by saul.pp3345.net (Postcow) with ESMTPSA id ECF899A45EF; Mon, 13 Apr 2020 23:43:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pp3345.net; s=saul; t=1586814219; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:openpgp:autocrypt; bh=vE0VGBAzmPgl0XdkueTIlCUh5JQ5Q2McLcQr7MPs7gE=; b=hIqDVqvw6VJhSWWvAOuLExlbp3pWpaT5JtwopdsOihbTbZIRPqCysB3jDzk7ibNr3KHDBV q5nmQUow3iDdAlHpc55QnOsY+ys91IzkXO7UOK6K7WsqXWpoT+HSAqMIAUuBGT8ih3qXmD SMHhzzPzzvmy/uM+kfcVeuw+YNXA5nRF7aNZb6x2OECts9ZkTY9qrAA1HDFZcofBDmhjxf 7CbAGI5k+tsbaySoi4nvsoH8VMvYoKjSr98YNHtUGIAe2WvkzlX7l8M1+8UzmlqDMdFRqG blu+evgvYlnoB+9WEF9M9KhYXUbFrl1Rk7TmCC7c/S6U7dukUvY5PqZfjAvKoA== From: Yussuf Khalil To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/5] drm/i915: Replace "Broadcast RGB" with "RGB quantization range" property Date: Mon, 13 Apr 2020 23:40:26 +0200 Message-Id: <20200413214024.46500-6-dev@pp3345.net> In-Reply-To: <20200413214024.46500-1-dev@pp3345.net> References: <20200413214024.46500-1-dev@pp3345.net> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yussuf Khalil Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" DRM now has a globally available "RGB quantization range" connector property. i915's "Broadcast RGB" that fulfils the same purpose is now considered deprecated, so drop it in favor of the DRM property. Signed-off-by: Yussuf Khalil --- drivers/gpu/drm/i915/display/intel_atomic.c | 8 ---- .../gpu/drm/i915/display/intel_connector.c | 39 ++++++------------- .../gpu/drm/i915/display/intel_connector.h | 2 +- .../drm/i915/display/intel_display_types.h | 8 ---- drivers/gpu/drm/i915/display/intel_dp.c | 24 ++++-------- drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +- drivers/gpu/drm/i915/display/intel_hdmi.c | 19 ++++----- drivers/gpu/drm/i915/display/intel_sdvo.c | 18 ++++----- drivers/gpu/drm/i915/i915_drv.h | 1 - 9 files changed, 34 insertions(+), 87 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c index d043057d2fa0..5dbbd8e8aa5d 100644 --- a/drivers/gpu/drm/i915/display/intel_atomic.c +++ b/drivers/gpu/drm/i915/display/intel_atomic.c @@ -63,8 +63,6 @@ int intel_digital_connector_atomic_get_property(struct drm_connector *connector, if (property == dev_priv->force_audio_property) *val = intel_conn_state->force_audio; - else if (property == dev_priv->broadcast_rgb_property) - *val = intel_conn_state->broadcast_rgb; else { drm_dbg_atomic(&dev_priv->drm, "Unknown property [PROP:%d:%s]\n", @@ -99,11 +97,6 @@ int intel_digital_connector_atomic_set_property(struct drm_connector *connector, return 0; } - if (property == dev_priv->broadcast_rgb_property) { - intel_conn_state->broadcast_rgb = val; - return 0; - } - drm_dbg_atomic(&dev_priv->drm, "Unknown property [PROP:%d:%s]\n", property->base.id, property->name); return -EINVAL; @@ -145,7 +138,6 @@ int intel_digital_connector_atomic_check(struct drm_connector *conn, * up in a modeset. */ if (new_conn_state->force_audio != old_conn_state->force_audio || - new_conn_state->broadcast_rgb != old_conn_state->broadcast_rgb || new_conn_state->base.colorspace != old_conn_state->base.colorspace || new_conn_state->base.picture_aspect_ratio != old_conn_state->base.picture_aspect_ratio || new_conn_state->base.content_type != old_conn_state->base.content_type || diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c index 903e49659f56..1b6439e3ccaf 100644 --- a/drivers/gpu/drm/i915/display/intel_connector.c +++ b/drivers/gpu/drm/i915/display/intel_connector.c @@ -238,34 +238,6 @@ intel_attach_force_audio_property(struct drm_connector *connector) drm_object_attach_property(&connector->base, prop, 0); } -static const struct drm_prop_enum_list broadcast_rgb_names[] = { - { INTEL_BROADCAST_RGB_AUTO, "Automatic" }, - { INTEL_BROADCAST_RGB_FULL, "Full" }, - { INTEL_BROADCAST_RGB_LIMITED, "Limited 16:235" }, -}; - -void -intel_attach_broadcast_rgb_property(struct drm_connector *connector) -{ - struct drm_device *dev = connector->dev; - struct drm_i915_private *dev_priv = to_i915(dev); - struct drm_property *prop; - - prop = dev_priv->broadcast_rgb_property; - if (prop == NULL) { - prop = drm_property_create_enum(dev, DRM_MODE_PROP_ENUM, - "Broadcast RGB", - broadcast_rgb_names, - ARRAY_SIZE(broadcast_rgb_names)); - if (prop == NULL) - return; - - dev_priv->broadcast_rgb_property = prop; - } - - drm_object_attach_property(&connector->base, prop, 0); -} - void intel_attach_aspect_ratio_property(struct drm_connector *connector) { @@ -297,3 +269,14 @@ intel_attach_colorspace_property(struct drm_connector *connector) drm_object_attach_property(&connector->base, connector->colorspace_property, 0); } + +void +intel_attach_rgb_quantization_range_property(struct drm_connector *connector) +{ + struct drm_device *dev = connector->dev; + + if (!drm_mode_create_rgb_quantization_range_property(dev)) + drm_object_attach_property(&connector->base, + dev->mode_config.rgb_quantization_range_property, + DRM_MODE_RGB_QUANTIZATION_RANGE_AUTOMATIC); +} \ No newline at end of file diff --git a/drivers/gpu/drm/i915/display/intel_connector.h b/drivers/gpu/drm/i915/display/intel_connector.h index 93a7375c8196..ece946915407 100644 --- a/drivers/gpu/drm/i915/display/intel_connector.h +++ b/drivers/gpu/drm/i915/display/intel_connector.h @@ -28,8 +28,8 @@ int intel_connector_update_modes(struct drm_connector *connector, struct edid *edid); int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter); void intel_attach_force_audio_property(struct drm_connector *connector); -void intel_attach_broadcast_rgb_property(struct drm_connector *connector); void intel_attach_aspect_ratio_property(struct drm_connector *connector); void intel_attach_colorspace_property(struct drm_connector *connector); +void intel_attach_rgb_quantization_range_property(struct drm_connector *connector); #endif /* __INTEL_CONNECTOR_H__ */ diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index 5e00e611f077..acd547ee292f 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -76,13 +76,6 @@ enum hdmi_force_audio { HDMI_AUDIO_ON, /* force turn on HDMI audio */ }; -/* "Broadcast RGB" property */ -enum intel_broadcast_rgb { - INTEL_BROADCAST_RGB_AUTO, - INTEL_BROADCAST_RGB_FULL, - INTEL_BROADCAST_RGB_LIMITED, -}; - struct intel_framebuffer { struct drm_framebuffer base; struct intel_frontbuffer *frontbuffer; @@ -443,7 +436,6 @@ struct intel_digital_connector_state { struct drm_connector_state base; enum hdmi_force_audio force_audio; - int broadcast_rgb; }; #define to_intel_digital_connector_state(x) container_of(x, struct intel_digital_connector_state, base) diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 804b1d966f66..eb975eed6c72 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -2343,10 +2343,9 @@ intel_dp_ycbcr420_config(struct intel_dp *intel_dp, bool intel_dp_limited_color_range(const struct intel_crtc_state *crtc_state, const struct drm_connector_state *conn_state) { - const struct intel_digital_connector_state *intel_conn_state = - to_intel_digital_connector_state(conn_state); const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode; + enum hdmi_quantization_range range; /* * Our YCbCr output is always limited range. @@ -2355,22 +2354,13 @@ bool intel_dp_limited_color_range(const struct intel_crtc_state *crtc_state, * some conflicting bits in PIPECONF which will mess up * the colors on the monitor. */ - if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB) + if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB || + crtc_state->pipe_bpp == 18) return false; - if (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) { - /* - * See: - * CEA-861-E - 5.1 Default Encoding Parameters - * VESA DisplayPort Ver.1.2a - 5.1.1.1 Video Colorimetry - */ - return crtc_state->pipe_bpp != 18 && - drm_default_rgb_quant_range(adjusted_mode) == - HDMI_QUANTIZATION_RANGE_LIMITED; - } else { - return intel_conn_state->broadcast_rgb == - INTEL_BROADCAST_RGB_LIMITED; - } + range = drm_connector_state_select_rgb_quantization_range(conn_state, + adjusted_mode); + return range == HDMI_QUANTIZATION_RANGE_LIMITED; } static bool intel_dp_port_has_audio(struct drm_i915_private *dev_priv, @@ -6844,7 +6834,7 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect if (!IS_G4X(dev_priv) && port != PORT_A) intel_attach_force_audio_property(connector); - intel_attach_broadcast_rgb_property(connector); + intel_attach_rgb_quantization_range_property(connector); if (HAS_GMCH(dev_priv)) drm_connector_attach_max_bpc_property(connector, 6, 10); else if (INTEL_GEN(dev_priv) >= 5) diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index 44f3fd251ca1..41f54f2bb7ec 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -730,7 +730,7 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo goto err; intel_attach_force_audio_property(connector); - intel_attach_broadcast_rgb_property(connector); + intel_attach_rgb_quantization_range_property(connector); /* * Reuse the prop from the SST connector because we're diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c index 39930232b253..028b959a8192 100644 --- a/drivers/gpu/drm/i915/display/intel_hdmi.c +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -2381,10 +2381,9 @@ static int intel_hdmi_compute_clock(struct intel_encoder *encoder, static bool intel_hdmi_limited_color_range(const struct intel_crtc_state *crtc_state, const struct drm_connector_state *conn_state) { - const struct intel_digital_connector_state *intel_conn_state = - to_intel_digital_connector_state(conn_state); const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode; + enum hdmi_quantization_range range; /* * Our YCbCr output is always limited range. @@ -2393,17 +2392,13 @@ static bool intel_hdmi_limited_color_range(const struct intel_crtc_state *crtc_s * some conflicting bits in PIPECONF which will mess up * the colors on the monitor. */ - if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB) + if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB || + !crtc_state->has_hdmi_sink) return false; - if (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) { - /* See CEA-861-E - 5.1 Default Encoding Parameters */ - return crtc_state->has_hdmi_sink && - drm_default_rgb_quant_range(adjusted_mode) == - HDMI_QUANTIZATION_RANGE_LIMITED; - } else { - return intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED; - } + range = drm_connector_state_select_rgb_quantization_range(conn_state, + adjusted_mode); + return range == HDMI_QUANTIZATION_RANGE_LIMITED; } int intel_hdmi_compute_config(struct intel_encoder *encoder, @@ -2867,7 +2862,7 @@ intel_hdmi_add_properties(struct intel_hdmi *intel_hdmi, struct drm_connector *c hdmi_to_dig_port(intel_hdmi); intel_attach_force_audio_property(connector); - intel_attach_broadcast_rgb_property(connector); + intel_attach_rgb_quantization_range_property(connector); intel_attach_aspect_ratio_property(connector); /* diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c index 637d8fe2f8c2..fda6daae4f97 100644 --- a/drivers/gpu/drm/i915/display/intel_sdvo.c +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c @@ -1328,26 +1328,22 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder, pipe_config->has_hdmi_sink = intel_has_hdmi_sink(intel_sdvo, conn_state); if (pipe_config->has_hdmi_sink) { + enum hdmi_quantization_range range; + if (intel_sdvo_state->base.force_audio == HDMI_AUDIO_AUTO) pipe_config->has_audio = intel_sdvo->has_hdmi_audio; else pipe_config->has_audio = intel_sdvo_state->base.force_audio == HDMI_AUDIO_ON; - } - if (intel_sdvo_state->base.broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) { + range = drm_connector_state_select_rgb_quantization_range( + conn_state, adjusted_mode); + /* - * See CEA-861-E - 5.1 Default Encoding Parameters - * * FIXME: This bit is only valid when using TMDS encoding and 8 * bit per color mode. */ - if (pipe_config->has_hdmi_sink && - drm_match_cea_mode(adjusted_mode) > 1) - pipe_config->limited_color_range = true; - } else { - if (pipe_config->has_hdmi_sink && - intel_sdvo_state->base.broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED) + if (range == HDMI_QUANTIZATION_RANGE_LIMITED) pipe_config->limited_color_range = true; } @@ -2662,7 +2658,7 @@ intel_sdvo_add_hdmi_properties(struct intel_sdvo *intel_sdvo, intel_attach_force_audio_property(&connector->base.base); if (INTEL_GEN(dev_priv) >= 4 && IS_MOBILE(dev_priv)) { - intel_attach_broadcast_rgb_property(&connector->base.base); + intel_attach_rgb_quantization_range_property(&connector->base.base); } intel_attach_aspect_ratio_property(&connector->base.base); } diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 1f5b9a584f71..3105f582019c 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1042,7 +1042,6 @@ struct drm_i915_private { struct intel_fbdev *fbdev; struct work_struct fbdev_suspend_work; - struct drm_property *broadcast_rgb_property; struct drm_property *force_audio_property; /* hda/i915 audio component */