@@ -257,10 +257,16 @@ static void drm_test_check_broadcast_rgb_crtc_mode_changed(struct kunit *test)
257257
258258 drm_modeset_acquire_init (& ctx , 0 );
259259
260+ retry_conn_enable :
260261 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
261262 crtc , conn ,
262263 preferred ,
263264 & ctx );
265+ if (ret == - EDEADLK ) {
266+ ret = drm_modeset_backoff (& ctx );
267+ if (!ret )
268+ goto retry_conn_enable ;
269+ }
264270 KUNIT_ASSERT_EQ (test , ret , 0 );
265271
266272 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -326,10 +332,16 @@ static void drm_test_check_broadcast_rgb_crtc_mode_not_changed(struct kunit *tes
326332
327333 drm_modeset_acquire_init (& ctx , 0 );
328334
335+ retry_conn_enable :
329336 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
330337 crtc , conn ,
331338 preferred ,
332339 & ctx );
340+ if (ret == - EDEADLK ) {
341+ ret = drm_modeset_backoff (& ctx );
342+ if (!ret )
343+ goto retry_conn_enable ;
344+ }
333345 KUNIT_ASSERT_EQ (test , ret , 0 );
334346
335347 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -397,10 +409,16 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode(struct kunit *test)
397409
398410 drm_modeset_acquire_init (& ctx , 0 );
399411
412+ retry_conn_enable :
400413 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
401414 crtc , conn ,
402415 preferred ,
403416 & ctx );
417+ if (ret == - EDEADLK ) {
418+ ret = drm_modeset_backoff (& ctx );
419+ if (!ret )
420+ goto retry_conn_enable ;
421+ }
404422 KUNIT_ASSERT_EQ (test , ret , 0 );
405423
406424 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -457,10 +475,17 @@ static void drm_test_check_broadcast_rgb_auto_cea_mode_vic_1(struct kunit *test)
457475 KUNIT_ASSERT_NOT_NULL (test , mode );
458476
459477 crtc = priv -> crtc ;
478+
479+ retry_conn_enable :
460480 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
461481 crtc , conn ,
462482 mode ,
463483 & ctx );
484+ if (ret == - EDEADLK ) {
485+ ret = drm_modeset_backoff (& ctx );
486+ if (!ret )
487+ goto retry_conn_enable ;
488+ }
464489 KUNIT_ASSERT_EQ (test , ret , 0 );
465490
466491 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -518,10 +543,16 @@ static void drm_test_check_broadcast_rgb_full_cea_mode(struct kunit *test)
518543
519544 drm_modeset_acquire_init (& ctx , 0 );
520545
546+ retry_conn_enable :
521547 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
522548 crtc , conn ,
523549 preferred ,
524550 & ctx );
551+ if (ret == - EDEADLK ) {
552+ ret = drm_modeset_backoff (& ctx );
553+ if (!ret )
554+ goto retry_conn_enable ;
555+ }
525556 KUNIT_ASSERT_EQ (test , ret , 0 );
526557
527558 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -580,10 +611,17 @@ static void drm_test_check_broadcast_rgb_full_cea_mode_vic_1(struct kunit *test)
580611 KUNIT_ASSERT_NOT_NULL (test , mode );
581612
582613 crtc = priv -> crtc ;
614+
615+ retry_conn_enable :
583616 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
584617 crtc , conn ,
585618 mode ,
586619 & ctx );
620+ if (ret == - EDEADLK ) {
621+ ret = drm_modeset_backoff (& ctx );
622+ if (!ret )
623+ goto retry_conn_enable ;
624+ }
587625 KUNIT_ASSERT_EQ (test , ret , 0 );
588626
589627 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -643,10 +681,16 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode(struct kunit *test)
643681
644682 drm_modeset_acquire_init (& ctx , 0 );
645683
684+ retry_conn_enable :
646685 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
647686 crtc , conn ,
648687 preferred ,
649688 & ctx );
689+ if (ret == - EDEADLK ) {
690+ ret = drm_modeset_backoff (& ctx );
691+ if (!ret )
692+ goto retry_conn_enable ;
693+ }
650694 KUNIT_ASSERT_EQ (test , ret , 0 );
651695
652696 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -705,10 +749,17 @@ static void drm_test_check_broadcast_rgb_limited_cea_mode_vic_1(struct kunit *te
705749 KUNIT_ASSERT_NOT_NULL (test , mode );
706750
707751 crtc = priv -> crtc ;
752+
753+ retry_conn_enable :
708754 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
709755 crtc , conn ,
710756 mode ,
711757 & ctx );
758+ if (ret == - EDEADLK ) {
759+ ret = drm_modeset_backoff (& ctx );
760+ if (!ret )
761+ goto retry_conn_enable ;
762+ }
712763 KUNIT_ASSERT_EQ (test , ret , 0 );
713764
714765 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -870,10 +921,16 @@ static void drm_test_check_output_bpc_crtc_mode_changed(struct kunit *test)
870921
871922 drm_modeset_acquire_init (& ctx , 0 );
872923
924+ retry_conn_enable :
873925 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
874926 crtc , conn ,
875927 preferred ,
876928 & ctx );
929+ if (ret == - EDEADLK ) {
930+ ret = drm_modeset_backoff (& ctx );
931+ if (!ret )
932+ goto retry_conn_enable ;
933+ }
877934 KUNIT_ASSERT_EQ (test , ret , 0 );
878935
879936 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -946,10 +1003,16 @@ static void drm_test_check_output_bpc_crtc_mode_not_changed(struct kunit *test)
9461003
9471004 drm_modeset_acquire_init (& ctx , 0 );
9481005
1006+ retry_conn_enable :
9491007 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
9501008 crtc , conn ,
9511009 preferred ,
9521010 & ctx );
1011+ if (ret == - EDEADLK ) {
1012+ ret = drm_modeset_backoff (& ctx );
1013+ if (!ret )
1014+ goto retry_conn_enable ;
1015+ }
9531016 KUNIT_ASSERT_EQ (test , ret , 0 );
9541017
9551018 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
@@ -1022,10 +1085,16 @@ static void drm_test_check_output_bpc_dvi(struct kunit *test)
10221085
10231086 drm_modeset_acquire_init (& ctx , 0 );
10241087
1088+ retry_conn_enable :
10251089 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
10261090 crtc , conn ,
10271091 preferred ,
10281092 & ctx );
1093+ if (ret == - EDEADLK ) {
1094+ ret = drm_modeset_backoff (& ctx );
1095+ if (!ret )
1096+ goto retry_conn_enable ;
1097+ }
10291098 KUNIT_ASSERT_EQ (test , ret , 0 );
10301099
10311100 conn_state = conn -> state ;
@@ -1069,10 +1138,16 @@ static void drm_test_check_tmds_char_rate_rgb_8bpc(struct kunit *test)
10691138
10701139 drm_modeset_acquire_init (& ctx , 0 );
10711140
1141+ retry_conn_enable :
10721142 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
10731143 crtc , conn ,
10741144 preferred ,
10751145 & ctx );
1146+ if (ret == - EDEADLK ) {
1147+ ret = drm_modeset_backoff (& ctx );
1148+ if (!ret )
1149+ goto retry_conn_enable ;
1150+ }
10761151 KUNIT_ASSERT_EQ (test , ret , 0 );
10771152
10781153 conn_state = conn -> state ;
@@ -1118,10 +1193,16 @@ static void drm_test_check_tmds_char_rate_rgb_10bpc(struct kunit *test)
11181193
11191194 drm_modeset_acquire_init (& ctx , 0 );
11201195
1196+ retry_conn_enable :
11211197 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
11221198 crtc , conn ,
11231199 preferred ,
11241200 & ctx );
1201+ if (ret == - EDEADLK ) {
1202+ ret = drm_modeset_backoff (& ctx );
1203+ if (!ret )
1204+ goto retry_conn_enable ;
1205+ }
11251206 KUNIT_ASSERT_EQ (test , ret , 0 );
11261207
11271208 conn_state = conn -> state ;
@@ -1167,10 +1248,16 @@ static void drm_test_check_tmds_char_rate_rgb_12bpc(struct kunit *test)
11671248
11681249 drm_modeset_acquire_init (& ctx , 0 );
11691250
1251+ retry_conn_enable :
11701252 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
11711253 crtc , conn ,
11721254 preferred ,
11731255 & ctx );
1256+ if (ret == - EDEADLK ) {
1257+ ret = drm_modeset_backoff (& ctx );
1258+ if (!ret )
1259+ goto retry_conn_enable ;
1260+ }
11741261 KUNIT_ASSERT_EQ (test , ret , 0 );
11751262
11761263 conn_state = conn -> state ;
@@ -1218,10 +1305,16 @@ static void drm_test_check_hdmi_funcs_reject_rate(struct kunit *test)
12181305
12191306 drm_modeset_acquire_init (& ctx , 0 );
12201307
1308+ retry_conn_enable :
12211309 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
12221310 crtc , conn ,
12231311 preferred ,
12241312 & ctx );
1313+ if (ret == - EDEADLK ) {
1314+ ret = drm_modeset_backoff (& ctx );
1315+ if (!ret )
1316+ goto retry_conn_enable ;
1317+ }
12251318 KUNIT_ASSERT_EQ (test , ret , 0 );
12261319
12271320 /* You shouldn't be doing that at home. */
@@ -1292,10 +1385,16 @@ static void drm_test_check_max_tmds_rate_bpc_fallback_rgb(struct kunit *test)
12921385
12931386 drm_modeset_acquire_init (& ctx , 0 );
12941387
1388+ retry_conn_enable :
12951389 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
12961390 crtc , conn ,
12971391 preferred ,
12981392 & ctx );
1393+ if (ret == - EDEADLK ) {
1394+ ret = drm_modeset_backoff (& ctx );
1395+ if (!ret )
1396+ goto retry_conn_enable ;
1397+ }
12991398 KUNIT_EXPECT_EQ (test , ret , 0 );
13001399
13011400 conn_state = conn -> state ;
@@ -1440,10 +1539,16 @@ static void drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422(struct kunit
14401539
14411540 drm_modeset_acquire_init (& ctx , 0 );
14421541
1542+ retry_conn_enable :
14431543 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
14441544 crtc , conn ,
14451545 preferred ,
14461546 & ctx );
1547+ if (ret == - EDEADLK ) {
1548+ ret = drm_modeset_backoff (& ctx );
1549+ if (!ret )
1550+ goto retry_conn_enable ;
1551+ }
14471552 KUNIT_EXPECT_EQ (test , ret , 0 );
14481553
14491554 conn_state = conn -> state ;
@@ -1669,10 +1774,17 @@ static void drm_test_check_output_bpc_format_vic_1(struct kunit *test)
16691774 drm_modeset_acquire_init (& ctx , 0 );
16701775
16711776 crtc = priv -> crtc ;
1777+
1778+ retry_conn_enable :
16721779 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
16731780 crtc , conn ,
16741781 mode ,
16751782 & ctx );
1783+ if (ret == - EDEADLK ) {
1784+ ret = drm_modeset_backoff (& ctx );
1785+ if (!ret )
1786+ goto retry_conn_enable ;
1787+ }
16761788 KUNIT_EXPECT_EQ (test , ret , 0 );
16771789
16781790 conn_state = conn -> state ;
@@ -1736,10 +1848,16 @@ static void drm_test_check_output_bpc_format_driver_rgb_only(struct kunit *test)
17361848
17371849 drm_modeset_acquire_init (& ctx , 0 );
17381850
1851+ retry_conn_enable :
17391852 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
17401853 crtc , conn ,
17411854 preferred ,
17421855 & ctx );
1856+ if (ret == - EDEADLK ) {
1857+ ret = drm_modeset_backoff (& ctx );
1858+ if (!ret )
1859+ goto retry_conn_enable ;
1860+ }
17431861 KUNIT_EXPECT_EQ (test , ret , 0 );
17441862
17451863 conn_state = conn -> state ;
@@ -1805,10 +1923,16 @@ static void drm_test_check_output_bpc_format_display_rgb_only(struct kunit *test
18051923
18061924 drm_modeset_acquire_init (& ctx , 0 );
18071925
1926+ retry_conn_enable :
18081927 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
18091928 crtc , conn ,
18101929 preferred ,
18111930 & ctx );
1931+ if (ret == - EDEADLK ) {
1932+ ret = drm_modeset_backoff (& ctx );
1933+ if (!ret )
1934+ goto retry_conn_enable ;
1935+ }
18121936 KUNIT_EXPECT_EQ (test , ret , 0 );
18131937
18141938 conn_state = conn -> state ;
@@ -1865,10 +1989,16 @@ static void drm_test_check_output_bpc_format_driver_8bpc_only(struct kunit *test
18651989
18661990 drm_modeset_acquire_init (& ctx , 0 );
18671991
1992+ retry_conn_enable :
18681993 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
18691994 crtc , conn ,
18701995 preferred ,
18711996 & ctx );
1997+ if (ret == - EDEADLK ) {
1998+ ret = drm_modeset_backoff (& ctx );
1999+ if (!ret )
2000+ goto retry_conn_enable ;
2001+ }
18722002 KUNIT_EXPECT_EQ (test , ret , 0 );
18732003
18742004 conn_state = conn -> state ;
@@ -1927,10 +2057,16 @@ static void drm_test_check_output_bpc_format_display_8bpc_only(struct kunit *tes
19272057
19282058 drm_modeset_acquire_init (& ctx , 0 );
19292059
2060+ retry_conn_enable :
19302061 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
19312062 crtc , conn ,
19322063 preferred ,
19332064 & ctx );
2065+ if (ret == - EDEADLK ) {
2066+ ret = drm_modeset_backoff (& ctx );
2067+ if (!ret )
2068+ goto retry_conn_enable ;
2069+ }
19342070 KUNIT_EXPECT_EQ (test , ret , 0 );
19352071
19362072 conn_state = conn -> state ;
@@ -1970,10 +2106,17 @@ static void drm_test_check_disable_connector(struct kunit *test)
19702106
19712107 drm = & priv -> drm ;
19722108 crtc = priv -> crtc ;
2109+
2110+ retry_conn_enable :
19732111 ret = drm_kunit_helper_enable_crtc_connector (test , drm ,
19742112 crtc , conn ,
19752113 preferred ,
19762114 & ctx );
2115+ if (ret == - EDEADLK ) {
2116+ ret = drm_modeset_backoff (& ctx );
2117+ if (!ret )
2118+ goto retry_conn_enable ;
2119+ }
19772120 KUNIT_ASSERT_EQ (test , ret , 0 );
19782121
19792122 state = drm_kunit_helper_atomic_state_alloc (test , drm , & ctx );
0 commit comments