From: Louis Chauvet <louis.chauvet@bootlin.com>
To: "Nícolas F. R. A. Prado" <nfraprado@collabora.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Chun-Kuang Hu" <chunkuang.hu@kernel.org>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Haneen Mohammed" <hamohammed.sa@gmail.com>,
"Melissa Wen" <melissa.srw@gmail.com>
Cc: Alex Hung <alex.hung@amd.com>,
wayland-devel@lists.freedesktop.org, harry.wentland@amd.com,
leo.liu@amd.com, ville.syrjala@linux.intel.com,
pekka.paalanen@collabora.com, contact@emersion.fr,
mwen@igalia.com, jadahl@redhat.com, sebastian.wick@redhat.com,
shashank.sharma@amd.com, agoins@nvidia.com, joshua@froggi.es,
mdaenzer@redhat.com, aleixpol@kde.org, xaver.hugl@gmail.com,
victoria@system76.com, uma.shankar@intel.com,
quic_naseer@quicinc.com, quic_cbraga@quicinc.com,
quic_abhinavk@quicinc.com, marcan@marcan.st, Liviu.Dudau@arm.com,
sashamcintosh@google.com, chaitanya.kumar.borah@intel.com,
mcanal@igalia.com, kernel@collabora.com, daniels@collabora.com,
leandro.ribeiro@collabora.com, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
Simona Vetter <simona.vetter@ffwll.ch>
Subject: Re: [PATCH RFC v2 10/20] drm/colorop: Introduce colorop helpers for crtc
Date: Fri, 19 Sep 2025 14:44:19 +0200 [thread overview]
Message-ID: <df347ef3-f4b5-4402-bc37-dec03e6b1ad6@bootlin.com> (raw)
In-Reply-To: <20250917-mtk-post-blend-color-pipeline-v2-10-ac4471b44758@collabora.com>
Le 18/09/2025 à 02:43, Nícolas F. R. A. Prado a écrit :
> Introduce colorop helper counterparts for post-blend color pipelines
> that take a CRTC instead of a plane.
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>
> ---
> drivers/gpu/drm/drm_colorop.c | 73 +++++++++++++++++++++++++++++++++++++++++++
> include/drm/drm_colorop.h | 8 +++++
> 2 files changed, 81 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_colorop.c b/drivers/gpu/drm/drm_colorop.c
> index db137169effa6cd9e6d5805f65bdfd1cc6882075..b0c3216f4dac22f3408cbd537a20f38d03abc0a7 100644
> --- a/drivers/gpu/drm/drm_colorop.c
> +++ b/drivers/gpu/drm/drm_colorop.c
> @@ -168,6 +168,20 @@ static int drm_plane_colorop_init(struct drm_device *dev,
> return ret;
> }
>
> +static int drm_crtc_colorop_init(struct drm_device *dev,
> + struct drm_colorop *colorop,
> + struct drm_crtc *crtc,
> + enum drm_colorop_type type, uint32_t flags)
> +{
> + int ret;
> +
> + ret = drm_common_colorop_init(dev, colorop, type, flags);
> +
> + colorop->crtc = crtc;
> +
> + return ret;
> +}
> +
> /**
> * drm_colorop_cleanup - Cleanup a drm_colorop object in color_pipeline
> *
> @@ -293,6 +307,23 @@ int drm_plane_colorop_curve_1d_init(struct drm_device *dev, struct drm_colorop *
> }
> EXPORT_SYMBOL(drm_plane_colorop_curve_1d_init);
>
> +int drm_crtc_colorop_curve_1d_init(struct drm_device *dev, struct drm_colorop *colorop,
> + struct drm_crtc *crtc, u64 supported_tfs, uint32_t flags)
> +{
> + int ret;
> +
> + ret = drm_colorop_has_supported_tf(dev, &crtc->base, crtc->name, supported_tfs);
> + if (ret)
> + return ret;
> +
> + ret = drm_crtc_colorop_init(dev, colorop, crtc, DRM_COLOROP_1D_CURVE, flags);
> + if (ret)
> + return ret;
> +
> + return drm_common_colorop_curve_1d_init(dev, colorop, supported_tfs, flags);
> +}
> +EXPORT_SYMBOL(drm_crtc_colorop_curve_1d_init);
> +
> static int drm_colorop_create_data_prop(struct drm_device *dev, struct drm_colorop *colorop)
> {
> struct drm_property *prop;
> @@ -381,6 +412,35 @@ drm_plane_colorop_curve_1d_lut_init(struct drm_device *dev, struct drm_colorop *
> }
> EXPORT_SYMBOL(drm_plane_colorop_curve_1d_lut_init);
>
> +/**
> + * drm_crtc_colorop_curve_1d_lut_init - Initialize a DRM_COLOROP_1D_LUT
> + *
> + * @dev: DRM device
> + * @colorop: The drm_colorop object to initialize
> + * @crtc: The associated drm_crtc
> + * @lut_size: LUT size supported by driver
> + * @lut1d_interpolation: 1D LUT interpolation type
> + * @flags: bitmask of misc, see DRM_COLOROP_FLAG_* defines.
> + * @return zero on success, -E value on failure
> + */
> +int
> +drm_crtc_colorop_curve_1d_lut_init(struct drm_device *dev,
> + struct drm_colorop *colorop,
> + struct drm_crtc *crtc, uint32_t lut_size,
> + enum drm_colorop_lut1d_interpolation_type lut1d_interpolation,
> + uint32_t flags)
> +{
> + int ret;
> +
> + ret = drm_crtc_colorop_init(dev, colorop, crtc, DRM_COLOROP_1D_LUT, flags);
> + if (ret)
> + return ret;
> +
> + return drm_common_colorop_curve_1d_lut_init(dev, colorop, lut_size,
> + lut1d_interpolation, flags);
> +}
> +EXPORT_SYMBOL(drm_crtc_colorop_curve_1d_lut_init);
> +
> static int drm_common_colorop_ctm_3x4_init(struct drm_device *dev, struct drm_colorop *colorop,
> uint32_t flags)
> {
> @@ -408,6 +468,19 @@ int drm_plane_colorop_ctm_3x4_init(struct drm_device *dev, struct drm_colorop *c
> }
> EXPORT_SYMBOL(drm_plane_colorop_ctm_3x4_init);
>
> +int drm_crtc_colorop_ctm_3x4_init(struct drm_device *dev, struct drm_colorop *colorop,
> + struct drm_crtc *crtc, uint32_t flags)
> +{
> + int ret;
> +
> + ret = drm_crtc_colorop_init(dev, colorop, crtc, DRM_COLOROP_CTM_3X4, flags);
> + if (ret)
> + return ret;
> +
> + return drm_common_colorop_ctm_3x4_init(dev, colorop, flags);
> +}
> +EXPORT_SYMBOL(drm_crtc_colorop_ctm_3x4_init);
> +
> /**
> * drm_plane_colorop_mult_init - Initialize a DRM_COLOROP_MULTIPLIER
> *
> diff --git a/include/drm/drm_colorop.h b/include/drm/drm_colorop.h
> index 3e223f3b3597978c5d702ce7622ae30b8aa9dddb..e7d1e5e95a901b1bd91fd8580e2fcb367c0253ce 100644
> --- a/include/drm/drm_colorop.h
> +++ b/include/drm/drm_colorop.h
> @@ -377,14 +377,22 @@ static inline struct drm_colorop *drm_colorop_find(struct drm_device *dev,
>
> void drm_colorop_pipeline_destroy(struct drm_device *dev);
>
> +int drm_crtc_colorop_curve_1d_lut_init(struct drm_device *dev, struct drm_colorop *colorop,
> + struct drm_crtc *crtc, uint32_t lut_size,
> + enum drm_colorop_lut1d_interpolation_type lut1d_interpolation,
> + uint32_t flags);
> int drm_plane_colorop_curve_1d_init(struct drm_device *dev, struct drm_colorop *colorop,
> struct drm_plane *plane, u64 supported_tfs, uint32_t flags);
> +int drm_crtc_colorop_curve_1d_init(struct drm_device *dev, struct drm_colorop *colorop,
> + struct drm_crtc *crtc, u64 supported_tfs, uint32_t flags);
> int drm_plane_colorop_curve_1d_lut_init(struct drm_device *dev, struct drm_colorop *colorop,
> struct drm_plane *plane, uint32_t lut_size,
> enum drm_colorop_lut1d_interpolation_type lut1d_interpolation,
> uint32_t flags);
> int drm_plane_colorop_ctm_3x4_init(struct drm_device *dev, struct drm_colorop *colorop,
> struct drm_plane *plane, uint32_t flags);
> +int drm_crtc_colorop_ctm_3x4_init(struct drm_device *dev, struct drm_colorop *colorop,
> + struct drm_crtc *crtc, uint32_t flags);
> int drm_plane_colorop_mult_init(struct drm_device *dev, struct drm_colorop *colorop,
> struct drm_plane *plane, uint32_t flags);
> int drm_plane_colorop_3dlut_init(struct drm_device *dev, struct drm_colorop *colorop,
>
--
--
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2025-09-19 12:44 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-18 0:43 [PATCH RFC v2 00/20] Introduce support for post-blend color pipeline Nícolas F. R. A. Prado
2025-09-18 0:43 ` [PATCH RFC v2 01/20] drm/crtc: Add color pipeline to CRTC state Nícolas F. R. A. Prado
2025-09-19 12:45 ` Louis Chauvet
2025-09-18 0:43 ` [PATCH RFC v2 02/20] drm/colorop: Allow parenting colorop to CRTC Nícolas F. R. A. Prado
2025-09-19 12:44 ` Louis Chauvet
2025-12-10 20:49 ` Ariel D'Alessandro
2025-09-18 0:43 ` [PATCH RFC v2 03/20] drm: Factor out common color_pipeline property initialization code Nícolas F. R. A. Prado
2025-09-19 12:43 ` Louis Chauvet
2025-09-29 8:53 ` Harry Wentland
2025-12-10 20:19 ` Ariel D'Alessandro
2025-09-18 0:43 ` [PATCH RFC v2 04/20] drm/crtc: Add COLOR_PIPELINE property Nícolas F. R. A. Prado
2025-09-19 12:43 ` Louis Chauvet
2025-12-10 21:00 ` Ariel D'Alessandro
2025-09-18 0:43 ` [PATCH RFC v2 05/20] drm: Introduce DRM_CAP_POST_BLEND_COLOR_PIPELINE Nícolas F. R. A. Prado
2025-09-19 12:42 ` Louis Chauvet
2025-09-29 9:40 ` Harry Wentland
2025-09-29 16:00 ` Nícolas F. R. A. Prado
2025-09-18 0:43 ` [PATCH RFC v2 06/20] drm: Introduce DRM_CLIENT_CAP_POST_BLEND_COLOR_PIPELINE Nícolas F. R. A. Prado
2025-09-19 12:42 ` Louis Chauvet
2025-09-29 9:48 ` Harry Wentland
2025-12-11 15:26 ` Ariel D'Alessandro
2025-09-18 0:43 ` [PATCH RFC v2 07/20] drm/atomic: Pass post_blend_color_pipeline client cap to atomic check Nícolas F. R. A. Prado
2025-09-19 12:41 ` Louis Chauvet
2025-09-29 9:50 ` Harry Wentland
2025-12-11 15:16 ` Ariel D'Alessandro
2025-09-18 0:43 ` [PATCH RFC v2 08/20] drm/atomic: Print the color pipeline as part of the CRTC state print Nícolas F. R. A. Prado
2025-09-19 12:50 ` Louis Chauvet
2025-09-18 0:43 ` [PATCH RFC v2 09/20] drm/colorop: Factor out common paths from colorops helpers Nícolas F. R. A. Prado
2025-09-19 12:51 ` Louis Chauvet
2025-09-18 0:43 ` [PATCH RFC v2 10/20] drm/colorop: Introduce colorop helpers for crtc Nícolas F. R. A. Prado
2025-09-19 12:44 ` Louis Chauvet [this message]
2025-09-18 0:43 ` [PATCH RFC v2 11/20] drm/colorop: Export drm_colorop_cleanup() so drivers can extend it Nícolas F. R. A. Prado
2025-09-18 0:43 ` [PATCH RFC v2 12/20] drm/crtc: Track post-blend color pipeline client cap in drm_crtc_state Nícolas F. R. A. Prado
2025-09-19 12:51 ` Louis Chauvet
2025-09-18 0:43 ` [PATCH RFC v2 13/20] drm/mediatek: Support post-blend colorops for gamma and ctm Nícolas F. R. A. Prado
2025-09-18 0:43 ` [PATCH RFC v2 14/20] drm/mediatek: ccorr: Support post-blend color pipeline API Nícolas F. R. A. Prado
2025-09-18 0:43 ` [PATCH RFC v2 15/20] drm/mediatek: gamma: " Nícolas F. R. A. Prado
2025-09-18 0:43 ` [PATCH RFC v2 16/20] drm/mediatek: Set post-blend color pipeline driver cap Nícolas F. R. A. Prado
2025-09-19 12:50 ` Louis Chauvet
2025-09-18 0:43 ` [PATCH RFC v2 17/20] drm/vkms: Rename existing color pipeline helpers to contain "pre_blend" Nícolas F. R. A. Prado
2025-09-19 12:45 ` Louis Chauvet
2025-09-18 0:43 ` [PATCH RFC v2 18/20] drm/vkms: Prepare pre_blend_color_transform() for post-blend pipelines Nícolas F. R. A. Prado
2025-09-19 12:48 ` Louis Chauvet
2025-09-18 0:43 ` [PATCH RFC v2 19/20] drm/vkms: Introduce support for post-blend color pipeline Nícolas F. R. A. Prado
2025-09-19 12:50 ` Louis Chauvet
2025-12-10 21:15 ` Ariel D'Alessandro
2025-09-18 0:43 ` [PATCH RFC v2 20/20] drm/vkms: Set post-blend color pipeline driver cap Nícolas F. R. A. Prado
2025-09-19 12:49 ` Louis Chauvet
2025-09-29 10:22 ` [PATCH RFC v2 00/20] Introduce support for post-blend color pipeline Harry Wentland
2025-09-29 12:05 ` Melissa Wen
2025-09-29 14:25 ` Harry Wentland
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=df347ef3-f4b5-4402-bc37-dec03e6b1ad6@bootlin.com \
--to=louis.chauvet@bootlin.com \
--cc=Liviu.Dudau@arm.com \
--cc=agoins@nvidia.com \
--cc=airlied@gmail.com \
--cc=aleixpol@kde.org \
--cc=alex.hung@amd.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=chaitanya.kumar.borah@intel.com \
--cc=chunkuang.hu@kernel.org \
--cc=contact@emersion.fr \
--cc=daniels@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=hamohammed.sa@gmail.com \
--cc=harry.wentland@amd.com \
--cc=jadahl@redhat.com \
--cc=joshua@froggi.es \
--cc=kernel@collabora.com \
--cc=leandro.ribeiro@collabora.com \
--cc=leo.liu@amd.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=marcan@marcan.st \
--cc=matthias.bgg@gmail.com \
--cc=mcanal@igalia.com \
--cc=mdaenzer@redhat.com \
--cc=melissa.srw@gmail.com \
--cc=mripard@kernel.org \
--cc=mwen@igalia.com \
--cc=nfraprado@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=pekka.paalanen@collabora.com \
--cc=quic_abhinavk@quicinc.com \
--cc=quic_cbraga@quicinc.com \
--cc=quic_naseer@quicinc.com \
--cc=sashamcintosh@google.com \
--cc=sebastian.wick@redhat.com \
--cc=shashank.sharma@amd.com \
--cc=simona.vetter@ffwll.ch \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=uma.shankar@intel.com \
--cc=victoria@system76.com \
--cc=ville.syrjala@linux.intel.com \
--cc=wayland-devel@lists.freedesktop.org \
--cc=xaver.hugl@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.