Lines Matching full:test

4  * Kunit test for drm_hdmi_state_helper functions
25 #include <kunit/test.h>
58 static int light_up_connector(struct kunit *test, in light_up_connector() argument
70 state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx); in light_up_connector()
71 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in light_up_connector()
75 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in light_up_connector()
84 KUNIT_EXPECT_EQ(test, ret, 0); in light_up_connector()
87 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); in light_up_connector()
90 KUNIT_EXPECT_EQ(test, ret, 0); in light_up_connector()
96 KUNIT_ASSERT_EQ(test, ret, 0); in light_up_connector()
101 static int set_connector_edid(struct kunit *test, struct drm_connector *connector, in set_connector_edid() argument
186 drm_kunit_helper_connector_hdmi_init_funcs(struct kunit *test, in drm_kunit_helper_connector_hdmi_init_funcs() argument
198 dev = drm_kunit_helper_alloc_device(test); in drm_kunit_helper_connector_hdmi_init_funcs()
199 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev); in drm_kunit_helper_connector_hdmi_init_funcs()
201 priv = drm_kunit_helper_alloc_drm_device(test, dev, in drm_kunit_helper_connector_hdmi_init_funcs()
204 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv); in drm_kunit_helper_connector_hdmi_init_funcs()
205 test->priv = priv; in drm_kunit_helper_connector_hdmi_init_funcs()
208 priv->plane = drm_kunit_helper_create_primary_plane(test, drm, in drm_kunit_helper_connector_hdmi_init_funcs()
213 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->plane); in drm_kunit_helper_connector_hdmi_init_funcs()
215 priv->crtc = drm_kunit_helper_create_crtc(test, drm, in drm_kunit_helper_connector_hdmi_init_funcs()
219 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv->crtc); in drm_kunit_helper_connector_hdmi_init_funcs()
223 KUNIT_ASSERT_EQ(test, ret, 0); in drm_kunit_helper_connector_hdmi_init_funcs()
236 KUNIT_ASSERT_EQ(test, ret, 0); in drm_kunit_helper_connector_hdmi_init_funcs()
248 drm_kunit_helper_connector_hdmi_init(struct kunit *test, in drm_kunit_helper_connector_hdmi_init() argument
255 priv = drm_kunit_helper_connector_hdmi_init_funcs(test, in drm_kunit_helper_connector_hdmi_init()
258 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv); in drm_kunit_helper_connector_hdmi_init()
260 ret = set_connector_edid(test, &priv->connector, in drm_kunit_helper_connector_hdmi_init()
263 KUNIT_ASSERT_GT(test, ret, 0); in drm_kunit_helper_connector_hdmi_init()
269 * Test that if we change the RGB quantization property to a different
273 static void drm_test_check_broadcast_rgb_crtc_mode_changed(struct kunit *test) in drm_test_check_broadcast_rgb_crtc_mode_changed() argument
287 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_crtc_mode_changed()
290 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_crtc_mode_changed()
297 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_broadcast_rgb_crtc_mode_changed()
301 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_broadcast_rgb_crtc_mode_changed()
302 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_crtc_mode_changed()
304 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_crtc_mode_changed()
305 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_crtc_mode_changed()
308 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_broadcast_rgb_crtc_mode_changed()
311 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, old_conn_state); in drm_test_check_broadcast_rgb_crtc_mode_changed()
315 KUNIT_ASSERT_NE(test, in drm_test_check_broadcast_rgb_crtc_mode_changed()
320 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_crtc_mode_changed()
323 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_broadcast_rgb_crtc_mode_changed()
324 KUNIT_EXPECT_EQ(test, new_conn_state->hdmi.broadcast_rgb, DRM_HDMI_BROADCAST_RGB_FULL); in drm_test_check_broadcast_rgb_crtc_mode_changed()
327 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); in drm_test_check_broadcast_rgb_crtc_mode_changed()
328 KUNIT_EXPECT_TRUE(test, crtc_state->mode_changed); in drm_test_check_broadcast_rgb_crtc_mode_changed()
335 * Test that if we set the RGB quantization property to the same value,
339 static void drm_test_check_broadcast_rgb_crtc_mode_not_changed(struct kunit *test) in drm_test_check_broadcast_rgb_crtc_mode_not_changed() argument
353 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
356 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
363 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
367 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
368 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
370 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
371 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
374 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
377 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, old_conn_state); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
382 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
385 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, old_conn_state); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
388 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
390 KUNIT_EXPECT_EQ(test, in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
395 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
396 KUNIT_EXPECT_FALSE(test, crtc_state->mode_changed); in drm_test_check_broadcast_rgb_crtc_mode_not_changed()
403 * Test that for an HDMI connector, with an HDMI monitor, if the
407 static void drm_test_check_broadcast_rgb_auto_cea_mode(struct kunit *test) in drm_test_check_broadcast_rgb_auto_cea_mode() argument
419 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_auto_cea_mode()
422 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_auto_cea_mode()
427 KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); in drm_test_check_broadcast_rgb_auto_cea_mode()
430 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_broadcast_rgb_auto_cea_mode()
431 KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); in drm_test_check_broadcast_rgb_auto_cea_mode()
435 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_broadcast_rgb_auto_cea_mode()
436 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_auto_cea_mode()
438 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_auto_cea_mode()
439 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_auto_cea_mode()
442 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_auto_cea_mode()
444 KUNIT_ASSERT_EQ(test, in drm_test_check_broadcast_rgb_auto_cea_mode()
449 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_auto_cea_mode()
452 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_auto_cea_mode()
454 KUNIT_EXPECT_TRUE(test, conn_state->hdmi.is_limited_range); in drm_test_check_broadcast_rgb_auto_cea_mode()
461 * Test that for an HDMI connector, with an HDMI monitor, if the
465 static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test) in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1() argument
477 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
480 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
484 KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
488 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
489 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
492 ret = light_up_connector(test, drm, crtc, conn, mode, &ctx); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
493 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
495 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
496 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
499 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
501 KUNIT_ASSERT_EQ(test, in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
506 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
509 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
511 KUNIT_EXPECT_FALSE(test, conn_state->hdmi.is_limited_range); in drm_test_check_broadcast_rgb_auto_cea_mode_vic_1()
518 * Test that for an HDMI connector, with an HDMI monitor, if the
522 static void drm_test_check_broadcast_rgb_full_cea_mode(struct kunit *test) in drm_test_check_broadcast_rgb_full_cea_mode() argument
534 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_full_cea_mode()
537 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_full_cea_mode()
542 KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); in drm_test_check_broadcast_rgb_full_cea_mode()
545 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_broadcast_rgb_full_cea_mode()
546 KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); in drm_test_check_broadcast_rgb_full_cea_mode()
550 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_broadcast_rgb_full_cea_mode()
551 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_full_cea_mode()
553 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_full_cea_mode()
554 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_full_cea_mode()
557 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_full_cea_mode()
562 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_full_cea_mode()
565 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_full_cea_mode()
567 KUNIT_ASSERT_EQ(test, in drm_test_check_broadcast_rgb_full_cea_mode()
571 KUNIT_EXPECT_FALSE(test, conn_state->hdmi.is_limited_range); in drm_test_check_broadcast_rgb_full_cea_mode()
578 * Test that for an HDMI connector, with an HDMI monitor, if the
582 static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test) in drm_test_check_broadcast_rgb_full_cea_mode_vic_1() argument
594 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
597 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
601 KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
605 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
606 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
609 ret = light_up_connector(test, drm, crtc, conn, mode, &ctx); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
610 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
612 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
613 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
616 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
621 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
624 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
626 KUNIT_ASSERT_EQ(test, in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
630 KUNIT_EXPECT_FALSE(test, conn_state->hdmi.is_limited_range); in drm_test_check_broadcast_rgb_full_cea_mode_vic_1()
637 * Test that for an HDMI connector, with an HDMI monitor, if the
641 static void drm_test_check_broadcast_rgb_limited_cea_mode(struct kunit *test) in drm_test_check_broadcast_rgb_limited_cea_mode() argument
653 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_limited_cea_mode()
656 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_limited_cea_mode()
661 KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); in drm_test_check_broadcast_rgb_limited_cea_mode()
664 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_broadcast_rgb_limited_cea_mode()
665 KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); in drm_test_check_broadcast_rgb_limited_cea_mode()
669 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_broadcast_rgb_limited_cea_mode()
670 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_limited_cea_mode()
672 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_limited_cea_mode()
673 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_limited_cea_mode()
676 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_limited_cea_mode()
681 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_limited_cea_mode()
684 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_limited_cea_mode()
686 KUNIT_ASSERT_EQ(test, in drm_test_check_broadcast_rgb_limited_cea_mode()
690 KUNIT_EXPECT_TRUE(test, conn_state->hdmi.is_limited_range); in drm_test_check_broadcast_rgb_limited_cea_mode()
697 * Test that for an HDMI connector, with an HDMI monitor, if the
701 static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *test) in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1() argument
713 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
716 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
720 KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
724 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
725 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
728 ret = light_up_connector(test, drm, crtc, conn, mode, &ctx); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
729 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
731 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
732 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
735 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
740 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
743 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
745 KUNIT_ASSERT_EQ(test, in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
749 KUNIT_EXPECT_TRUE(test, conn_state->hdmi.is_limited_range); in drm_test_check_broadcast_rgb_limited_cea_mode_vic_1()
756 * Test that if we change the maximum bpc property to a different value,
760 static void drm_test_check_output_bpc_crtc_mode_changed(struct kunit *test) in drm_test_check_output_bpc_crtc_mode_changed() argument
774 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_crtc_mode_changed()
777 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_crtc_mode_changed()
782 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_crtc_mode_changed()
785 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_crtc_mode_changed()
788 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_output_bpc_crtc_mode_changed()
792 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_output_bpc_crtc_mode_changed()
793 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_output_bpc_crtc_mode_changed()
795 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_output_bpc_crtc_mode_changed()
796 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_output_bpc_crtc_mode_changed()
799 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_output_bpc_crtc_mode_changed()
802 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, old_conn_state); in drm_test_check_output_bpc_crtc_mode_changed()
806 KUNIT_ASSERT_NE(test, in drm_test_check_output_bpc_crtc_mode_changed()
811 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_output_bpc_crtc_mode_changed()
814 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, old_conn_state); in drm_test_check_output_bpc_crtc_mode_changed()
817 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_output_bpc_crtc_mode_changed()
819 KUNIT_ASSERT_NE(test, in drm_test_check_output_bpc_crtc_mode_changed()
824 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); in drm_test_check_output_bpc_crtc_mode_changed()
825 KUNIT_EXPECT_TRUE(test, crtc_state->mode_changed); in drm_test_check_output_bpc_crtc_mode_changed()
832 * Test that if we set the output bpc property to the same value, we
836 static void drm_test_check_output_bpc_crtc_mode_not_changed(struct kunit *test) in drm_test_check_output_bpc_crtc_mode_not_changed() argument
850 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_crtc_mode_not_changed()
853 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_crtc_mode_not_changed()
858 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_crtc_mode_not_changed()
861 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_crtc_mode_not_changed()
864 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_output_bpc_crtc_mode_not_changed()
868 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_output_bpc_crtc_mode_not_changed()
869 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_output_bpc_crtc_mode_not_changed()
871 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_output_bpc_crtc_mode_not_changed()
872 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_output_bpc_crtc_mode_not_changed()
875 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_output_bpc_crtc_mode_not_changed()
878 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, old_conn_state); in drm_test_check_output_bpc_crtc_mode_not_changed()
880 KUNIT_ASSERT_EQ(test, in drm_test_check_output_bpc_crtc_mode_not_changed()
885 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_output_bpc_crtc_mode_not_changed()
888 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, old_conn_state); in drm_test_check_output_bpc_crtc_mode_not_changed()
891 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, new_conn_state); in drm_test_check_output_bpc_crtc_mode_not_changed()
893 KUNIT_EXPECT_EQ(test, in drm_test_check_output_bpc_crtc_mode_not_changed()
898 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); in drm_test_check_output_bpc_crtc_mode_not_changed()
899 KUNIT_EXPECT_FALSE(test, crtc_state->mode_changed); in drm_test_check_output_bpc_crtc_mode_not_changed()
906 * Test that if we have an HDMI connector but a !HDMI display, we always
909 static void drm_test_check_output_bpc_dvi(struct kunit *test) in drm_test_check_output_bpc_dvi() argument
921 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_dvi()
926 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_dvi()
931 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_dvi()
934 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_dvi()
937 KUNIT_ASSERT_FALSE(test, info->is_hdmi); in drm_test_check_output_bpc_dvi()
940 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_output_bpc_dvi()
944 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_output_bpc_dvi()
945 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_output_bpc_dvi()
948 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_output_bpc_dvi()
950 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8); in drm_test_check_output_bpc_dvi()
951 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_output_bpc_dvi()
958 * Test that when doing a commit which would use RGB 8bpc, the TMDS
961 static void drm_test_check_tmds_char_rate_rgb_8bpc(struct kunit *test) in drm_test_check_tmds_char_rate_rgb_8bpc() argument
972 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_tmds_char_rate_rgb_8bpc()
975 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_tmds_char_rate_rgb_8bpc()
980 ret = set_connector_edid(test, conn, in drm_test_check_tmds_char_rate_rgb_8bpc()
983 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_tmds_char_rate_rgb_8bpc()
986 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_tmds_char_rate_rgb_8bpc()
987 KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_check_tmds_char_rate_rgb_8bpc()
991 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_tmds_char_rate_rgb_8bpc()
992 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_tmds_char_rate_rgb_8bpc()
995 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_tmds_char_rate_rgb_8bpc()
997 KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_bpc, 8); in drm_test_check_tmds_char_rate_rgb_8bpc()
998 KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_tmds_char_rate_rgb_8bpc()
999 KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1000); in drm_test_check_tmds_char_rate_rgb_8bpc()
1006 * Test that when doing a commit which would use RGB 10bpc, the TMDS
1010 static void drm_test_check_tmds_char_rate_rgb_10bpc(struct kunit *test) in drm_test_check_tmds_char_rate_rgb_10bpc() argument
1021 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_tmds_char_rate_rgb_10bpc()
1024 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_tmds_char_rate_rgb_10bpc()
1029 ret = set_connector_edid(test, conn, in drm_test_check_tmds_char_rate_rgb_10bpc()
1032 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_tmds_char_rate_rgb_10bpc()
1035 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_tmds_char_rate_rgb_10bpc()
1036 KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_check_tmds_char_rate_rgb_10bpc()
1040 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_tmds_char_rate_rgb_10bpc()
1041 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_tmds_char_rate_rgb_10bpc()
1044 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_tmds_char_rate_rgb_10bpc()
1046 KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_bpc, 10); in drm_test_check_tmds_char_rate_rgb_10bpc()
1047 KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_tmds_char_rate_rgb_10bpc()
1048 KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1250); in drm_test_check_tmds_char_rate_rgb_10bpc()
1055 * Test that when doing a commit which would use RGB 12bpc, the TMDS
1059 static void drm_test_check_tmds_char_rate_rgb_12bpc(struct kunit *test) in drm_test_check_tmds_char_rate_rgb_12bpc() argument
1070 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_tmds_char_rate_rgb_12bpc()
1073 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_tmds_char_rate_rgb_12bpc()
1078 ret = set_connector_edid(test, conn, in drm_test_check_tmds_char_rate_rgb_12bpc()
1081 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_tmds_char_rate_rgb_12bpc()
1084 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_tmds_char_rate_rgb_12bpc()
1085 KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_check_tmds_char_rate_rgb_12bpc()
1089 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_tmds_char_rate_rgb_12bpc()
1090 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_tmds_char_rate_rgb_12bpc()
1093 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_tmds_char_rate_rgb_12bpc()
1095 KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_bpc, 12); in drm_test_check_tmds_char_rate_rgb_12bpc()
1096 KUNIT_ASSERT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_tmds_char_rate_rgb_12bpc()
1097 KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1500); in drm_test_check_tmds_char_rate_rgb_12bpc()
1104 * Test that if we filter a rate through our hook, it's indeed rejected
1111 static void drm_test_check_hdmi_funcs_reject_rate(struct kunit *test) in drm_test_check_hdmi_funcs_reject_rate() argument
1123 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_hdmi_funcs_reject_rate()
1126 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_hdmi_funcs_reject_rate()
1133 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_hdmi_funcs_reject_rate()
1137 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_hdmi_funcs_reject_rate()
1138 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_hdmi_funcs_reject_rate()
1143 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_hdmi_funcs_reject_rate()
1144 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_hdmi_funcs_reject_rate()
1147 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); in drm_test_check_hdmi_funcs_reject_rate()
1152 KUNIT_EXPECT_LT(test, ret, 0); in drm_test_check_hdmi_funcs_reject_rate()
1159 * Test that if:
1169 static void drm_test_check_max_tmds_rate_bpc_fallback(struct kunit *test) in drm_test_check_max_tmds_rate_bpc_fallback() argument
1182 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_max_tmds_rate_bpc_fallback()
1185 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_max_tmds_rate_bpc_fallback()
1190 ret = set_connector_edid(test, conn, in drm_test_check_max_tmds_rate_bpc_fallback()
1193 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_max_tmds_rate_bpc_fallback()
1196 KUNIT_ASSERT_TRUE(test, info->is_hdmi); in drm_test_check_max_tmds_rate_bpc_fallback()
1197 KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); in drm_test_check_max_tmds_rate_bpc_fallback()
1200 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_max_tmds_rate_bpc_fallback()
1201 KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_check_max_tmds_rate_bpc_fallback()
1204 KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_max_tmds_rate_bpc_fallback()
1207 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_max_tmds_rate_bpc_fallback()
1211 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_max_tmds_rate_bpc_fallback()
1212 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_max_tmds_rate_bpc_fallback()
1215 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_max_tmds_rate_bpc_fallback()
1217 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 10); in drm_test_check_max_tmds_rate_bpc_fallback()
1218 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_max_tmds_rate_bpc_fallback()
1219 KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, preferred->clock * 1250); in drm_test_check_max_tmds_rate_bpc_fallback()
1226 * Test that if:
1238 static void drm_test_check_max_tmds_rate_format_fallback(struct kunit *test) in drm_test_check_max_tmds_rate_format_fallback() argument
1251 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_max_tmds_rate_format_fallback()
1256 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_max_tmds_rate_format_fallback()
1261 ret = set_connector_edid(test, conn, in drm_test_check_max_tmds_rate_format_fallback()
1264 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_max_tmds_rate_format_fallback()
1267 KUNIT_ASSERT_TRUE(test, info->is_hdmi); in drm_test_check_max_tmds_rate_format_fallback()
1268 KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); in drm_test_check_max_tmds_rate_format_fallback()
1271 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_max_tmds_rate_format_fallback()
1272 KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); in drm_test_check_max_tmds_rate_format_fallback()
1275 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_max_tmds_rate_format_fallback()
1278 KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_max_tmds_rate_format_fallback()
1281 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_max_tmds_rate_format_fallback()
1285 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_max_tmds_rate_format_fallback()
1286 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_max_tmds_rate_format_fallback()
1289 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_max_tmds_rate_format_fallback()
1291 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 10); in drm_test_check_max_tmds_rate_format_fallback()
1292 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_max_tmds_rate_format_fallback()
1299 * Test that if a driver and screen supports RGB and YUV formats, and we
1303 static void drm_test_check_output_bpc_format_vic_1(struct kunit *test) in drm_test_check_output_bpc_format_vic_1() argument
1316 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_format_vic_1()
1321 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_format_vic_1()
1325 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_format_vic_1()
1328 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_format_vic_1()
1331 KUNIT_ASSERT_TRUE(test, info->is_hdmi); in drm_test_check_output_bpc_format_vic_1()
1332 KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); in drm_test_check_output_bpc_format_vic_1()
1334 mode = drm_kunit_display_mode_from_cea_vic(test, drm, 1); in drm_test_check_output_bpc_format_vic_1()
1335 KUNIT_ASSERT_NOT_NULL(test, mode); in drm_test_check_output_bpc_format_vic_1()
1345 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_output_bpc_format_vic_1()
1350 ret = light_up_connector(test, drm, crtc, conn, mode, &ctx); in drm_test_check_output_bpc_format_vic_1()
1351 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_output_bpc_format_vic_1()
1354 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_output_bpc_format_vic_1()
1356 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8); in drm_test_check_output_bpc_format_vic_1()
1357 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_output_bpc_format_vic_1()
1364 * Test that if a driver supports only RGB but the screen also supports
1367 static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test) in drm_test_check_output_bpc_format_driver_rgb_only() argument
1380 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_format_driver_rgb_only()
1383 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_format_driver_rgb_only()
1388 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_format_driver_rgb_only()
1391 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_format_driver_rgb_only()
1394 KUNIT_ASSERT_TRUE(test, info->is_hdmi); in drm_test_check_output_bpc_format_driver_rgb_only()
1395 KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); in drm_test_check_output_bpc_format_driver_rgb_only()
1398 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_output_bpc_format_driver_rgb_only()
1410 KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_output_bpc_format_driver_rgb_only()
1413 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_output_bpc_format_driver_rgb_only()
1417 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_output_bpc_format_driver_rgb_only()
1418 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_output_bpc_format_driver_rgb_only()
1421 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_output_bpc_format_driver_rgb_only()
1423 KUNIT_EXPECT_LT(test, conn_state->hdmi.output_bpc, 12); in drm_test_check_output_bpc_format_driver_rgb_only()
1424 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_output_bpc_format_driver_rgb_only()
1431 * Test that if a screen supports only RGB but the driver also supports
1434 static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test) in drm_test_check_output_bpc_format_display_rgb_only() argument
1447 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_format_display_rgb_only()
1452 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_format_display_rgb_only()
1457 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_format_display_rgb_only()
1460 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_format_display_rgb_only()
1463 KUNIT_ASSERT_TRUE(test, info->is_hdmi); in drm_test_check_output_bpc_format_display_rgb_only()
1464 KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); in drm_test_check_output_bpc_format_display_rgb_only()
1467 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_output_bpc_format_display_rgb_only()
1479 KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_output_bpc_format_display_rgb_only()
1482 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_output_bpc_format_display_rgb_only()
1486 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_output_bpc_format_display_rgb_only()
1487 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_output_bpc_format_display_rgb_only()
1490 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_output_bpc_format_display_rgb_only()
1492 KUNIT_EXPECT_LT(test, conn_state->hdmi.output_bpc, 12); in drm_test_check_output_bpc_format_display_rgb_only()
1493 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_output_bpc_format_display_rgb_only()
1500 * Test that if a display supports higher bpc but the driver only
1504 static void drm_test_check_output_bpc_format_driver_8bpc_only(struct kunit *test) in drm_test_check_output_bpc_format_driver_8bpc_only() argument
1517 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_format_driver_8bpc_only()
1520 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_format_driver_8bpc_only()
1525 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_format_driver_8bpc_only()
1528 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_format_driver_8bpc_only()
1531 KUNIT_ASSERT_TRUE(test, info->is_hdmi); in drm_test_check_output_bpc_format_driver_8bpc_only()
1532 KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); in drm_test_check_output_bpc_format_driver_8bpc_only()
1535 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_output_bpc_format_driver_8bpc_only()
1542 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_output_bpc_format_driver_8bpc_only()
1546 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_output_bpc_format_driver_8bpc_only()
1547 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_output_bpc_format_driver_8bpc_only()
1550 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_output_bpc_format_driver_8bpc_only()
1552 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8); in drm_test_check_output_bpc_format_driver_8bpc_only()
1553 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_output_bpc_format_driver_8bpc_only()
1560 * Test that if a driver supports higher bpc but the display only
1564 static void drm_test_check_output_bpc_format_display_8bpc_only(struct kunit *test) in drm_test_check_output_bpc_format_display_8bpc_only() argument
1577 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_output_bpc_format_display_8bpc_only()
1582 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_output_bpc_format_display_8bpc_only()
1587 ret = set_connector_edid(test, conn, in drm_test_check_output_bpc_format_display_8bpc_only()
1590 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_output_bpc_format_display_8bpc_only()
1593 KUNIT_ASSERT_TRUE(test, info->is_hdmi); in drm_test_check_output_bpc_format_display_8bpc_only()
1594 KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); in drm_test_check_output_bpc_format_display_8bpc_only()
1597 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_output_bpc_format_display_8bpc_only()
1604 KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); in drm_test_check_output_bpc_format_display_8bpc_only()
1608 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_output_bpc_format_display_8bpc_only()
1609 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_output_bpc_format_display_8bpc_only()
1612 KUNIT_ASSERT_NOT_NULL(test, conn_state); in drm_test_check_output_bpc_format_display_8bpc_only()
1614 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 8); in drm_test_check_output_bpc_format_display_8bpc_only()
1615 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); in drm_test_check_output_bpc_format_display_8bpc_only()
1621 /* Test that atomic check succeeds when disabling a connector. */
1622 static void drm_test_check_disable_connector(struct kunit *test) in drm_test_check_disable_connector() argument
1635 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_disable_connector()
1638 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_disable_connector()
1644 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_disable_connector()
1648 ret = light_up_connector(test, drm, crtc, conn, preferred, &ctx); in drm_test_check_disable_connector()
1649 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_disable_connector()
1651 state = drm_kunit_helper_atomic_state_alloc(test, drm, &ctx); in drm_test_check_disable_connector()
1652 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); in drm_test_check_disable_connector()
1655 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); in drm_test_check_disable_connector()
1659 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_disable_connector()
1662 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); in drm_test_check_disable_connector()
1665 KUNIT_EXPECT_EQ(test, ret, 0); in drm_test_check_disable_connector()
1668 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_disable_connector()
1721 * Test that the value of the Broadcast RGB property out of reset is set
1724 static void drm_test_check_broadcast_rgb_value(struct kunit *test) in drm_test_check_broadcast_rgb_value() argument
1730 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_broadcast_rgb_value()
1733 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_broadcast_rgb_value()
1737 KUNIT_EXPECT_EQ(test, conn_state->hdmi.broadcast_rgb, DRM_HDMI_BROADCAST_RGB_AUTO); in drm_test_check_broadcast_rgb_value()
1741 * Test that if the connector was initialised with a maximum bpc of 8,
1746 static void drm_test_check_bpc_8_value(struct kunit *test) in drm_test_check_bpc_8_value() argument
1752 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_bpc_8_value()
1755 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_bpc_8_value()
1759 KUNIT_EXPECT_EQ(test, conn_state->max_bpc, 8); in drm_test_check_bpc_8_value()
1760 KUNIT_EXPECT_EQ(test, conn_state->max_requested_bpc, 8); in drm_test_check_bpc_8_value()
1761 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 0); in drm_test_check_bpc_8_value()
1765 * Test that if the connector was initialised with a maximum bpc of 10,
1770 static void drm_test_check_bpc_10_value(struct kunit *test) in drm_test_check_bpc_10_value() argument
1776 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_bpc_10_value()
1779 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_bpc_10_value()
1783 KUNIT_EXPECT_EQ(test, conn_state->max_bpc, 10); in drm_test_check_bpc_10_value()
1784 KUNIT_EXPECT_EQ(test, conn_state->max_requested_bpc, 10); in drm_test_check_bpc_10_value()
1785 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 0); in drm_test_check_bpc_10_value()
1789 * Test that if the connector was initialised with a maximum bpc of 12,
1794 static void drm_test_check_bpc_12_value(struct kunit *test) in drm_test_check_bpc_12_value() argument
1800 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_bpc_12_value()
1803 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_bpc_12_value()
1807 KUNIT_EXPECT_EQ(test, conn_state->max_bpc, 12); in drm_test_check_bpc_12_value()
1808 KUNIT_EXPECT_EQ(test, conn_state->max_requested_bpc, 12); in drm_test_check_bpc_12_value()
1809 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_bpc, 0); in drm_test_check_bpc_12_value()
1813 * Test that the value of the output format property out of reset is set
1816 static void drm_test_check_format_value(struct kunit *test) in drm_test_check_format_value() argument
1822 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_format_value()
1827 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_format_value()
1831 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, 0); in drm_test_check_format_value()
1835 * Test that the value of the output format property out of reset is set
1838 static void drm_test_check_tmds_char_value(struct kunit *test) in drm_test_check_tmds_char_value() argument
1844 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_tmds_char_value()
1849 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_tmds_char_value()
1853 KUNIT_EXPECT_EQ(test, conn_state->hdmi.tmds_char_rate, 0); in drm_test_check_tmds_char_value()
1872 * Test that the default behaviour for drm_hdmi_connector_mode_valid() is not
1876 static void drm_test_check_mode_valid(struct kunit *test) in drm_test_check_mode_valid() argument
1882 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_mode_valid()
1885 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_mode_valid()
1889 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_mode_valid()
1891 KUNIT_EXPECT_EQ(test, preferred->hdisplay, 1920); in drm_test_check_mode_valid()
1892 KUNIT_EXPECT_EQ(test, preferred->vdisplay, 1080); in drm_test_check_mode_valid()
1893 KUNIT_EXPECT_EQ(test, preferred->clock, 148500); in drm_test_check_mode_valid()
1897 * Test that the drm_hdmi_connector_mode_valid() will reject modes depending on
1901 static void drm_test_check_mode_valid_reject_rate(struct kunit *test) in drm_test_check_mode_valid_reject_rate() argument
1908 priv = drm_kunit_helper_connector_hdmi_init_funcs(test, in drm_test_check_mode_valid_reject_rate()
1912 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_mode_valid_reject_rate()
1916 ret = set_connector_edid(test, conn, in drm_test_check_mode_valid_reject_rate()
1919 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_mode_valid_reject_rate()
1926 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_mode_valid_reject_rate()
1927 KUNIT_EXPECT_EQ(test, preferred->hdisplay, 640); in drm_test_check_mode_valid_reject_rate()
1928 KUNIT_EXPECT_EQ(test, preferred->vdisplay, 480); in drm_test_check_mode_valid_reject_rate()
1929 KUNIT_EXPECT_EQ(test, preferred->clock, 25200); in drm_test_check_mode_valid_reject_rate()
1933 * Test that the drm_hdmi_connector_mode_valid() will not mark any modes as
1938 static void drm_test_check_mode_valid_reject(struct kunit *test) in drm_test_check_mode_valid_reject() argument
1945 priv = drm_kunit_helper_connector_hdmi_init_funcs(test, in drm_test_check_mode_valid_reject()
1949 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_mode_valid_reject()
1954 ret = set_connector_edid(test, conn, in drm_test_check_mode_valid_reject()
1957 KUNIT_ASSERT_EQ(test, ret, 0); in drm_test_check_mode_valid_reject()
1960 KUNIT_ASSERT_NULL(test, preferred); in drm_test_check_mode_valid_reject()
1964 * Test that the drm_hdmi_connector_mode_valid() will reject modes that don't
1968 static void drm_test_check_mode_valid_reject_max_clock(struct kunit *test) in drm_test_check_mode_valid_reject_max_clock() argument
1975 priv = drm_kunit_helper_connector_hdmi_init(test, in drm_test_check_mode_valid_reject_max_clock()
1978 KUNIT_ASSERT_NOT_NULL(test, priv); in drm_test_check_mode_valid_reject_max_clock()
1982 ret = set_connector_edid(test, conn, in drm_test_check_mode_valid_reject_max_clock()
1985 KUNIT_ASSERT_GT(test, ret, 0); in drm_test_check_mode_valid_reject_max_clock()
1987 KUNIT_ASSERT_EQ(test, conn->display_info.max_tmds_clock, 100 * 1000); in drm_test_check_mode_valid_reject_max_clock()
1990 KUNIT_ASSERT_NOT_NULL(test, preferred); in drm_test_check_mode_valid_reject_max_clock()
1991 KUNIT_EXPECT_EQ(test, preferred->hdisplay, 640); in drm_test_check_mode_valid_reject_max_clock()
1992 KUNIT_EXPECT_EQ(test, preferred->vdisplay, 480); in drm_test_check_mode_valid_reject_max_clock()
1993 KUNIT_EXPECT_EQ(test, preferred->clock, 25200); in drm_test_check_mode_valid_reject_max_clock()
2016 MODULE_DESCRIPTION("Kunit test for drm_hdmi_state_helper functions");