Lines Matching full:test

3  * Kunit test for drm_modes functions
18 #include <kunit/test.h>
60 static int drm_test_connector_init(struct kunit *test) in drm_test_connector_init() argument
66 dev = drm_kunit_helper_alloc_device(test); in drm_test_connector_init()
67 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev); in drm_test_connector_init()
69 priv = drm_kunit_helper_alloc_drm_device(test, dev, in drm_test_connector_init()
72 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv); in drm_test_connector_init()
80 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_connector_init()
82 ret = kunit_add_action_or_reset(test, i2c_del_adapter_wrapper, &priv->ddc); in drm_test_connector_init()
83 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_connector_init()
85 test->priv = priv; in drm_test_connector_init()
90 * Test that the registration of a bog standard connector works as
93 static void drm_test_drmm_connector_init(struct kunit *test) in drm_test_drmm_connector_init() argument
95 struct drm_connector_init_priv *priv = test->priv; in drm_test_drmm_connector_init()
102 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_drmm_connector_init()
106 * Test that the registration of a connector without a DDC adapter
109 static void drm_test_drmm_connector_init_null_ddc(struct kunit *test) in drm_test_drmm_connector_init_null_ddc() argument
111 struct drm_connector_init_priv *priv = test->priv; in drm_test_drmm_connector_init_null_ddc()
118 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_drmm_connector_init_null_ddc()
122 * Test that the registration of a connector succeeds for all possible
125 static void drm_test_drmm_connector_init_type_valid(struct kunit *test) in drm_test_drmm_connector_init_type_valid() argument
127 struct drm_connector_init_priv *priv = test->priv; in drm_test_drmm_connector_init_type_valid()
128 unsigned int connector_type = *(unsigned int *)test->param_value; in drm_test_drmm_connector_init_type_valid()
135 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_drmm_connector_init_type_valid()
193 * Test that the initialization of a bog standard dynamic connector works
196 static void drm_test_drm_connector_dynamic_init(struct kunit *test) in drm_test_drm_connector_dynamic_init() argument
198 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_init()
206 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_init()
209 static void drm_test_connector_dynamic_init_cleanup(struct kunit *test) in drm_test_connector_dynamic_init_cleanup() argument
211 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_dynamic_init_cleanup()
218 * Test that the initialization of a dynamic connector without a DDC adapter
221 static void drm_test_drm_connector_dynamic_init_null_ddc(struct kunit *test) in drm_test_drm_connector_dynamic_init_null_ddc() argument
223 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_init_null_ddc()
231 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_init_null_ddc()
235 * Test that the initialization of a dynamic connector doesn't add the
238 static void drm_test_drm_connector_dynamic_init_not_added(struct kunit *test) in drm_test_drm_connector_dynamic_init_not_added() argument
240 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_init_not_added()
248 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_init_not_added()
249 KUNIT_ASSERT_PTR_EQ(test, connector->head.next, &connector->head); in drm_test_drm_connector_dynamic_init_not_added()
252 static void test_connector_property(struct kunit *test, in test_connector_property() argument
260 KUNIT_ASSERT_NOT_NULL(test, expected_prop); in test_connector_property()
262 KUNIT_ASSERT_PTR_EQ_MSG(test, prop, expected_prop, in test_connector_property()
266 KUNIT_EXPECT_EQ(test, ret, 0); in test_connector_property()
267 KUNIT_EXPECT_EQ(test, val, 0); in test_connector_property()
273 * Test that the initialization of a dynamic connector adds all the expected
276 static void drm_test_drm_connector_dynamic_init_properties(struct kunit *test) in drm_test_drm_connector_dynamic_init_properties() argument
278 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_init_properties()
296 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_init_properties()
299 test_connector_property(test, connector, props[i]); in drm_test_drm_connector_dynamic_init_properties()
303 * Test that the initialization of a dynamic connector succeeds for all
306 static void drm_test_drm_connector_dynamic_init_type_valid(struct kunit *test) in drm_test_drm_connector_dynamic_init_type_valid() argument
308 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_init_type_valid()
310 unsigned int connector_type = *(unsigned int *)test->param_value; in drm_test_drm_connector_dynamic_init_type_valid()
317 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_init_type_valid()
321 * Test that the initialization of a dynamic connector sets the expected name
324 static void drm_test_drm_connector_dynamic_init_name(struct kunit *test) in drm_test_drm_connector_dynamic_init_name() argument
326 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_init_name()
328 unsigned int connector_type = *(unsigned int *)test->param_value; in drm_test_drm_connector_dynamic_init_name()
336 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_init_name()
340 KUNIT_ASSERT_STREQ(test, connector->name, expected_name); in drm_test_drm_connector_dynamic_init_name()
362 static int drm_test_connector_dynamic_register_early_init(struct kunit *test) in drm_test_connector_dynamic_register_early_init() argument
367 ret = drm_test_connector_init(test); in drm_test_connector_dynamic_register_early_init()
368 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_connector_dynamic_register_early_init()
370 priv = test->priv; in drm_test_connector_dynamic_register_early_init()
376 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_connector_dynamic_register_early_init()
381 static void drm_test_connector_dynamic_register_early_cleanup(struct kunit *test) in drm_test_connector_dynamic_register_early_cleanup() argument
383 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_dynamic_register_early_cleanup()
391 * Test that registration of a dynamic connector adds it to the connector list.
393 static void drm_test_drm_connector_dynamic_register_early_on_list(struct kunit *test) in drm_test_drm_connector_dynamic_register_early_on_list() argument
395 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_early_on_list()
399 KUNIT_ASSERT_TRUE(test, list_empty(&connector->head)); in drm_test_drm_connector_dynamic_register_early_on_list()
402 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_early_on_list()
404 KUNIT_ASSERT_PTR_EQ(test, connector->head.next, &priv->drm.mode_config.connector_list); in drm_test_drm_connector_dynamic_register_early_on_list()
408 * Test that the registration of a dynamic connector before the drm device is
411 static void drm_test_drm_connector_dynamic_register_early_defer(struct kunit *test) in drm_test_drm_connector_dynamic_register_early_defer() argument
413 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_early_defer()
418 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_early_defer()
420 KUNIT_ASSERT_EQ(test, connector->registration_state, DRM_CONNECTOR_INITIALIZING); in drm_test_drm_connector_dynamic_register_early_defer()
424 * Test that the registration of a dynamic connector fails, if this is done before
427 static void drm_test_drm_connector_dynamic_register_early_no_init(struct kunit *test) in drm_test_drm_connector_dynamic_register_early_no_init() argument
432 connector = kunit_kzalloc(test, sizeof(*connector), GFP_KERNEL); /* auto freed */ in drm_test_drm_connector_dynamic_register_early_no_init()
433 KUNIT_ASSERT_NOT_NULL(test, connector); in drm_test_drm_connector_dynamic_register_early_no_init()
436 KUNIT_ASSERT_EQ(test, ret, -EINVAL); in drm_test_drm_connector_dynamic_register_early_no_init()
440 * Test that the registration of a dynamic connector before the drm device is
443 static void drm_test_drm_connector_dynamic_register_early_no_mode_object(struct kunit *test) in drm_test_drm_connector_dynamic_register_early_no_mode_object() argument
445 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_early_no_mode_object()
451 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_early_no_mode_object()
454 KUNIT_ASSERT_NULL(test, tmp_connector); in drm_test_drm_connector_dynamic_register_early_no_mode_object()
472 static int drm_test_connector_dynamic_register_init(struct kunit *test) in drm_test_connector_dynamic_register_init() argument
477 ret = drm_test_connector_dynamic_register_early_init(test); in drm_test_connector_dynamic_register_init()
478 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_connector_dynamic_register_init()
480 priv = test->priv; in drm_test_connector_dynamic_register_init()
483 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_connector_dynamic_register_init()
488 static void drm_test_connector_dynamic_register_cleanup(struct kunit *test) in drm_test_connector_dynamic_register_cleanup() argument
490 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_dynamic_register_cleanup()
498 drm_test_connector_dynamic_register_early_cleanup(test); in drm_test_connector_dynamic_register_cleanup()
501 static void drm_test_drm_connector_dynamic_register_on_list(struct kunit *test) in drm_test_drm_connector_dynamic_register_on_list() argument
503 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_on_list()
506 KUNIT_ASSERT_TRUE(test, list_empty(&priv->connector.head)); in drm_test_drm_connector_dynamic_register_on_list()
509 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_on_list()
511 KUNIT_ASSERT_PTR_EQ(test, priv->connector.head.next, &priv->drm.mode_config.connector_list); in drm_test_drm_connector_dynamic_register_on_list()
515 * Test that the registration of a dynamic connector doesn't get deferred if
518 static void drm_test_drm_connector_dynamic_register_no_defer(struct kunit *test) in drm_test_drm_connector_dynamic_register_no_defer() argument
520 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_no_defer()
523 KUNIT_ASSERT_EQ(test, priv->connector.registration_state, DRM_CONNECTOR_INITIALIZING); in drm_test_drm_connector_dynamic_register_no_defer()
526 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_no_defer()
528 KUNIT_ASSERT_EQ(test, priv->connector.registration_state, DRM_CONNECTOR_REGISTERED); in drm_test_drm_connector_dynamic_register_no_defer()
532 * Test that the registration of a dynamic connector fails if this is done after the
535 static void drm_test_drm_connector_dynamic_register_no_init(struct kunit *test) in drm_test_drm_connector_dynamic_register_no_init() argument
540 connector = kunit_kzalloc(test, sizeof(*connector), GFP_KERNEL); /* auto freed */ in drm_test_drm_connector_dynamic_register_no_init()
541 KUNIT_ASSERT_NOT_NULL(test, connector); in drm_test_drm_connector_dynamic_register_no_init()
544 KUNIT_ASSERT_EQ(test, ret, -EINVAL); in drm_test_drm_connector_dynamic_register_no_init()
548 * Test that the registration of a dynamic connector after the drm device is
551 static void drm_test_drm_connector_dynamic_register_mode_object(struct kunit *test) in drm_test_drm_connector_dynamic_register_mode_object() argument
553 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_mode_object()
559 KUNIT_ASSERT_NULL(test, tmp_connector); in drm_test_drm_connector_dynamic_register_mode_object()
562 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_mode_object()
565 KUNIT_ASSERT_PTR_EQ(test, tmp_connector, connector); in drm_test_drm_connector_dynamic_register_mode_object()
569 * Test that the registration of a dynamic connector after the drm device is
572 static void drm_test_drm_connector_dynamic_register_sysfs(struct kunit *test) in drm_test_drm_connector_dynamic_register_sysfs() argument
574 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_sysfs()
578 KUNIT_ASSERT_NULL(test, connector->kdev); in drm_test_drm_connector_dynamic_register_sysfs()
581 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_sysfs()
583 KUNIT_ASSERT_NOT_NULL(test, connector->kdev); in drm_test_drm_connector_dynamic_register_sysfs()
587 * Test that the registration of a dynamic connector after the drm device is
590 static void drm_test_drm_connector_dynamic_register_sysfs_name(struct kunit *test) in drm_test_drm_connector_dynamic_register_sysfs_name() argument
592 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_sysfs_name()
598 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_sysfs_name()
603 KUNIT_ASSERT_STREQ(test, dev_name(connector->kdev), expected_name); in drm_test_drm_connector_dynamic_register_sysfs_name()
607 * Test that the registration of a dynamic connector after the drm device is
610 static void drm_test_drm_connector_dynamic_register_debugfs(struct kunit *test) in drm_test_drm_connector_dynamic_register_debugfs() argument
612 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_dynamic_register_debugfs()
615 KUNIT_ASSERT_NULL(test, priv->connector.debugfs_entry); in drm_test_drm_connector_dynamic_register_debugfs()
618 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_dynamic_register_debugfs()
621 KUNIT_ASSERT_NOT_NULL(test, priv->connector.debugfs_entry); in drm_test_drm_connector_dynamic_register_debugfs()
623 KUNIT_ASSERT_NULL(test, priv->connector.debugfs_entry); in drm_test_drm_connector_dynamic_register_debugfs()
645 * Test that the registration of a bog standard connector works as
648 static void drm_test_connector_hdmi_init_valid(struct kunit *test) in drm_test_connector_hdmi_init_valid() argument
650 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_valid()
661 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_valid()
665 * Test that the registration of a connector without a DDC adapter
668 static void drm_test_connector_hdmi_init_null_ddc(struct kunit *test) in drm_test_connector_hdmi_init_null_ddc() argument
670 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_null_ddc()
681 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_null_ddc()
685 * Test that the registration of an HDMI connector with a NULL vendor
688 static void drm_test_connector_hdmi_init_null_vendor(struct kunit *test) in drm_test_connector_hdmi_init_null_vendor() argument
690 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_null_vendor()
701 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_null_vendor()
705 * Test that the registration of an HDMI connector with a NULL product
708 static void drm_test_connector_hdmi_init_null_product(struct kunit *test) in drm_test_connector_hdmi_init_null_product() argument
710 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_null_product()
721 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_null_product()
725 * Test that the registration of a connector with a valid, shorter than
728 static void drm_test_connector_hdmi_init_product_valid(struct kunit *test) in drm_test_connector_hdmi_init_product_valid() argument
730 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_product_valid()
737 KUNIT_ASSERT_LT(test, strlen(product_name), DRM_CONNECTOR_HDMI_PRODUCT_LEN); in drm_test_connector_hdmi_init_product_valid()
747 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_product_valid()
748 KUNIT_EXPECT_MEMEQ(test, in drm_test_connector_hdmi_init_product_valid()
755 * Test that the registration of a connector with a valid, at max
759 static void drm_test_connector_hdmi_init_product_length_exact(struct kunit *test) in drm_test_connector_hdmi_init_product_length_exact() argument
761 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_product_length_exact()
770 KUNIT_ASSERT_EQ(test, strlen(product_name), DRM_CONNECTOR_HDMI_PRODUCT_LEN); in drm_test_connector_hdmi_init_product_length_exact()
780 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_product_length_exact()
781 KUNIT_EXPECT_MEMEQ(test, in drm_test_connector_hdmi_init_product_length_exact()
788 * Test that the registration of a connector with a product name larger
791 static void drm_test_connector_hdmi_init_product_length_too_long(struct kunit *test) in drm_test_connector_hdmi_init_product_length_too_long() argument
793 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_product_length_too_long()
797 KUNIT_ASSERT_GT(test, strlen(product_name), DRM_CONNECTOR_HDMI_PRODUCT_LEN); in drm_test_connector_hdmi_init_product_length_too_long()
807 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_product_length_too_long()
811 * Test that the registration of a connector with a vendor name smaller
814 static void drm_test_connector_hdmi_init_vendor_valid(struct kunit *test) in drm_test_connector_hdmi_init_vendor_valid() argument
816 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_vendor_valid()
823 KUNIT_ASSERT_LT(test, strlen(vendor_name), DRM_CONNECTOR_HDMI_VENDOR_LEN); in drm_test_connector_hdmi_init_vendor_valid()
833 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_vendor_valid()
834 KUNIT_EXPECT_MEMEQ(test, in drm_test_connector_hdmi_init_vendor_valid()
841 * Test that the registration of a connector with a vendor name at the
845 static void drm_test_connector_hdmi_init_vendor_length_exact(struct kunit *test) in drm_test_connector_hdmi_init_vendor_length_exact() argument
847 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_vendor_length_exact()
855 KUNIT_ASSERT_EQ(test, strlen(vendor_name), DRM_CONNECTOR_HDMI_VENDOR_LEN); in drm_test_connector_hdmi_init_vendor_length_exact()
865 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_vendor_length_exact()
866 KUNIT_EXPECT_MEMEQ(test, in drm_test_connector_hdmi_init_vendor_length_exact()
873 * Test that the registration of a connector with a vendor name larger
876 static void drm_test_connector_hdmi_init_vendor_length_too_long(struct kunit *test) in drm_test_connector_hdmi_init_vendor_length_too_long() argument
878 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_vendor_length_too_long()
882 KUNIT_ASSERT_GT(test, strlen(vendor_name), DRM_CONNECTOR_HDMI_VENDOR_LEN); in drm_test_connector_hdmi_init_vendor_length_too_long()
892 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_vendor_length_too_long()
896 * Test that the registration of a connector with an invalid maximum bpc
899 static void drm_test_connector_hdmi_init_bpc_invalid(struct kunit *test) in drm_test_connector_hdmi_init_bpc_invalid() argument
901 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_bpc_invalid()
912 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_bpc_invalid()
916 * Test that the registration of a connector with a null maximum bpc
919 static void drm_test_connector_hdmi_init_bpc_null(struct kunit *test) in drm_test_connector_hdmi_init_bpc_null() argument
921 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_bpc_null()
932 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_bpc_null()
936 * Test that the registration of a connector with a maximum bpc count of
940 static void drm_test_connector_hdmi_init_bpc_8(struct kunit *test) in drm_test_connector_hdmi_init_bpc_8() argument
942 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_bpc_8()
957 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_bpc_8()
960 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_connector_hdmi_init_bpc_8()
961 KUNIT_EXPECT_NOT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_connector_hdmi_init_bpc_8()
964 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_bpc_8()
965 KUNIT_EXPECT_EQ(test, val, 8); in drm_test_connector_hdmi_init_bpc_8()
968 KUNIT_EXPECT_EQ(test, state->max_bpc, 8); in drm_test_connector_hdmi_init_bpc_8()
969 KUNIT_EXPECT_EQ(test, state->max_requested_bpc, 8); in drm_test_connector_hdmi_init_bpc_8()
972 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_connector_hdmi_init_bpc_8()
973 KUNIT_EXPECT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_connector_hdmi_init_bpc_8()
977 * Test that the registration of a connector with a maximum bpc count of
981 static void drm_test_connector_hdmi_init_bpc_10(struct kunit *test) in drm_test_connector_hdmi_init_bpc_10() argument
983 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_bpc_10()
998 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_bpc_10()
1001 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_connector_hdmi_init_bpc_10()
1002 KUNIT_EXPECT_NOT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_connector_hdmi_init_bpc_10()
1005 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_bpc_10()
1006 KUNIT_EXPECT_EQ(test, val, 10); in drm_test_connector_hdmi_init_bpc_10()
1009 KUNIT_EXPECT_EQ(test, state->max_bpc, 10); in drm_test_connector_hdmi_init_bpc_10()
1010 KUNIT_EXPECT_EQ(test, state->max_requested_bpc, 10); in drm_test_connector_hdmi_init_bpc_10()
1013 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_connector_hdmi_init_bpc_10()
1014 KUNIT_EXPECT_NOT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_connector_hdmi_init_bpc_10()
1018 * Test that the registration of a connector with a maximum bpc count of
1022 static void drm_test_connector_hdmi_init_bpc_12(struct kunit *test) in drm_test_connector_hdmi_init_bpc_12() argument
1024 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_bpc_12()
1039 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_bpc_12()
1042 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_connector_hdmi_init_bpc_12()
1043 KUNIT_EXPECT_NOT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_connector_hdmi_init_bpc_12()
1046 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_bpc_12()
1047 KUNIT_EXPECT_EQ(test, val, 12); in drm_test_connector_hdmi_init_bpc_12()
1050 KUNIT_EXPECT_EQ(test, state->max_bpc, 12); in drm_test_connector_hdmi_init_bpc_12()
1051 KUNIT_EXPECT_EQ(test, state->max_requested_bpc, 12); in drm_test_connector_hdmi_init_bpc_12()
1054 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_connector_hdmi_init_bpc_12()
1055 KUNIT_EXPECT_NOT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_connector_hdmi_init_bpc_12()
1059 * Test that the registration of an HDMI connector with no supported
1062 static void drm_test_connector_hdmi_init_formats_empty(struct kunit *test) in drm_test_connector_hdmi_init_formats_empty() argument
1064 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_formats_empty()
1075 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_formats_empty()
1079 * Test that the registration of an HDMI connector not listing RGB as a
1082 static void drm_test_connector_hdmi_init_formats_no_rgb(struct kunit *test) in drm_test_connector_hdmi_init_formats_no_rgb() argument
1084 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_formats_no_rgb()
1095 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_formats_no_rgb()
1132 * Test that the registration of an HDMI connector succeeds only when
1136 static void drm_test_connector_hdmi_init_formats_yuv420_allowed(struct kunit *test) in drm_test_connector_hdmi_init_formats_yuv420_allowed() argument
1139 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_formats_yuv420_allowed()
1142 params = test->param_value; in drm_test_connector_hdmi_init_formats_yuv420_allowed()
1153 KUNIT_EXPECT_EQ(test, ret, params->expected_result); in drm_test_connector_hdmi_init_formats_yuv420_allowed()
1157 * Test that the registration of an HDMI connector with an HDMI
1160 static void drm_test_connector_hdmi_init_type_valid(struct kunit *test) in drm_test_connector_hdmi_init_type_valid() argument
1162 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_type_valid()
1163 unsigned int connector_type = *(unsigned int *)test->param_value; in drm_test_connector_hdmi_init_type_valid()
1174 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_connector_hdmi_init_type_valid()
1192 * Test that the registration of an HDMI connector with an !HDMI
1195 static void drm_test_connector_hdmi_init_type_invalid(struct kunit *test) in drm_test_connector_hdmi_init_type_invalid() argument
1197 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_init_type_invalid()
1198 unsigned int connector_type = *(unsigned int *)test->param_value; in drm_test_connector_hdmi_init_type_invalid()
1209 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_connector_hdmi_init_type_invalid()
1282 static void drm_test_get_tv_mode_from_name_valid(struct kunit *test) in drm_test_get_tv_mode_from_name_valid() argument
1284 const struct drm_get_tv_mode_from_name_test *params = test->param_value; in drm_test_get_tv_mode_from_name_valid()
1286 KUNIT_EXPECT_EQ(test, in drm_test_get_tv_mode_from_name_valid()
1314 static void drm_test_get_tv_mode_from_name_truncated(struct kunit *test) in drm_test_get_tv_mode_from_name_truncated() argument
1320 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_get_tv_mode_from_name_truncated()
1346 static void drm_test_drm_hdmi_connector_get_broadcast_rgb_name(struct kunit *test) in drm_test_drm_hdmi_connector_get_broadcast_rgb_name() argument
1349 test->param_value; in drm_test_drm_hdmi_connector_get_broadcast_rgb_name()
1351 KUNIT_EXPECT_STREQ(test, in drm_test_drm_hdmi_connector_get_broadcast_rgb_name()
1375 static void drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid(struct kunit *test) in drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid() argument
1377 KUNIT_EXPECT_NULL(test, drm_hdmi_connector_get_broadcast_rgb_name(3)); in drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid()
1403 static void drm_test_drm_hdmi_connector_get_output_format_name(struct kunit *test) in drm_test_drm_hdmi_connector_get_output_format_name() argument
1406 test->param_value; in drm_test_drm_hdmi_connector_get_output_format_name()
1408 KUNIT_EXPECT_STREQ(test, in drm_test_drm_hdmi_connector_get_output_format_name()
1433 static void drm_test_drm_hdmi_connector_get_output_format_name_invalid(struct kunit *test) in drm_test_drm_hdmi_connector_get_output_format_name_invalid() argument
1435 KUNIT_EXPECT_NULL(test, drm_hdmi_connector_get_output_format_name(4)); in drm_test_drm_hdmi_connector_get_output_format_name_invalid()
1450 static void drm_test_drm_connector_attach_broadcast_rgb_property(struct kunit *test) in drm_test_drm_connector_attach_broadcast_rgb_property() argument
1452 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_attach_broadcast_rgb_property()
1461 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_attach_broadcast_rgb_property()
1464 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_attach_broadcast_rgb_property()
1467 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_drm_connector_attach_broadcast_rgb_property()
1468 KUNIT_EXPECT_NOT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_drm_connector_attach_broadcast_rgb_property()
1471 static void drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector(struct kunit *test) in drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector() argument
1473 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector()
1486 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector()
1489 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector()
1492 KUNIT_ASSERT_NOT_NULL(test, prop); in drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector()
1493 KUNIT_EXPECT_NOT_NULL(test, drm_mode_obj_find_prop_id(&connector->base, prop->base.id)); in drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector()
1509 * Test that for a given mode, with 8bpc and an RGB output the TMDS
1512 static void drm_test_drm_hdmi_compute_mode_clock_rgb(struct kunit *test) in drm_test_drm_hdmi_compute_mode_clock_rgb() argument
1514 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_hdmi_compute_mode_clock_rgb()
1519 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16); in drm_test_drm_hdmi_compute_mode_clock_rgb()
1520 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_drm_hdmi_compute_mode_clock_rgb()
1522 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_drm_hdmi_compute_mode_clock_rgb()
1525 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_drm_hdmi_compute_mode_clock_rgb()
1526 KUNIT_EXPECT_EQ(test, mode->clock * 1000ULL, rate); in drm_test_drm_hdmi_compute_mode_clock_rgb()
1530 * Test that for a given mode, with 10bpc and an RGB output the TMDS
1533 static void drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc(struct kunit *test) in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc() argument
1535 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc()
1540 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc()
1541 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc()
1543 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc()
1546 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc()
1547 KUNIT_EXPECT_EQ(test, mode->clock * 1250, rate); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc()
1551 * Test that for the VIC-1 mode, with 10bpc and an RGB output the TMDS
1554 static void drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1(struct kunit *test) in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1() argument
1556 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1()
1561 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1()
1562 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1()
1565 KUNIT_EXPECT_EQ(test, rate, 0); in drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1()
1569 * Test that for a given mode, with 12bpc and an RGB output the TMDS
1572 static void drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc(struct kunit *test) in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc() argument
1574 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc()
1579 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc()
1580 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc()
1582 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc()
1585 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc()
1586 KUNIT_EXPECT_EQ(test, mode->clock * 1500, rate); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc()
1590 * Test that for the VIC-1 mode, with 12bpc and an RGB output the TMDS
1593 static void drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1(struct kunit *test) in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1() argument
1595 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1()
1600 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1()
1601 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1()
1604 KUNIT_EXPECT_EQ(test, rate, 0); in drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1()
1608 * Test that for a mode with the pixel repetition flag, the TMDS
1611 static void drm_test_drm_hdmi_compute_mode_clock_rgb_double(struct kunit *test) in drm_test_drm_hdmi_compute_mode_clock_rgb_double() argument
1613 struct drm_connector_init_priv *priv = test->priv; in drm_test_drm_hdmi_compute_mode_clock_rgb_double()
1618 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 6); in drm_test_drm_hdmi_compute_mode_clock_rgb_double()
1619 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_drm_hdmi_compute_mode_clock_rgb_double()
1621 KUNIT_ASSERT_TRUE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_drm_hdmi_compute_mode_clock_rgb_double()
1624 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_drm_hdmi_compute_mode_clock_rgb_double()
1625 KUNIT_EXPECT_EQ(test, (mode->clock * 1000ULL) * 2, rate); in drm_test_drm_hdmi_compute_mode_clock_rgb_double()
1629 * Test that the TMDS character rate computation for the VIC modes
1633 static void drm_test_connector_hdmi_compute_mode_clock_yuv420_valid(struct kunit *test) in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid() argument
1635 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid()
1639 unsigned int vic = *(unsigned int *)test->param_value; in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid()
1641 mode = drm_kunit_display_mode_from_cea_vic(test, drm, vic); in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid()
1642 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid()
1644 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid()
1647 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid()
1648 KUNIT_EXPECT_EQ(test, (mode->clock * 1000ULL) / 2, rate); in drm_test_connector_hdmi_compute_mode_clock_yuv420_valid()
1665 * Test that for a given mode listed supporting it and an YUV420 output
1669 static void drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc(struct kunit *test) in drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc() argument
1671 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc()
1678 mode = drm_kunit_display_mode_from_cea_vic(test, drm, vic); in drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc()
1679 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc()
1681 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc()
1684 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc()
1686 KUNIT_EXPECT_EQ(test, mode->clock * 625, rate); in drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc()
1690 * Test that for a given mode listed supporting it and an YUV420 output
1694 static void drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc(struct kunit *test) in drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc() argument
1696 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc()
1703 mode = drm_kunit_display_mode_from_cea_vic(test, drm, vic); in drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc()
1704 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc()
1706 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc()
1709 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc()
1711 KUNIT_EXPECT_EQ(test, mode->clock * 750, rate); in drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc()
1715 * Test that for a given mode, the computation of the TMDS character
1719 static void drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc(struct kunit *test) in drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc() argument
1721 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc()
1726 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16); in drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc()
1727 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc()
1729 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc()
1732 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc()
1733 KUNIT_EXPECT_EQ(test, mode->clock * 1000, rate); in drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc()
1737 * Test that for a given mode, the computation of the TMDS character
1741 static void drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc(struct kunit *test) in drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc() argument
1743 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc()
1748 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16); in drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc()
1749 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc()
1751 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc()
1754 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc()
1755 KUNIT_EXPECT_EQ(test, mode->clock * 1000, rate); in drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc()
1759 * Test that for a given mode, the computation of the TMDS character
1763 static void drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc(struct kunit *test) in drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc() argument
1765 struct drm_connector_init_priv *priv = test->priv; in drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc()
1770 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 16); in drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc()
1771 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc()
1773 KUNIT_ASSERT_FALSE(test, mode->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc()
1776 KUNIT_ASSERT_GT(test, rate, 0); in drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc()
1777 KUNIT_EXPECT_EQ(test, mode->clock * 1000, rate); in drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc()
1817 MODULE_DESCRIPTION("Kunit test for drm_modes functions");