Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/tests: hdmi: Add connector disablement test

Atomic check should succeed when disabling a connector. Add a test
case drm_test_check_disabling_connector() to make sure of this.

Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250110084821.3239518-3-victor.liu@nxp.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>

authored by

Liu Ying and committed by
Maxime Ripard
e12b9dc6 0d337b40

+52
+52
drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
··· 1568 1568 KUNIT_EXPECT_EQ(test, conn_state->hdmi.output_format, HDMI_COLORSPACE_RGB); 1569 1569 } 1570 1570 1571 + /* Test that atomic check succeeds when disabling a connector. */ 1572 + static void drm_test_check_disable_connector(struct kunit *test) 1573 + { 1574 + struct drm_atomic_helper_connector_hdmi_priv *priv; 1575 + struct drm_modeset_acquire_ctx *ctx; 1576 + struct drm_connector_state *conn_state; 1577 + struct drm_crtc_state *crtc_state; 1578 + struct drm_atomic_state *state; 1579 + struct drm_display_mode *preferred; 1580 + struct drm_connector *conn; 1581 + struct drm_device *drm; 1582 + struct drm_crtc *crtc; 1583 + int ret; 1584 + 1585 + priv = drm_kunit_helper_connector_hdmi_init(test, 1586 + BIT(HDMI_COLORSPACE_RGB), 1587 + 8); 1588 + KUNIT_ASSERT_NOT_NULL(test, priv); 1589 + 1590 + ctx = drm_kunit_helper_acquire_ctx_alloc(test); 1591 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); 1592 + 1593 + conn = &priv->connector; 1594 + preferred = find_preferred_mode(conn); 1595 + KUNIT_ASSERT_NOT_NULL(test, preferred); 1596 + 1597 + drm = &priv->drm; 1598 + crtc = priv->crtc; 1599 + ret = light_up_connector(test, drm, crtc, conn, preferred, ctx); 1600 + KUNIT_ASSERT_EQ(test, ret, 0); 1601 + 1602 + state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx); 1603 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); 1604 + 1605 + crtc_state = drm_atomic_get_crtc_state(state, crtc); 1606 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); 1607 + 1608 + crtc_state->active = false; 1609 + ret = drm_atomic_set_mode_for_crtc(crtc_state, NULL); 1610 + KUNIT_EXPECT_EQ(test, ret, 0); 1611 + 1612 + conn_state = drm_atomic_get_connector_state(state, conn); 1613 + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); 1614 + 1615 + ret = drm_atomic_set_crtc_for_connector(conn_state, NULL); 1616 + KUNIT_EXPECT_EQ(test, ret, 0); 1617 + 1618 + ret = drm_atomic_check_only(state); 1619 + KUNIT_ASSERT_EQ(test, ret, 0); 1620 + } 1621 + 1571 1622 static struct kunit_case drm_atomic_helper_connector_hdmi_check_tests[] = { 1572 1623 KUNIT_CASE(drm_test_check_broadcast_rgb_auto_cea_mode), 1573 1624 KUNIT_CASE(drm_test_check_broadcast_rgb_auto_cea_mode_vic_1), ··· 1633 1582 */ 1634 1583 KUNIT_CASE(drm_test_check_broadcast_rgb_crtc_mode_changed), 1635 1584 KUNIT_CASE(drm_test_check_broadcast_rgb_crtc_mode_not_changed), 1585 + KUNIT_CASE(drm_test_check_disable_connector), 1636 1586 KUNIT_CASE(drm_test_check_hdmi_funcs_reject_rate), 1637 1587 KUNIT_CASE(drm_test_check_max_tmds_rate_bpc_fallback), 1638 1588 KUNIT_CASE(drm_test_check_max_tmds_rate_format_fallback),