All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Cristian Ciocaltea <cristian.ciocaltea@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>,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Dmitry Baryshkov <lumag@kernel.org>,
	Dmitry Baryshkov <lumag@kernel.org>
Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 08/23] drm/tests: hdmi: Add macro to simplify EDID setup
Date: Mon, 28 Apr 2025 12:52:47 +0300	[thread overview]
Message-ID: <87cycwy5n4.fsf@intel.com> (raw)
In-Reply-To: <20250425-hdmi-conn-yuv-v4-8-5e55e2aaa3fa@collabora.com>

On Fri, 25 Apr 2025, Cristian Ciocaltea <cristian.ciocaltea@collabora.com> wrote:
> Factor out the HDMI connector initialization from
> drm_kunit_helper_connector_hdmi_init_funcs() into a common
> __connector_hdmi_init() function, while extending its functionality to
> allow setting custom (i.e. non-default) EDID data.
>
> Introduce a macro as a wrapper over the new helper to allow dropping the
> open coded EDID setup from all test cases.
>
> The actual conversion will be handled separately; for now just apply it
> to drm_kunit_helper_connector_hdmi_init() helper.
>
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
> ---
>  drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 46 +++++++++++++---------
>  1 file changed, 28 insertions(+), 18 deletions(-)
>
> 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 c8dc6fa0f925e35e9903a18bac7f78f9d8165960..36734639d19a3f279abc4631eb19d5c2b20ca315 100644
> --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> @@ -140,10 +140,11 @@ static const struct drm_connector_funcs dummy_connector_funcs = {
>  
>  static
>  struct drm_atomic_helper_connector_hdmi_priv *
> -drm_kunit_helper_connector_hdmi_init_funcs(struct kunit *test,
> -					   unsigned int formats,
> -					   unsigned int max_bpc,
> -					   const struct drm_connector_hdmi_funcs *hdmi_funcs)
> +__connector_hdmi_init(struct kunit *test,
> +		      unsigned int formats,
> +		      unsigned int max_bpc,
> +		      const struct drm_connector_hdmi_funcs *hdmi_funcs,
> +		      const char *edid_data, size_t edid_len)

char* is weird for EDID data, but it's a pre-existing thing, and
actually making it unsigned char or u8 isn't much better.

A follow-up could switch edid_data to just const void *, and ditto for
set_connector_edid() and current_edid member in struct
drm_atomic_helper_connector_hdmi_priv.

BR,
Jani.

>  {
>  	struct drm_atomic_helper_connector_hdmi_priv *priv;
>  	struct drm_connector *conn;
> @@ -197,29 +198,38 @@ drm_kunit_helper_connector_hdmi_init_funcs(struct kunit *test,
>  
>  	drm_mode_config_reset(drm);
>  
> +	if (edid_data && edid_len) {
> +		ret = set_connector_edid(test, &priv->connector, edid_data, edid_len);
> +		KUNIT_ASSERT_GT(test, ret, 0);
> +	}
> +
>  	return priv;
>  }
>  
> +static
> +struct drm_atomic_helper_connector_hdmi_priv *
> +drm_kunit_helper_connector_hdmi_init_funcs(struct kunit *test,
> +					   unsigned int formats,
> +					   unsigned int max_bpc,
> +					   const struct drm_connector_hdmi_funcs *hdmi_funcs)
> +{
> +	return __connector_hdmi_init(test, formats, max_bpc, hdmi_funcs, NULL, 0);
> +}
> +
> +#define drm_kunit_helper_connector_hdmi_init_with_edid_funcs(test, formats, max_bpc, funcs, edid) \
> +	__connector_hdmi_init(test, formats, max_bpc, funcs, edid, ARRAY_SIZE(edid))
> +
>  static
>  struct drm_atomic_helper_connector_hdmi_priv *
>  drm_kunit_helper_connector_hdmi_init(struct kunit *test,
>  				     unsigned int formats,
>  				     unsigned int max_bpc)
>  {
> -	struct drm_atomic_helper_connector_hdmi_priv *priv;
> -	int ret;
> -
> -	priv = drm_kunit_helper_connector_hdmi_init_funcs(test,
> -							  formats, max_bpc,
> -							  &dummy_connector_hdmi_funcs);
> -	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv);
> -
> -	ret = set_connector_edid(test, &priv->connector,
> -				 test_edid_hdmi_1080p_rgb_max_200mhz,
> -				 ARRAY_SIZE(test_edid_hdmi_1080p_rgb_max_200mhz));
> -	KUNIT_ASSERT_GT(test, ret, 0);
> -
> -	return priv;
> +	return drm_kunit_helper_connector_hdmi_init_with_edid_funcs(test,
> +				formats,
> +				max_bpc,
> +				&dummy_connector_hdmi_funcs,
> +				test_edid_hdmi_1080p_rgb_max_200mhz);
>  }
>  
>  /*

-- 
Jani Nikula, Intel

  reply	other threads:[~2025-04-28  9:52 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-25 10:26 [PATCH v4 00/23] drm/connector: hdmi: Allow using the YUV420 output format Cristian Ciocaltea
2025-04-25 10:26 ` [PATCH v4 01/23] drm/connector: hdmi: Evaluate limited range after computing format Cristian Ciocaltea
2025-04-25 10:26 ` [PATCH v4 02/23] drm/connector: hdmi: Add support for YUV420 format verification Cristian Ciocaltea
2025-04-25 10:26 ` [PATCH v4 03/23] drm/connector: hdmi: Improve debug message for supported format Cristian Ciocaltea
2025-04-25 10:26 ` [PATCH v4 04/23] drm/connector: hdmi: Add missing bpc debug info to hdmi_try_format_bpc() Cristian Ciocaltea
2025-04-25 10:26 ` [PATCH v4 05/23] drm/connector: hdmi: Factor out bpc and format computation logic Cristian Ciocaltea
2025-04-25 10:26 ` [PATCH v4 06/23] drm/connector: hdmi: Use YUV420 output format as an RGB fallback Cristian Ciocaltea
2025-05-13 13:35   ` Maxime Ripard
2025-05-15 12:44     ` Cristian Ciocaltea
2025-05-15 14:52       ` Maxime Ripard
2025-04-25 10:26 ` [PATCH v4 07/23] drm/tests: hdmi: Replace '[_]MHz' with 'mhz' Cristian Ciocaltea
2025-04-26  2:06   ` Dmitry Baryshkov
2025-04-25 10:26 ` [PATCH v4 08/23] drm/tests: hdmi: Add macro to simplify EDID setup Cristian Ciocaltea
2025-04-28  9:52   ` Jani Nikula [this message]
2025-04-29  9:58     ` Cristian Ciocaltea
2025-05-13 13:45   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 09/23] drm/tests: hdmi: Replace open coded " Cristian Ciocaltea
2025-05-15 15:35   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 10/23] drm/tests: hdmi: Drop unused drm_kunit_helper_connector_hdmi_init_funcs() Cristian Ciocaltea
2025-05-16 13:06   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 11/23] drm/tests: hdmi: Setup ycbcr_420_allowed before initializing connector Cristian Ciocaltea
2025-04-25 10:27 ` [PATCH v4 12/23] drm/tests: helpers: Add a (re)try helper variant to enable CRTC connector Cristian Ciocaltea
2025-05-16 13:15   ` Maxime Ripard
2025-05-19 10:20     ` Cristian Ciocaltea
2025-04-25 10:27 ` [PATCH v4 13/23] drm/tests: hdmi: Switch to drm_kunit_helper_try_enable_crtc_connector() Cristian Ciocaltea
2025-04-25 10:27 ` [PATCH v4 14/23] drm/tests: hdmi: Add macro to support EDEADLK handling Cristian Ciocaltea
2025-05-19  7:22   ` Maxime Ripard
2025-05-19 10:35     ` Cristian Ciocaltea
2025-05-22 16:06       ` Maxime Ripard
2025-05-22 16:47         ` Cristian Ciocaltea
2025-05-26  6:44           ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 15/23] drm/tests: hdmi: Restart atomic sequence on EDEADLK Cristian Ciocaltea
2025-04-25 10:27 ` [PATCH v4 16/23] drm/tests: hdmi: Switch to drm_atomic_get_new_connector_state() where possible Cristian Ciocaltea
2025-05-19  7:23   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 17/23] drm/tests: hdmi: Provide EDID supporting 4K@30Hz with YUV420 only Cristian Ciocaltea
2025-05-19  7:57   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 18/23] drm/tests: hdmi: Add limited range tests for YUV420 mode Cristian Ciocaltea
2025-05-19  7:58   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 19/23] drm/tests: hdmi: Rename max TMDS rate fallback tests Cristian Ciocaltea
2025-05-19  8:38   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 20/23] drm/tests: hdmi: Provide EDID supporting 4K@30Hz with RGB/YUV Cristian Ciocaltea
2025-05-19  7:57   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 21/23] drm/tests: hdmi: Add max TMDS rate fallback tests for YUV420 mode Cristian Ciocaltea
2025-05-19  8:40   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 22/23] drm/tests: hdmi: Add test for unsuccessful fallback to YUV420 Cristian Ciocaltea
2025-05-19  8:41   ` Maxime Ripard
2025-04-25 10:27 ` [PATCH v4 23/23] drm/tests: hdmi: Add test for unsupported RGB/YUV420 mode Cristian Ciocaltea
2025-05-19  8:42   ` Maxime Ripard
2025-05-19 10:55     ` Cristian Ciocaltea
2025-05-22 16:16       ` Maxime Ripard
2025-05-22 17:37         ` Cristian Ciocaltea
2025-05-27 12:59           ` Maxime Ripard

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=87cycwy5n4.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=airlied@gmail.com \
    --cc=cristian.ciocaltea@collabora.com \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kernel@collabora.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lumag@kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    /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.