[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