public inbox for linux-rockchip@lists.infradead.org
 help / color / mirror / Atom feed
From: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
To: "Harry Wentland" <harry.wentland@amd.com>,
	"Leo Li" <sunpeng.li@amd.com>,
	"Rodrigo Siqueira" <siqueira@igalia.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	"David Airlie" <airlied@gmail.com>,
	"Simona Vetter" <simona@ffwll.ch>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Andrzej Hajda" <andrzej.hajda@intel.com>,
	"Neil Armstrong" <neil.armstrong@linaro.org>,
	"Robert Foss" <rfoss@kernel.org>,
	"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
	"Jonas Karlman" <jonas@kwiboo.se>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Sandy Huang" <hjc@rock-chips.com>,
	"Heiko Stübner" <heiko@sntech.de>,
	"Andy Yan" <andy.yan@rock-chips.com>,
	"Jani Nikula" <jani.nikula@linux.intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
	"Tvrtko Ursulin" <tursulin@ursulin.net>,
	"Dmitry Baryshkov" <lumag@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Rob Herring" <robh@kernel.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Shuah Khan" <skhan@linuxfoundation.org>
Cc: kernel@collabora.com, amd-gfx@lists.freedesktop.org,
	 dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	 linux-arm-kernel@lists.infradead.org,
	linux-rockchip@lists.infradead.org,
	 intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
	 linux-doc@vger.kernel.org, wayland-devel@lists.freedesktop.org,
	 Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Subject: [PATCH v14 11/28] drm/i915/hdmi: Add YCBCR444 handling for sink formats
Date: Thu, 23 Apr 2026 21:03:34 +0200	[thread overview]
Message-ID: <20260423-color-format-v14-11-449a419ccbd4@collabora.com> (raw)
In-Reply-To: <20260423-color-format-v14-0-449a419ccbd4@collabora.com>

In anticipation of userspace being able to explicitly select supported
sink formats, add handling of the YCBCR444 sink format. The AUTO path
does not choose this format, but with explicit format selection added to
the driver, it becomes a possibility.

