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 <[email protected]>  # NanoPC-T6 LTS, Rock 
> 5B
> Signed-off-by: Cristian Ciocaltea <[email protected]>
> ---
>  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

Attachment: signature.asc
Description: PGP signature

Reply via email to