From: sashiko-bot@kernel.org
To: "Chaitanya Kumar Borah" <chaitanya.kumar.borah@intel.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [CI v4 08/14] drm/i915/color: Add YUV range correction to SDR plane pipeline
Date: Mon, 13 Jul 2026 05:55:23 +0000 [thread overview]
Message-ID: <20260713055523.643531F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260713051516.4087420-9-chaitanya.kumar.borah@intel.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
New issues:
- [High] Activating a color pipeline on an HDR plane silently disables the hardware Input CSC block, completely breaking YUV framebuffers.
Pre-existing issues:
- [High] NULL pointer dereference in the error cleanup path of `intel_color_pipeline_plane_add_colorop()` when colorop initialization fails.
--
--- Patch [8]: [CI v4 08/14] drm/i915/color: Add YUV range correction to SDR plane pipeline ---
commit 596a494a01ab45eb529185d68401cfd391408e46
Author: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
drm/i915/color: Add YUV range correction to SDR plane pipeline
This commit inserts the INTEL_PLANE_CB_YUV_RANGE_CORRECT color block into
the SDR plane color pipeline. This enables YCbCr limited-to-full range
expansion ahead of the CSC block that expects full range pixel data.
> diff --git a/drivers/gpu/drm/i915/display/intel_color_pipeline.c b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
> index 7d25f4fbfa9b7..7457fa51cb97a 100644
> --- a/drivers/gpu/drm/i915/display/intel_color_pipeline.c
> +++ b/drivers/gpu/drm/i915/display/intel_color_pipeline.c
> @@ -44,6 +44,7 @@ static const enum intel_color_block hdr_plane_pipeline[] = {
> };
>
> static const enum intel_color_block sdr_plane_pipeline[] = {
> + INTEL_PLANE_CB_YUV_RANGE_CORRECT,
[Severity: High]
Does adding this color pipeline block expose a regression with HDR planes?
When activating a color pipeline on an HDR plane, the hardware Input CSC
block appears to be disabled, breaking YUV framebuffers.
Looking at glk_plane_color_ctl_input_csc() in skl_universal_plane.c:
} else if (!icl_is_hdr_plane(display, plane->id)) {
if (plane_state->hw.csc_ff_enable)
ctl |= intel_csc_ff_type_to_csc_mode(plane_state->hw.csc_ff_type);
if (plane_state->hw.yuv_range_correction_disable)
ctl |= PLANE_COLOR_YUV_RANGE_CORRECTION_DISABLE;
}
return ctl;
If a color pipeline is active, it skips the legacy block. For HDR planes,
icl_is_hdr_plane() evaluates to true, so this else-if block is skipped and
it returns 0 without setting the PLANE_COLOR_INPUT_CSC_ENABLE bit.
Will this cause visual corruption for YUV framebuffers on HDR planes when a
color pipeline is active, as raw non-linear YUV data would be passed
directly to the PRE_CSC_LUT?
[Severity: High]
This is a pre-existing issue, but can this lead to a NULL pointer
dereference in the error cleanup path?
If intel_color_pipeline_plane_add_colorop() in intel_color_pipeline.c
fails:
cleanup:
intel_colorop_destroy(&colorop->base);
return ERR_PTR(ret);
The colorop is allocated zero-initialized in intel_colorop_alloc():
colorop = kzalloc_obj(*colorop);
If the initialization fails before colorop->dev is set or the list head is
initialized, intel_colorop_destroy() unconditionally calls
drm_colorop_cleanup():
struct drm_device *dev = colorop->dev;
struct drm_mode_config *config = &dev->mode_config;
list_del(&colorop->head);
Could this dereference the NULL dev pointer and call list_del() on an
invalid list head?
> INTEL_PLANE_CB_CSC_FF,
> };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260713051516.4087420-1-chaitanya.kumar.borah@intel.com?part=8
next prev parent reply other threads:[~2026-07-13 5:55 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-13 5:15 [CI v4 00/14] drm/i915/color: Enable SDR plane color pipeline Chaitanya Kumar Borah
2026-07-13 5:15 ` [CI v4 01/14] drm/colorop: Add DRM_COLOROP_FIXED_MATRIX Chaitanya Kumar Borah
2026-07-13 5:48 ` sashiko-bot
2026-07-13 5:15 ` [CI v4 02/14] drm/i915/color: Add CSC on SDR plane color pipeline Chaitanya Kumar Borah
2026-07-13 6:01 ` sashiko-bot
2026-07-13 5:15 ` [CI v4 03/14] drm/i915/display: extract glk_plane_color_ctl_input_csc helper Chaitanya Kumar Borah
2026-07-13 5:15 ` [CI v4 04/14] drm/i915/display: simplify glk_plane_color_ctl_input_csc Chaitanya Kumar Borah
2026-07-13 5:15 ` [CI v4 05/14] drm/i915/display: Track CSC mode in intel plane state Chaitanya Kumar Borah
2026-07-13 5:59 ` sashiko-bot
2026-07-13 5:15 ` [CI v4 06/14] drm/i915/display: Program input CSC on SDR planes Chaitanya Kumar Borah
2026-07-13 6:01 ` sashiko-bot
2026-07-13 5:15 ` [CI v4 07/14] drm/i915/color: Add YCbCr limited-to-full range color block support Chaitanya Kumar Borah
2026-07-13 5:55 ` sashiko-bot
2026-07-13 5:15 ` [CI v4 08/14] drm/i915/color: Add YUV range correction to SDR plane pipeline Chaitanya Kumar Borah
2026-07-13 5:55 ` sashiko-bot [this message]
2026-07-13 5:15 ` [CI v4 09/14] drm/i915/color: Add support for 1D LUT in SDR planes Chaitanya Kumar Borah
2026-07-13 5:56 ` sashiko-bot
2026-07-13 5:15 ` [CI v4 10/14] drm/i915/color: Extract HDR pre-CSC LUT programming to helper function Chaitanya Kumar Borah
2026-07-13 5:15 ` [CI v4 11/14] drm/i915/color: Program Pre-CSC registers for SDR Chaitanya Kumar Borah
2026-07-13 5:15 ` [CI v4 12/14] drm/i915/color: Extract HDR post-CSC LUT programming to helper function Chaitanya Kumar Borah
2026-07-13 5:15 ` [CI v4 13/14] drm/i915/color: Program Plane Post CSC registers for SDR planes Chaitanya Kumar Borah
2026-07-13 6:05 ` sashiko-bot
2026-07-13 5:15 ` [CI v4 14/14] drm/i915/color: Add color pipeline support " Chaitanya Kumar Borah
2026-07-13 5:59 ` sashiko-bot
2026-07-13 5:50 ` ✓ CI.KUnit: success for drm/i915/color: Enable SDR plane color pipeline (rev5) Patchwork
2026-07-13 6:34 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-13 6:51 ` ✓ i915.CI.BAT: " Patchwork
2026-07-13 8:29 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-07-13 10:24 ` ✗ i915.CI.Full: " Patchwork
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=20260713055523.643531F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=chaitanya.kumar.borah@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.