From: sashiko-bot@kernel.org
To: "Cristian Ciocaltea" <cristian.ciocaltea@collabora.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 22/25] drm/tests: hdmi: Verify SCDC resync on hotplug
Date: Sat, 14 Nov 2026 18:22:30 +0000 [thread overview]
Message-ID: <sashiko-outbox-214899@kernel.org> (raw)
In-Reply-To: <20261114-drm-conn-hdmi-cleanup-v1-22-20e8a33a2286@collabora.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] drm/tests: hdmi: missing scrambler enable in
sync_scdc_test_init()
--
commit ad6b966d9b68c01d91b4a1ff13528d634475ed1e
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
drm/tests: hdmi: Verify SCDC resync on hotplug
This commit adds KUnit tests for SCDC scrambling resynchronization across
drm_connector_hdmi_sync_scdc(), drm_atomic_helper_connector_hdmi_hotplug(),
and drm_atomic_helper_connector_hdmi_force_ctx().
> diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> index 46654d8fa45cf..f17ccbf52bb18 100644
> --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
[ ... ]
> @@ -315,6 +316,8 @@ static void test_encoder_atomic_enable(struct drm_encoder *encoder,
> encoder_to_priv(encoder);
> int ret;
>
> + priv->encoder_enable_count++;
> +
> ret = drm_atomic_helper_connector_hdmi_update_infoframes(&priv->connector, state);
> if (ret)
> priv->hdmi_update_failures++;
> @@ -4789,12 +4792,321 @@ static struct kunit_suite drm_atomic_helper_connector_hdmi_scrambling_test_suite
[ ... ]
> +static struct drm_atomic_helper_connector_hdmi_priv *
> +sync_scdc_test_init(struct kunit *test,
> + const struct drm_connector_hdmi_funcs *hdmi_funcs,
> + u8 vic, struct drm_modeset_acquire_ctx *ctx)
> +{
> + struct drm_atomic_helper_connector_hdmi_priv *priv;
> + struct drm_display_mode *mode;
> + int ret;
> +
> + priv = drm_kunit_helper_connector_hdmi_init_with_scdc(test, hdmi_funcs,
> + test_edid_hdmi_4k_rgb_yuv420_dc_max_600mhz);
> + KUNIT_ASSERT_NOT_NULL(test, priv);
> +
> + drm_encoder_helper_add(&priv->encoder, &test_encoder_helper_funcs);
> +
> + mode = drm_kunit_display_mode_from_cea_vic(test, &priv->drm, vic);
> + KUNIT_ASSERT_NOT_NULL(test, mode);
> +
> + drm_modeset_acquire_init(ctx, 0);
> +
> +retry_conn_enable:
> + ret = drm_kunit_helper_enable_crtc_connector(test, &priv->drm,
> + priv->crtc,
> + &priv->connector,
> + mode, ctx);
> + if (ret == -EDEADLK) {
> + ret = drm_modeset_backoff(ctx);
> + if (!ret)
> + goto retry_conn_enable;
> + }
> + KUNIT_ASSERT_EQ(test, ret, 0);
> + KUNIT_ASSERT_EQ(test, priv->encoder_enable_count, 1);
> +
> + return priv;
> +}
[Severity: Medium]
Does sync_scdc_test_init() leave priv->connector.hdmi.scrambler_enabled as
false when enabling a mode that requires scrambling?
Enabling the CRTC sets priv->connector.state->hdmi.scrambler_needed during
atomic check and invokes test_encoder_atomic_enable(), which updates
infoframes but never calls drm_connector_hdmi_enable_scrambling().
drm_connector_hdmi_sync_scdc() checks scrambler_enabled before inspecting
SCDC state:
drivers/gpu/drm/display/drm_hdmi_helper.c:drm_connector_hdmi_sync_scdc() {
...
if (!drm_connector_hdmi_scrambler_supported(connector) ||
!READ_ONCE(hdmi->scrambler_enabled))
return 0;
...
}
Because scrambler_enabled remains false, drm_connector_hdmi_sync_scdc()
returns 0 immediately without reading SCDC_TMDS_CONFIG over DDC or resetting
the CRTC, causing the subtests that expect a CRTC reset or DDC error to fail
their KUnit assertions and the remaining subtests to pass without exercising
SCDC reads. Calling drm_connector_hdmi_enable_scrambling() from
test_encoder_atomic_enable() (or in sync_scdc_test_init() after enabling the
CRTC) would populate scrambler_enabled as expected.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261114-drm-conn-hdmi-cleanup-v1-0-20e8a33a2286@collabora.com?part=22
next prev parent reply other threads:[~2026-11-14 18:22 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-14 18:03 [PATCH 00/25] drm: HDMI connector API cleanup and HDMI 2.0 test coverage Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 01/25] video/hdmi: Copy SPD vendor/product with strtomem_pad() Cristian Ciocaltea
2026-11-14 18:15 ` sashiko-bot
2026-11-14 18:03 ` [PATCH 02/25] video/hdmi: Define SPD InfoFrame vendor/product field lengths Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 03/25] drm/display: hdmi-state-helper: Drop drm_atomic_helper_connector_hdmi_force() Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 04/25] drm/display: hdmi-state-helper: Reject connectors lacking HDMI funcs Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 05/25] drm/tests: connector: Convert to drmm_connector_hdmi_init() Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 06/25] drm/tests: hdmi: " Cristian Ciocaltea
2026-11-14 18:14 ` sashiko-bot
2026-11-14 18:03 ` [PATCH 07/25] drm/connector: Remove drmm_connector_hdmi_ini2() Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 08/25] drm/connector: Drop redundant hdmi vendor/product fields Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 09/25] drm/connector: Drop redundant hdmi supported_formats field Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 10/25] drm/connector: Drop redundant max_bpc field Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 11/25] drm/connector: Use the SPD InfoFrame field length defines Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 12/25] drm/connector: Fix comment in drmm_connector_hdmi_init() Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 13/25] drm/tests: edid: Fix conformity for 1080p+4K YUV420 200MHz EDID Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 14/25] drm/tests: edid: Fix conformity for 4K RGB/YUV 340MHz EDID Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 15/25] drm/tests: edid: Add 4K@60Hz EDID with 600MHz TMDS Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 16/25] drm/tests: connector: Add HDMI max_tmds_char_rate init coverage Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 17/25] drm/tests: connector: Add HDMI source-side scrambler coverage Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 18/25] drm/tests: hdmi: Cover mode validation against connector max_tmds_char_rate Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 19/25] drm/tests: hdmi: Verify scrambler_needed computation Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 20/25] drm/tests: hdmi: Add SPD InfoFrame vendor/product coverage Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 21/25] drm/tests: hdmi: Add HDMI 2.0 scrambling helpers coverage Cristian Ciocaltea
2026-11-14 18:21 ` sashiko-bot
2026-11-14 18:03 ` [PATCH 22/25] drm/tests: hdmi: Verify SCDC resync on hotplug Cristian Ciocaltea
2026-11-14 18:22 ` sashiko-bot [this message]
2026-11-14 18:03 ` [PATCH 23/25] drm/tests: bridge: Set supported HDMI version Cristian Ciocaltea
2026-11-14 18:14 ` sashiko-bot
2026-11-14 18:03 ` [PATCH 24/25] drm/tests: bridge: Add HDMI 2.0 bridge connector coverage Cristian Ciocaltea
2026-11-14 18:03 ` [PATCH 25/25] drm/tests: probe-helper: Add .force_ctx() callback coverage Cristian Ciocaltea
2026-11-14 18:28 ` sashiko-bot
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=sashiko-outbox-214899@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=cristian.ciocaltea@collabora.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.