[PATCH v10 67/69] drm/connector: Drop redundant hdmi vendor/product fields

Maxime Ripard mripard at kernel.org
Thu Aug 20 03:10:49 PDT 2026


On Fri, Jul 31, 2026 at 07:20:14PM +0300, Cristian Ciocaltea wrote:
> Now that all users migrated to the new drmm_connector_hdmi_init()
> signature, vendor and product are provided through struct
> drm_connector_hdmi_funcs, a reference to which is already stored in
> drm_connector_hdmi.
> 
> Drop the redundant fields from drm_connector_hdmi and point its users to
> hdmi.funcs->vendor and hdmi.funcs->product instead.
> 
> This allows simplifying the related connector registration tests by
> getting rid of the now unnecessary KUNIT_EXPECT_MEMEQ() checks.
> 
> Tested-by: Diederik de Haas <diederik at cknow-tech.com>  # NanoPC-T6 LTS, Rock 5B
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea at collabora.com>
> ---
>  drivers/gpu/drm/display/drm_hdmi_state_helper.c |  4 +--
>  drivers/gpu/drm/drm_connector.c                 |  4 ---
>  drivers/gpu/drm/tests/drm_connector_test.c      | 41 +++----------------------
>  include/drm/drm_connector.h                     | 14 ++-------
>  4 files changed, 8 insertions(+), 55 deletions(-)
> 
> diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> index 04c9e06b9dc1..83a8fcb41343 100644
> --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> @@ -784,8 +784,8 @@ static int hdmi_generate_spd_infoframe(const struct drm_connector *connector,
>  		return 0;
>  
>  	ret = hdmi_spd_infoframe_init(frame,
> -				      connector->hdmi.vendor,
> -				      connector->hdmi.product);
> +				      connector->hdmi.funcs->vendor,
> +				      connector->hdmi.funcs->product);
>  	if (ret)
>  		return ret;
>  
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b2e8d99c0e9a..f5f38dc4bfa6 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -656,10 +656,6 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
>  		connector->hdmi.max_tmds_char_rate = hdmi_funcs->supported_tmds_char_rate;
>  	}
>  
> -	/* TODO: remove after conversion to new drmm_connector_hdmi_init() */
> -	strtomem_pad(connector->hdmi.vendor, hdmi_funcs->vendor, 0);
> -	strtomem_pad(connector->hdmi.product, hdmi_funcs->product, 0);
> -
>  	/*
>  	 * drm_connector_attach_max_bpc_property() requires the
>  	 * connector to have a state.
> diff --git a/drivers/gpu/drm/tests/drm_connector_test.c b/drivers/gpu/drm/tests/drm_connector_test.c
> index 3d8500ad8be9..42f804500de6 100644
> --- a/drivers/gpu/drm/tests/drm_connector_test.c
> +++ b/drivers/gpu/drm/tests/drm_connector_test.c
> @@ -771,14 +771,11 @@ static void drm_test_connector_hdmi_init_null_product(struct kunit *test)
>  
>  /*
>   * Test that the registration of a connector with a valid, shorter than
> - * the max length, product name succeeds, and is stored padded with 0.
> + * the max length, product name succeeds.
>   */
>  static void drm_test_connector_hdmi_init_product_valid(struct kunit *test)
>  {
>  	struct drm_connector_init_priv *priv = test->priv;
> -	const unsigned char expected_product[DRM_CONNECTOR_HDMI_PRODUCT_LEN] = {
> -		'P', 'r', 'o', 'd',
> -	};
>  	int ret;
>  
>  	priv->hdmi_funcs = dummy_hdmi_funcs;
> @@ -793,25 +790,15 @@ static void drm_test_connector_hdmi_init_product_valid(struct kunit *test)
>  				       DRM_MODE_CONNECTOR_HDMIA,
>  				       &priv->ddc);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
> -	KUNIT_EXPECT_MEMEQ(test,
> -			   priv->connector.hdmi.product,
> -			   expected_product,
> -			   sizeof(priv->connector.hdmi.product));
>  }
>  
>  /*
>   * Test that the registration of a connector with a valid, at max
> - * length, product name succeeds, and is stored padded without any
> - * trailing \0.
> + * length, product name succeeds.
>   */
>  static void drm_test_connector_hdmi_init_product_length_exact(struct kunit *test)
>  {
>  	struct drm_connector_init_priv *priv = test->priv;
> -	const unsigned char expected_product[DRM_CONNECTOR_HDMI_PRODUCT_LEN] = {
> -		'P', 'r', 'o', 'd', 'u', 'c', 't',
> -		'P', 'r', 'o', 'd', 'u', 'c', 't',
> -		'P', 'r',
> -	};
>  	int ret;
>  
>  	priv->hdmi_funcs = dummy_hdmi_funcs;
> @@ -826,10 +813,6 @@ static void drm_test_connector_hdmi_init_product_length_exact(struct kunit *test
>  				       DRM_MODE_CONNECTOR_HDMIA,
>  				       &priv->ddc);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
> -	KUNIT_EXPECT_MEMEQ(test,
> -			   priv->connector.hdmi.product,
> -			   expected_product,
> -			   sizeof(priv->connector.hdmi.product));
>  }
>
>  /*
> @@ -857,14 +840,11 @@ static void drm_test_connector_hdmi_init_product_length_too_long(struct kunit *t
>  
>  /*
>   * Test that the registration of a connector with a vendor name smaller
> - * than the maximum length succeeds, and is stored padded with zeros.
> + * than the maximum length succeeds.
>   */
>  static void drm_test_connector_hdmi_init_vendor_valid(struct kunit *test)
>  {
>  	struct drm_connector_init_priv *priv = test->priv;
> -	const char expected_vendor[DRM_CONNECTOR_HDMI_VENDOR_LEN] = {
> -		'V', 'e', 'n', 'd',
> -	};
>  	int ret;
>  
>  	priv->hdmi_funcs = dummy_hdmi_funcs;
> @@ -879,24 +859,15 @@ static void drm_test_connector_hdmi_init_vendor_valid(struct kunit *test)
>  				       DRM_MODE_CONNECTOR_HDMIA,
>  				       &priv->ddc);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
> -	KUNIT_EXPECT_MEMEQ(test,
> -			   priv->connector.hdmi.vendor,
> -			   expected_vendor,
> -			   sizeof(priv->connector.hdmi.vendor));
>  }
>  
>  /*
>   * Test that the registration of a connector with a vendor name at the
> - * maximum length succeeds, and is stored padded without the trailing
> - * zero.
> + * maximum length succeeds.
>   */
>  static void drm_test_connector_hdmi_init_vendor_length_exact(struct kunit *test)
>  {
>  	struct drm_connector_init_priv *priv = test->priv;
> -	const char expected_vendor[DRM_CONNECTOR_HDMI_VENDOR_LEN] = {
> -		'V', 'e', 'n', 'd', 'o', 'r',
> -		'V', 'e',
> -	};
>  	int ret;
>  
>  	priv->hdmi_funcs = dummy_hdmi_funcs;
> @@ -911,10 +882,6 @@ static void drm_test_connector_hdmi_init_vendor_length_exact(struct kunit *test)
>  				       DRM_MODE_CONNECTOR_HDMIA,
>  				       &priv->ddc);
>  	KUNIT_EXPECT_EQ(test, ret, 0);
> -	KUNIT_EXPECT_MEMEQ(test,
> -			   priv->connector.hdmi.vendor,
> -			   expected_vendor,
> -			   sizeof(priv->connector.hdmi.vendor));
>  }

Unfortunately, these tests were useful, and are there to match what the
spec asks for.

Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 273 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-rockchip/attachments/20260820/0ca3fdc6/attachment.sig>


More information about the Linux-rockchip mailing list