Convert the internal __connector_hdmi_init() helper to take a
drm_connector_hdmi_caps struct rather than separate formats and max_bpc
parameters, and add a
drm_kunit_helper_connector_hdmi_init_with_caps_edid_funcs() macro that
exposes the full caps struct to tests.

This lets new tests exercise capability fields beyond formats and
max_bpc, notably supported_hdmi_ver and max_tmds_char_rate, without
further changes to the helper signature.

The legacy drm_kunit_helper_connector_hdmi_init_with_edid_funcs() macro
is kept as a thin wrapper so the bulk of the test suite is unaffected.

Signed-off-by: Cristian Ciocaltea <[email protected]>
---
 drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 35 ++++++++++++++--------
 1 file changed, 22 insertions(+), 13 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 353a261d42da..6a7dd2de002a 100644
--- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
+++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
@@ -231,8 +231,7 @@ static const struct drm_encoder_helper_funcs 
test_encoder_helper_funcs = {
 static
 struct drm_atomic_helper_connector_hdmi_priv *
 __connector_hdmi_init(struct kunit *test,
-                     unsigned int formats,
-                     unsigned int max_bpc,
+                     const struct drm_connector_hdmi_caps *caps,
                      const struct drm_connector_hdmi_funcs *hdmi_funcs,
                      const void *edid_data, size_t edid_len)
 {
@@ -273,16 +272,16 @@ __connector_hdmi_init(struct kunit *test,
        enc->possible_crtcs = drm_crtc_mask(priv->crtc);
 
        conn = &priv->connector;
-       conn->ycbcr_420_allowed = !!(formats & 
BIT(DRM_OUTPUT_COLOR_FORMAT_YCBCR420));
+       conn->ycbcr_420_allowed = !!(caps->supported_formats &
+                                    BIT(DRM_OUTPUT_COLOR_FORMAT_YCBCR420));
 
-       ret = drmm_connector_hdmi_init(drm, conn,
-                                      "Vendor", "Product",
-                                      &dummy_connector_funcs,
-                                      hdmi_funcs,
-                                      DRM_MODE_CONNECTOR_HDMIA,
-                                      NULL,
-                                      formats,
-                                      max_bpc);
+       ret = drmm_connector_hdmi_init_with_caps(drm, conn,
+                                                "Vendor", "Product",
+                                                &dummy_connector_funcs,
+                                                hdmi_funcs,
+                                                DRM_MODE_CONNECTOR_HDMIA,
+                                                NULL,
+                                                caps);
        KUNIT_ASSERT_EQ(test, ret, 0);
 
        drm_connector_helper_add(conn, &dummy_connector_helper_funcs);
@@ -298,8 +297,18 @@ __connector_hdmi_init(struct kunit *test,
        return priv;
 }
 
-#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))
+#define drm_kunit_helper_connector_hdmi_init_with_edid_funcs(test, formats,    
\
+                                               bpc_max, funcs, edid)           
\
+({                                                                             
\
+       struct drm_connector_hdmi_caps __caps = {                               
\
+               .supported_formats = (formats),                                 
\
+               .max_bpc = (bpc_max),                                           
\
+       };                                                                      
\
+       __connector_hdmi_init(test, &__caps, funcs, edid, ARRAY_SIZE(edid));    
\
+})
+
+#define drm_kunit_helper_connector_hdmi_init_with_caps_edid_funcs(test, caps, 
funcs, edid) \
+       __connector_hdmi_init(test, caps, funcs, edid, ARRAY_SIZE(edid))
 
 static
 struct drm_atomic_helper_connector_hdmi_priv *

-- 
2.54.0

Reply via email to