From nobody Mon Feb 9 10:24:09 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB2AD14A4F9 for ; Wed, 29 Jan 2025 14:22:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160527; cv=none; b=ZVd4FufI/XWvSQ3xcb0RBtqtPV0LWlBSmmu9Zqt7iV9/QoGzZtJaPK3Y00hSpC7TTwWHSk/qlHUs/NXeTBpyiHGg3gIfT5UzPaB1B8tHjAxCIcS3iciB3DTlHCBJYTxKV9vzOkSRGRYpAMq21q+RtKLXC59FmCrAxoQVROO3uu4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160527; c=relaxed/simple; bh=7LU+104GySX0bit7gWT472rKcrJjYJPjMOVdrAH0IpE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GXR/3KDOhP0hKB/W4nDE2OS7/EuHUAWH++/LX+OPLE2B+9myQgURMLeDSf8/4Uf3WTKKag28x0iPZi98GtkFWMwZk4ZEQD+vf3aSZnuyXTiMTNBAvPZVNb0wZJ78FJJCxXhMwLveqWs2MTxXhvqHXx3SEdT8Yt9ITYqc5+HiXzs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D9ngO9gG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="D9ngO9gG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1F19C4CEDF; Wed, 29 Jan 2025 14:22:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1738160527; bh=7LU+104GySX0bit7gWT472rKcrJjYJPjMOVdrAH0IpE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=D9ngO9gGyaf3+23A86bR2YSKhbS8TL625OHoWYscB/mpsKmQT9hF1n0iQfepU7JZg fJCp/+GCmPi4ycRKpnoSGfkydjOrjI8MAZP/QM5oKPqpsqiW13YXhUC5mMlflwLHOe YHM8V2amzpzfsX5IKWQp/Fu4ECm+mC7+pyMIGQZnEwcbe/KIliRqHMtoUXbXvce1h/ ZINPOnNe7WyeGHajG0TPQ9vmBq9NLrU1EnzccgC53KDUKbVGRdoLPAlhdDV/JiTIno i2WOjKs3NnfXEObIiDurb3uku3ZkfLWD+gshXXA2wDqtoGqCr9QKhtociWn70aaPoa AD/J/Y+9I/pjQ== From: Maxime Ripard Date: Wed, 29 Jan 2025 15:21:53 +0100 Subject: [PATCH v2 1/4] drm/tests: hdmi: Fix WW_MUTEX_SLOWPATH failures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250129-test-kunit-v2-1-fe59c43805d5@kernel.org> References: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> In-Reply-To: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Maxime Ripard X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1838; i=mripard@kernel.org; h=from:subject:message-id; bh=7LU+104GySX0bit7gWT472rKcrJjYJPjMOVdrAH0IpE=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDOmzLNtsbhyqm7s/uU2i7E7ugy8vJCVOhXaLJKYH3+Zge bKxpNmsYyoLgzAng6yYIssTmbDTy9sXVznYr/wBM4eVCWQIAxenAExkRxdjfd11w9JHlpNSdEvd Fi1P4bCLOPf41Ofr85gO/u2dKBvw9VrwW4GlS1oX7/mQ/m5NyzI+RcaGvwrhYctrlWz+ZXR9mfx v76dO470Mk22ObBaep/Up9nLSrVg+VZHpf7Y+71A9IWB23i0dAA== X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D The light_up_connector helper function in the HDMI infrastructure unit tests uses drm_atomic_set_crtc_for_connector(), but fails when it returns an error. This function can return EDEADLK though if the sequence needs to be restarted, and WW_MUTEX_SLOWPATH is meant to test that we handle it properly. Let's handle EDEADLK and restart the sequence in our tests as well. Fixes: eb66d34d793e ("drm/tests: Add output bpc tests") Reported-by: Dave Airlie Closes: https://lore.kernel.org/r/CAPM=3D9tzJ4-ERDxvuwrCyUPY0=3D+P44orhp1kL= WVGL7MCfpQjMEQ@mail.gmail.com/ Link: https://lore.kernel.org/r/20241031091558.2435850-1-mripard@kernel.org Signed-off-by: Maxime Ripard Reviewed-by: Simona Vetter --- drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/g= pu/drm/tests/drm_hdmi_state_helper_test.c index c3b693bb966f1f8b04066d19f520bfa4bf11c23d..e814b538c46c4d342604436beca= 64ac0bdb31526 100644 --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c @@ -68,14 +68,21 @@ static int light_up_connector(struct kunit *test, int ret; =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); =20 +retry: conn_state =3D drm_atomic_get_connector_state(state, connector); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state); =20 ret =3D drm_atomic_set_crtc_for_connector(conn_state, crtc); + if (ret =3D=3D -EDEADLK) { + drm_atomic_state_clear(state); + ret =3D drm_modeset_backoff(ctx); + if (!ret) + goto retry; + } KUNIT_EXPECT_EQ(test, ret, 0); =20 crtc_state =3D drm_atomic_get_crtc_state(state, crtc); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state); =20 --=20 2.47.1 From nobody Mon Feb 9 10:24:09 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B20019580F for ; Wed, 29 Jan 2025 14:22:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160530; cv=none; b=df4iF4W+Q91FsHwIZQl1kdCMNvxjnmNTw2UjB8IDjFXXqOH2u2ueasSOYyWMsOK+wYxdFtlCi/kEQIy74Rkk+jaazm+atSXYUCwouwJwhwWH13DJvBrVqwSqIR781NVZkS9KS8xjAEuuckF2wd21hkbiOF1RF2emB88zn+swxl8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160530; c=relaxed/simple; bh=guYwAGilkamBvUFHHQMbkhaLhzjw2pN9TGS5PC/TRjc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GwXbRbNnIOKE3my4FWxuT5MqEThJcXW7NcqcE1w0p45Jt6aih2hEcxylX6fWT4rkveSYlDW/B3a4Rt5QO9VDsayt9LBP8MbjByA3+LfZ7SQGZk4SR0Yej5ezBIpDoYUMLXaw4/HWd/PcUz987GycQBH3vlzUD/qsedbpyePabvo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NC6LBlMV; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NC6LBlMV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF956C4CEDF; Wed, 29 Jan 2025 14:22:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1738160530; bh=guYwAGilkamBvUFHHQMbkhaLhzjw2pN9TGS5PC/TRjc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=NC6LBlMVQ0m0MbX7CDpGfAxF7DHJg+D5cGlewPlMIbUCTc6MJwU/P6bt6vcYvvLW5 ziWgIEEjjwJluNvnczOizD7gD1vQ3BwHf45xJDkXhe7jnvK4kEQoWUzfQmQUwITDGV SaOPcjbyxuwjVen56Okv+hUmUECrRtMJQ/fUAXO98Am3ISRFlqY2svCRIlhgY1KbEF ZSf0VFHATwxRnU2SKkX5WpfwJgIhj1Dpy63bEP4UKay7NynOJeG6CAq7P4gbXR8Y6H e2TXSOVcUsJhDtPTQoeJwVraDpfnEyOeS2VM4zMgX6S5G1t2wJCNUMW7GUWWlTgNxj W3fduTpweJ+Ig== From: Maxime Ripard Date: Wed, 29 Jan 2025 15:21:54 +0100 Subject: [PATCH v2 2/4] drm/tests: hdmi: Remove redundant assignments Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250129-test-kunit-v2-2-fe59c43805d5@kernel.org> References: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> In-Reply-To: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Maxime Ripard X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2410; i=mripard@kernel.org; h=from:subject:message-id; bh=guYwAGilkamBvUFHHQMbkhaLhzjw2pN9TGS5PC/TRjc=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDOmzLNt3bPdxu7zzmK/4ouoj/2tENibIuNu5ptmGTb6hc 0n877t1HVNZGIQ5GWTFFFmeyISdXt6+uMrBfuUPmDmsTCBDGLg4BWAiD0UZ690vPJjdPl/2v6h0 X0tZEOu0Czv2qEd2My4PuX5miUo2a5EjW8wbeebPd4t4f/tEF+7pZ6xTYwl1Vr4QnNl3VM54xel XueGKSgpJ/dvyApe4G7REbi59l9bSIL6pUGrL3MfG02dJRQIA X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Some tests have the drm pointer assigned multiple times to the same value. Drop the redundant assignments. Signed-off-by: Maxime Ripard Reviewed-by: Simona Vetter --- drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/g= pu/drm/tests/drm_hdmi_state_helper_test.c index e814b538c46c4d342604436beca64ac0bdb31526..32e0477deb45c1481a7d23bb6e6= a74de52845d1c 100644 --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c @@ -479,11 +479,10 @@ static void drm_test_check_broadcast_rgb_auto_cea_mod= e_vic_1(struct kunit *test) KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 mode =3D drm_kunit_display_mode_from_cea_vic(test, drm, 1); KUNIT_ASSERT_NOT_NULL(test, mode); =20 - drm =3D &priv->drm; crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, mode, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); @@ -593,11 +592,10 @@ static void drm_test_check_broadcast_rgb_full_cea_mod= e_vic_1(struct kunit *test) KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 mode =3D drm_kunit_display_mode_from_cea_vic(test, drm, 1); KUNIT_ASSERT_NOT_NULL(test, mode); =20 - drm =3D &priv->drm; crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, mode, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); @@ -709,11 +707,10 @@ static void drm_test_check_broadcast_rgb_limited_cea_= mode_vic_1(struct kunit *te KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 mode =3D drm_kunit_display_mode_from_cea_vic(test, drm, 1); KUNIT_ASSERT_NOT_NULL(test, mode); =20 - drm =3D &priv->drm; crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, mode, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); @@ -1311,11 +1308,10 @@ static void drm_test_check_output_bpc_format_vic_1(= struct kunit *test) * Thus, we have to calculate the rate by hand. */ rate =3D mode->clock * 1500; KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 - drm =3D &priv->drm; crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, mode, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; --=20 2.47.1 From nobody Mon Feb 9 10:24:09 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E24A195980 for ; Wed, 29 Jan 2025 14:22:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160534; cv=none; b=Fnv9K9a5yjFFYhMCB8/QRx843N0AYKaZuOs3uaetWv3PLQnVEBCpj0bhrcYDMfOmS36C2grhn+LSTf8C6eq2ORFnaXM2tzqzP2KyjXGkCZqHziE4uKqbi/GYsxLNydg5s+3nQFDreeHXTPrCugYpOnsbMcBcZB1J6uhy9AqCQ4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160534; c=relaxed/simple; bh=ADo9G62kpcf40b2yx8be7dGFxjUQenFK2NhtIVR00Kc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gD5w/CDUVogDXKpcE70b2lFFwwUreZVeHBJUC7hDsGr3KjMxYqED5J4k8GwkpEFwmtrsi2vM+K7Cemg2a2d9mfXDLTcL6Sre92tk1VTQV/HfF8Dg4t0MW/36DCYb2JNpc7enr3k/ZQ/QzncYpd0xLS0kUHycvIMyC3tiAasLZCA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NE7pqaJM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NE7pqaJM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16241C4CEE5; Wed, 29 Jan 2025 14:22:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1738160533; bh=ADo9G62kpcf40b2yx8be7dGFxjUQenFK2NhtIVR00Kc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=NE7pqaJMl7ndlRTcW/QDDNUlI3uuSLfU3Mv/LFW+Aw4Gmv88tPAzU7QLU8PvIprjG ZEyvX0wLGgdthgrLSAUu/4q3TeFcJZqkNk1wvxMl3+b83AR2cw8oE1al/yRcXIS4s3 8qTzVWoMWvfAVxc4eTVwXEB4jn3YdjTNjOVjU5TY+O4/Z6S558Jw9MJ9t/TQaA6rmB 6IGHxlvJqazuFR7C6QlV54LM8cPd6saCe8ug3/9kXvHV61q2XCGK3RpsiRHVbFEMIU FZ78cOPskN+OGdCyuTCm5S8ibmGW3QNAgdRin6Yrn/4wkQi41yzwN9aDZW0D/bFBc4 Cc4UoCcuBpVOQ== From: Maxime Ripard Date: Wed, 29 Jan 2025 15:21:55 +0100 Subject: [PATCH v2 3/4] drm/tests: hdmi: Reorder DRM entities variables assignment Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250129-test-kunit-v2-3-fe59c43805d5@kernel.org> References: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> In-Reply-To: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Maxime Ripard X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=17739; i=mripard@kernel.org; h=from:subject:message-id; bh=ADo9G62kpcf40b2yx8be7dGFxjUQenFK2NhtIVR00Kc=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDOmzLNt36RYI8fieP1oi9vzYzrtsi1dfY78QcvTNMjMBa 1fj5ZvlOqayMAhzMsiKKbI8kQk7vbx9cZWD/cofMHNYmUCGMHBxCsBENBczNqyfOqX+9NGNSYUe pouXNTLp+G2VLpz5bcbHvZ57mZNfugRenfaJ8fruzUXLPSO27+wqkmKs0z+Ykrjo/P1MB8Gn2w9 Vmrg6FDTopVxtlJd6sj9nfcfRGxPur6k1r0tmX89kUiCr4/0PAA== X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D The tests all deviate slightly in how they assign their local pointers to DRM entities. This makes refactoring pretty difficult, so let's just move the assignment as soon as the entities are allocated. Signed-off-by: Maxime Ripard --- drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 81 +++++++++++-------= ---- 1 file changed, 42 insertions(+), 39 deletions(-) diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/g= pu/drm/tests/drm_hdmi_state_helper_test.c index 32e0477deb45c1481a7d23bb6e6a74de52845d1c..c265d28631603f266ba606564e7= 7b8f965b7f83b 100644 --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c @@ -287,19 +287,20 @@ static void drm_test_check_broadcast_rgb_crtc_mode_ch= anged(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; + conn =3D &priv->connector; + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 - conn =3D &priv->connector; preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -350,19 +351,20 @@ static void drm_test_check_broadcast_rgb_crtc_mode_no= t_changed(struct kunit *tes priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; + conn =3D &priv->connector; + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 - conn =3D &priv->connector; preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -413,22 +415,22 @@ static void drm_test_check_broadcast_rgb_auto_cea_mod= e(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); =20 ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -524,22 +526,22 @@ static void drm_test_check_broadcast_rgb_full_cea_mod= e(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); =20 ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -639,22 +641,22 @@ static void drm_test_check_broadcast_rgb_limited_cea_= mode(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); =20 ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -756,10 +758,12 @@ static void drm_test_check_output_bpc_crtc_mode_chang= ed(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 10); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -768,12 +772,10 @@ static void drm_test_check_output_bpc_crtc_mode_chang= ed(struct kunit *test) KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -830,10 +832,12 @@ static void drm_test_check_output_bpc_crtc_mode_not_c= hanged(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 10); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -842,12 +846,10 @@ static void drm_test_check_output_bpc_crtc_mode_not_c= hanged(struct kunit *test) KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -901,10 +903,12 @@ static void drm_test_check_output_bpc_dvi(struct kuni= t *test) BIT(HDMI_COLORSPACE_YUV422) | BIT(HDMI_COLORSPACE_YUV444), 12); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_dvi_1080p, ARRAY_SIZE(test_edid_dvi_1080p)); KUNIT_ASSERT_GT(test, ret, 0); @@ -916,12 +920,10 @@ static void drm_test_check_output_bpc_dvi(struct kuni= t *test) KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -948,10 +950,12 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(st= ruct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -961,12 +965,10 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(st= ruct kunit *test) =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -995,10 +997,12 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc(s= truct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 10); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1008,12 +1012,10 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc= (struct kunit *test) =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1042,10 +1044,12 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc= (struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 12); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1055,12 +1059,10 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc= (struct kunit *test) =20 preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1093,19 +1095,20 @@ static void drm_test_check_hdmi_funcs_reject_rate(s= truct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; + conn =3D &priv->connector; + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); =20 - conn =3D &priv->connector; preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 /* You shouldn't be doing that at home. */ conn->hdmi.funcs =3D &reject_connector_hdmi_funcs; @@ -1149,10 +1152,12 @@ static void drm_test_check_max_tmds_rate_bpc_fallba= ck(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 12); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1172,12 +1177,10 @@ static void drm_test_check_max_tmds_rate_bpc_fallba= ck(struct kunit *test) KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 10, HDMI_COLORSPACE_RGB); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1218,10 +1221,12 @@ static void drm_test_check_max_tmds_rate_format_fal= lback(struct kunit *test) BIT(HDMI_COLORSPACE_YUV422) | BIT(HDMI_COLORSPACE_YUV444), 12); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1244,12 +1249,10 @@ static void drm_test_check_max_tmds_rate_format_fal= lback(struct kunit *test) KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV42= 2); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1341,10 +1344,12 @@ static void drm_test_check_output_bpc_format_driver= _rgb_only(struct kunit *test) priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 12); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1372,12 +1377,10 @@ static void drm_test_check_output_bpc_format_driver= _rgb_only(struct kunit *test) KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV42= 2); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1408,10 +1411,12 @@ static void drm_test_check_output_bpc_format_displa= y_rgb_only(struct kunit *test BIT(HDMI_COLORSPACE_YUV422) | BIT(HDMI_COLORSPACE_YUV444), 12); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1439,12 +1444,10 @@ static void drm_test_check_output_bpc_format_displa= y_rgb_only(struct kunit *test KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV42= 2); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1474,10 +1477,12 @@ static void drm_test_check_output_bpc_format_driver= _8bpc_only(struct kunit *test priv =3D drm_kunit_helper_connector_hdmi_init(test, BIT(HDMI_COLORSPACE_RGB), 8); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1497,12 +1502,10 @@ static void drm_test_check_output_bpc_format_driver= _8bpc_only(struct kunit *test * clock to actually use 12bpc. */ rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1534,10 +1537,12 @@ static void drm_test_check_output_bpc_format_displa= y_8bpc_only(struct kunit *tes BIT(HDMI_COLORSPACE_YUV422) | BIT(HDMI_COLORSPACE_YUV444), 12); KUNIT_ASSERT_NOT_NULL(test, priv); =20 + drm =3D &priv->drm; + crtc =3D priv->crtc; conn =3D &priv->connector; ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_max_340mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_max_340mhz)); KUNIT_ASSERT_GT(test, ret, 0); @@ -1557,12 +1562,10 @@ static void drm_test_check_output_bpc_format_displa= y_8bpc_only(struct kunit *tes * clock to actually use 12bpc. */ rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 - drm =3D &priv->drm; - crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); --=20 2.47.1 From nobody Mon Feb 9 10:24:09 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BCB51DE4E5 for ; Wed, 29 Jan 2025 14:22:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160538; cv=none; b=L9U9AGgpd6cEtWTnV718KQgdTQP3UagWEL/sIco7WY4mUQpu+fjNeL6XLZjHPrcezXb0qLNtr+Qvij7C73jIy3r3l1Dt6ss7ecSQojrP55EnoNumvgmrwLQtOUdylkR3KXYeOBQ6WmCBu4etBgIxG7SYVt7+vMO7ZeD5sYCehW8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738160538; c=relaxed/simple; bh=EhZYWNER23QUBxjobvk8JDtMawsPWxjBAGFhERxSkn4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j09MxKzHt4ekKTAS12Ue7dd5Fs84idLzoDdxrFYMCv8V6a1/srkMp9BrhRMQNlNYb+kauoUISBAHCdOvSUNSwGf7naEi71+oOoUyWiQGKNvossyTP6eT749ALq81UE3v5Fw4EyWiqv2M18bXniqNC6kacG8y5GBrLgAWOAMG47c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FhsWwlVe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FhsWwlVe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E0AAC4CED1; Wed, 29 Jan 2025 14:22:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1738160536; bh=EhZYWNER23QUBxjobvk8JDtMawsPWxjBAGFhERxSkn4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=FhsWwlVe5A/hk5pqHJDS4sferUKUeF21+5srLpiGs8jCVs69k3y8VuFH0q7cOJeCV yqKQBumrOe3hnzXCdPK+ViWeNQUBVG3P/vXZoWXSuLvkOoNGig9GwWyAK6NPNlArL4 X3JiUhblVPaqf3J6/jwtDVSXLl4afPHYuarAHX5evcp4fG6LFpu3N3NBvVahvRvKbf y2p/fL2HAzyT7PzMiW7UufBnAygVHHRxtj4jiZHrNXZNfXdfKNnobc89wPInWxLV+q zzshHRULcQKuoQjOqNl7f0FUvSRLfu7JB4Y2bMbusEe7pZkFPmNef3mofgVnxMdWE/ /9DYBzpkv+AsQ== From: Maxime Ripard Date: Wed, 29 Jan 2025 15:21:56 +0100 Subject: [PATCH v2 4/4] drm/tests: hdmi: Fix recursive locking Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250129-test-kunit-v2-4-fe59c43805d5@kernel.org> References: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> In-Reply-To: <20250129-test-kunit-v2-0-fe59c43805d5@kernel.org> To: Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Maxime Ripard X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=17211; i=mripard@kernel.org; h=from:subject:message-id; bh=EhZYWNER23QUBxjobvk8JDtMawsPWxjBAGFhERxSkn4=; b=owGbwMvMwCmsHn9OcpHtvjLG02pJDOmzLDuspKakTfzbuGXbZ+MFavERx9IPSU0vf3/jpcqLw 1MkE1cldExlYRDmZJAVU2R5IhN2enn74ioH+5U/YOawMoEMYeDiFICJdEkx1sp/KNu7eOpphddH 3t+UEPhx9+OsG66T5E9qfNgrN3FCMFuhwubrbys183nmPM46V3nSfQtjwwc/rWOLEjf+N59X9JB V+VMRh/VKn4j5+u3nZGV7o55nqhSEXTG+9Z1n+6Fks/x1LrM6AA== X-Developer-Key: i=mripard@kernel.org; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D The find_preferred_mode() functions takes the mode_config mutex, but due to the order most tests have, is called with the crtc_ww_class_mutex taken. This raises a warning for a circular dependency when running the tests with lockdep. Reorder the tests to call find_preferred_mode before the acquire context has been created to avoid the issue. Signed-off-by: Maxime Ripard --- drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 114 ++++++++++-------= ---- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/g= pu/drm/tests/drm_hdmi_state_helper_test.c index c265d28631603f266ba606564e77b8f965b7f83b..037c19875daf8b9b13e7702c864= 0dde1547f817c 100644 --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c @@ -291,16 +291,16 @@ static void drm_test_check_broadcast_rgb_crtc_mode_ch= anged(struct kunit *test) =20 drm =3D &priv->drm; crtc =3D priv->crtc; conn =3D &priv->connector; =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -355,16 +355,16 @@ static void drm_test_check_broadcast_rgb_crtc_mode_no= t_changed(struct kunit *tes =20 drm =3D &priv->drm; crtc =3D priv->crtc; conn =3D &priv->connector; =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -420,17 +420,17 @@ static void drm_test_check_broadcast_rgb_auto_cea_mod= e(struct kunit *test) drm =3D &priv->drm; crtc =3D priv->crtc; conn =3D &priv->connector; KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -531,17 +531,17 @@ static void drm_test_check_broadcast_rgb_full_cea_mod= e(struct kunit *test) drm =3D &priv->drm; crtc =3D priv->crtc; conn =3D &priv->connector; KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -646,17 +646,17 @@ static void drm_test_check_broadcast_rgb_limited_cea_= mode(struct kunit *test) drm =3D &priv->drm; crtc =3D priv->crtc; conn =3D &priv->connector; KUNIT_ASSERT_TRUE(test, conn->display_info.is_hdmi); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_NE(test, drm_match_cea_mode(preferred), 1); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -766,16 +766,16 @@ static void drm_test_check_output_bpc_crtc_mode_chang= ed(struct kunit *test) ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -840,16 +840,16 @@ static void drm_test_check_output_bpc_crtc_mode_not_c= hanged(struct kunit *test) ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 state =3D drm_kunit_helper_atomic_state_alloc(test, drm, ctx); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state); @@ -914,16 +914,16 @@ static void drm_test_check_output_bpc_dvi(struct kuni= t *test) KUNIT_ASSERT_GT(test, ret, 0); =20 info =3D &conn->display_info; KUNIT_ASSERT_FALSE(test, info->is_hdmi); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -958,17 +958,17 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(st= ruct kunit *test) ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_max_200mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_max_200mhz)); KUNIT_ASSERT_GT(test, ret, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1005,17 +1005,17 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc= (struct kunit *test) ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz)); KUNIT_ASSERT_GT(test, ret, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1052,17 +1052,17 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc= (struct kunit *test) ret =3D set_connector_edid(test, conn, test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz, ARRAY_SIZE(test_edid_hdmi_1080p_rgb_yuv_dc_max_340mhz)); KUNIT_ASSERT_GT(test, ret, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1099,16 +1099,16 @@ static void drm_test_check_hdmi_funcs_reject_rate(s= truct kunit *test) =20 drm =3D &priv->drm; crtc =3D priv->crtc; conn =3D &priv->connector; =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_ASSERT_EQ(test, ret, 0); =20 /* You shouldn't be doing that at home. */ conn->hdmi.funcs =3D &reject_connector_hdmi_funcs; @@ -1164,23 +1164,23 @@ static void drm_test_check_max_tmds_rate_bpc_fallba= ck(struct kunit *test) =20 info =3D &conn->display_info; KUNIT_ASSERT_TRUE(test, info->is_hdmi); KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB); KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 10, HDMI_COLORSPACE_RGB); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1233,13 +1233,10 @@ static void drm_test_check_max_tmds_rate_format_fal= lback(struct kunit *test) =20 info =3D &conn->display_info; KUNIT_ASSERT_TRUE(test, info->is_hdmi); KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); KUNIT_ASSERT_FALSE(test, preferred->flags & DRM_MODE_FLAG_DBLCLK); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 10, HDMI_COLORSPACE_RGB); @@ -1249,10 +1246,13 @@ static void drm_test_check_max_tmds_rate_format_fal= lback(struct kunit *test) KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV42= 2); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1295,13 +1295,10 @@ static void drm_test_check_output_bpc_format_vic_1(= struct kunit *test) =20 info =3D &conn->display_info; KUNIT_ASSERT_TRUE(test, info->is_hdmi); KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - mode =3D drm_kunit_display_mode_from_cea_vic(test, drm, 1); KUNIT_ASSERT_NOT_NULL(test, mode); =20 /* * NOTE: We can't use drm_hdmi_compute_mode_clock() @@ -1311,10 +1308,13 @@ static void drm_test_check_output_bpc_format_vic_1(= struct kunit *test) * Thus, we have to calculate the rate by hand. */ rate =3D mode->clock * 1500; KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + crtc =3D priv->crtc; ret =3D light_up_connector(test, drm, crtc, conn, mode, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; @@ -1356,13 +1356,10 @@ static void drm_test_check_output_bpc_format_driver= _rgb_only(struct kunit *test) =20 info =3D &conn->display_info; KUNIT_ASSERT_TRUE(test, info->is_hdmi); KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 /* * We're making sure that YUV422 would be the preferred option @@ -1377,10 +1374,13 @@ static void drm_test_check_output_bpc_format_driver= _rgb_only(struct kunit *test) KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV42= 2); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1423,13 +1423,10 @@ static void drm_test_check_output_bpc_format_displa= y_rgb_only(struct kunit *test =20 info =3D &conn->display_info; KUNIT_ASSERT_TRUE(test, info->is_hdmi); KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 /* * We're making sure that YUV422 would be the preferred option @@ -1444,10 +1441,13 @@ static void drm_test_check_output_bpc_format_displa= y_rgb_only(struct kunit *test KUNIT_ASSERT_GT(test, rate, info->max_tmds_clock * 1000); =20 rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_YUV42= 2); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1489,23 +1489,23 @@ static void drm_test_check_output_bpc_format_driver= _8bpc_only(struct kunit *test =20 info =3D &conn->display_info; KUNIT_ASSERT_TRUE(test, info->is_hdmi); KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 /* * We're making sure that we have headroom on the TMDS character * clock to actually use 12bpc. */ rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); @@ -1549,23 +1549,23 @@ static void drm_test_check_output_bpc_format_displa= y_8bpc_only(struct kunit *tes =20 info =3D &conn->display_info; KUNIT_ASSERT_TRUE(test, info->is_hdmi); KUNIT_ASSERT_GT(test, info->max_tmds_clock, 0); =20 - ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); - KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); - preferred =3D find_preferred_mode(conn); KUNIT_ASSERT_NOT_NULL(test, preferred); =20 /* * We're making sure that we have headroom on the TMDS character * clock to actually use 12bpc. */ rate =3D drm_hdmi_compute_mode_clock(preferred, 12, HDMI_COLORSPACE_RGB); KUNIT_ASSERT_LT(test, rate, info->max_tmds_clock * 1000); =20 + ctx =3D drm_kunit_helper_acquire_ctx_alloc(test); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ctx); + ret =3D light_up_connector(test, drm, crtc, conn, preferred, ctx); KUNIT_EXPECT_EQ(test, ret, 0); =20 conn_state =3D conn->state; KUNIT_ASSERT_NOT_NULL(test, conn_state); --=20 2.47.1