Check for YCBCR444 support on the sink in sink_bpc_possible, and on the
source and sink in sink_format_valid.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
---
 drivers/gpu/drm/i915/display/intel_hdmi.c | 32 +++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 874076a29da4..ee7a7655e9b4 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -1966,6 +1966,8 @@ static bool intel_hdmi_sink_bpc_possible(struct drm_connector *_connector,
 
 		if (sink_format == INTEL_OUTPUT_FORMAT_YCBCR420)
 			return hdmi->y420_dc_modes & DRM_EDID_YCBCR420_DC_36;
+		else if (sink_format == INTEL_OUTPUT_FORMAT_YCBCR444)
+			return info->edid_hdmi_ycbcr444_dc_modes & DRM_EDID_HDMI_DC_36;
 		else
 			return info->edid_hdmi_rgb444_dc_modes & DRM_EDID_HDMI_DC_36;
 	case 10:
@@ -1974,6 +1976,8 @@ static bool intel_hdmi_sink_bpc_possible(struct drm_connector *_connector,
 
 		if (sink_format == INTEL_OUTPUT_FORMAT_YCBCR420)
 			return hdmi->y420_dc_modes & DRM_EDID_YCBCR420_DC_30;
+		else if (sink_format == INTEL_OUTPUT_FORMAT_YCBCR444)
+			return info->edid_hdmi_ycbcr444_dc_modes & DRM_EDID_HDMI_DC_30;
 		else
 			return info->edid_hdmi_rgb444_dc_modes & DRM_EDID_HDMI_DC_30;
 	case 8:
@@ -2021,6 +2025,27 @@ intel_hdmi_mode_clock_valid(struct drm_connector *_connector, int clock,
 	return status;
 }
 
+/**
+ * intel_hdmi_can_ycbcr444 - Check whether connector can output YCbCr444
+ * @connector: pointer to &struct intel_connector to check
+ *
+ * Checks whether the hardware that backs @connector is capable of outputting
+ * YCbCr444 video over HDMI. Does not check whether currently connected sink is
+ * capable of receiving it.
+ *
+ * Returns: %true if source supports outputting YCbCr444, %false otherwise.
+ */
+static bool
+intel_hdmi_can_ycbcr444(struct intel_connector *connector)
+{
+	const struct intel_display *display = to_intel_display(connector);
+
+	if (HAS_GMCH(display))
+		return true;
+
+	return false;
+}
+
 static enum drm_mode_status
 intel_hdmi_sink_format_valid(struct intel_connector *connector,
 			     const struct drm_display_mode *mode,
@@ -2038,6 +2063,13 @@ intel_hdmi_sink_format_valid(struct intel_connector *connector,
 
 		return MODE_OK;
 	case INTEL_OUTPUT_FORMAT_RGB:
+		return MODE_OK;
+	case INTEL_OUTPUT_FORMAT_YCBCR444:
+		if (!intel_hdmi_can_ycbcr444(connector))
+			return MODE_BAD;
+		if (!(info->color_formats & BIT(DRM_OUTPUT_COLOR_FORMAT_YCBCR444)))
+			return MODE_BAD;
+
 		return MODE_OK;
 	default:
 		MISSING_CASE(sink_format);

-- 
2.53.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  parent reply	other threads:[~2026-04-23 19:06 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-23 19:03 [PATCH v14 00/28] Add new general DRM property "color format" Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 01/28] drm/amd/display: Remove unnecessary SIGNAL_TYPE_HDMI_TYPE_A check Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 02/28] drm/display: hdmi-state-helper: Use default case for unsupported formats Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 03/28] drm: Add new general DRM property "color format" Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 04/28] drm/connector: Let connectors have a say in their color format Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 05/28] drm/display: bridge_connector: Use HDMI color format for HDMI conns Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 06/28] drm/bridge: Act on the DRM color format property Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 07/28] drm/atomic-helper: Add HDMI bridge output bus formats helper Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 08/28] drm/display: hdmi-state-helper: Act on color format DRM property Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 09/28] drm/display: hdmi-state-helper: Try subsampling in mode_valid Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 10/28] drm/amdgpu: Implement "color format" DRM property Nicolas Frattaroli
2026-04-23 19:03 ` Nicolas Frattaroli [this message]
2026-04-23 19:03 ` [PATCH v14 12/28] drm/i915/dp: Add YCBCR444 handling for sink formats Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 13/28] drm/i915/hdmi: Implement "color format" DRM property Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 14/28] drm/i915/dp: " Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 15/28] drm/rockchip: Add YUV422 output mode constants for VOP2 Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 16/28] drm/rockchip: vop2: Add RK3576 to the RG swap special case Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 17/28] drm/rockchip: vop2: Recognise 10-bit YUV422 as YUV format Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 18/28] drm/rockchip: vop2: Set correct output format for RK3576 YUV422 Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 19/28] drm/bridge: dw-hdmi-qp: Use common HDMI output bus fmts helper Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 20/28] drm/rockchip: dw_hdmi_qp: Implement "color format" DRM property Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 21/28] drm/rockchip: dw_hdmi_qp: Set supported_formats platdata Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 22/28] drm/connector: Register color format property on HDMI connectors Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 23/28] drm/tests: hdmi: Add tests for the color_format property Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 24/28] drm/tests: hdmi: Add tests for HDMI helper's mode_valid Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 25/28] drm/tests: bridge: Add KUnit tests for bridge chain format selection Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 26/28] drm/tests: bridge: Add test for HDMI output bus formats helper Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 27/28] drm/bridge: Document bridge chain format selection Nicolas Frattaroli
2026-04-23 19:03 ` [PATCH v14 28/28] drm/connector: Update docs of "colorspace" for color format prop Nicolas Frattaroli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260423-color-format-v14-11-449a419ccbd4@collabora.com \
    --to=nicolas.frattaroli@collabora.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=airlied@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=andrzej.hajda@intel.com \
    --cc=andy.yan@rock-chips.com \
    --cc=christian.koenig@amd.com \
    --cc=corbet@lwn.net \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=heiko@sntech.de \
    --cc=hjc@rock-chips.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kernel@collabora.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=lumag@kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=rfoss@kernel.org \
    --cc=robh@kernel.org \
    --cc=rodrigo.vivi@intel.com \
    --cc=s.hauer@pengutronix.de \
    --cc=simona@ffwll.ch \
    --cc=siqueira@igalia.com \
    --cc=skhan@linuxfoundation.org \
    --cc=sunpeng.li@amd.com \
    --cc=tursulin@ursulin.net \
    --cc=tzimmermann@suse.de \
    --cc=wayland-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox