From: Alex Hung <[email protected]>

Extract common allocation and setup patterns from KUnit test
files into a dedicated helpers module to reduce duplication.

Add tests/amdgpu_dm_kunit_helpers.c with shared helpers:
- dm_kunit_alloc_adev: allocate amdgpu_device via DRM mock
- dm_kunit_alloc_link: allocate zeroed dc_link
- dm_kunit_alloc_link_with_ctx: allocate dc_link with dc_context
- dm_kunit_alloc_dm: allocate display_manager with DC state
- dm_kunit_alloc_stream: allocate dc_stream_state with link
- dm_kunit_add_stream_to_state: wire stream into dc_state
- dm_kunit_alloc_connector: allocate connector wired to device

Update 10 test files to use the shared helpers, removing
duplicated local alloc_test_adev, alloc_test_link,
alloc_test_dm, alloc_test_stream, and add_test_stream
functions.

Add missing MODULE_DESCRIPTION() macro to suppress modpost warning:
WARNING: modpost: missing MODULE_DESCRIPTION() in
amdgpu_dm_kunit_helpers.o

Assisted-by: Copilot:Claude-Opus-4.6
Reviewed-by: Bhawanpreet Lakha <[email protected]>
Signed-off-by: Alex Hung <[email protected]>
Signed-off-by: George Zhang <[email protected]>
---
 .../drm/amd/display/amdgpu_dm/tests/Makefile  |   1 +
 .../tests/amdgpu_dm_backlight_test.c          |  21 +--
 .../amdgpu_dm/tests/amdgpu_dm_colorop_test.c  |  13 +-
 .../amdgpu_dm/tests/amdgpu_dm_crtc_test.c     |  15 +-
 .../amdgpu_dm/tests/amdgpu_dm_helpers_test.c  |  19 +--
 .../amdgpu_dm/tests/amdgpu_dm_irq_test.c      |  37 +----
 .../amdgpu_dm/tests/amdgpu_dm_ism_test.c      |  39 ++---
 .../amdgpu_dm/tests/amdgpu_dm_kunit_helpers.c | 142 ++++++++++++++++++
 .../tests/amdgpu_dm_kunit_test_helpers.h      |  32 ++++
 .../tests/amdgpu_dm_mst_types_test.c          |  13 +-
 .../amdgpu_dm/tests/amdgpu_dm_psr_test.c      | 126 ++++------------
 .../amdgpu_dm/tests/amdgpu_dm_replay_test.c   |  19 +--
 .../amdgpu_dm/tests/amdgpu_dm_wb_test.c       |  18 +--
 13 files changed, 252 insertions(+), 243 deletions(-)
 create mode 100644 
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_helpers.c
 create mode 100644 
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_test_helpers.h

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/Makefile 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/Makefile
index 4d89ad8a6df6..1592e8dae1a9 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/Makefile
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/Makefile
@@ -11,6 +11,7 @@ ccflags-y += -I$(src)/../../../amdgpu
 ccflags-y += -I$(src)/../../../amdkfd
 ccflags-y += -I$(src)/../../../include
 
+obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_kunit_helpers.o
 obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_crc_test.o
 obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_hdcp_test.o
 obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_audio_test.o
diff --git 
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c
index 0e9de940e5a8..fff50c1325c6 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_backlight_test.c
@@ -13,6 +13,7 @@
 #include "amdgpu_mode.h"
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_backlight.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 #include "amd_shared.h"
 #include "dc/inc/hw/panel_cntl.h"
 
@@ -22,16 +23,6 @@ struct dm_backlight_connector_fixture {
        struct dc_link *link;
 };
 
-static struct amdgpu_display_manager *alloc_test_dm(struct kunit *test)
-{
-       struct amdgpu_display_manager *dm;
-
-       dm = kunit_kzalloc(test, sizeof(*dm), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, dm);
-
-       return dm;
-}
-
 static void setup_test_connector(struct kunit *test,
                                 struct dm_backlight_connector_fixture *fixture,
                                 int bl_idx, enum signal_type signal)
@@ -57,7 +48,7 @@ static void setup_test_connector(struct kunit *test,
  */
 static void dm_test_backlight_device_index_matches_second(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct backlight_device *bd0;
        struct backlight_device *bd1;
 
@@ -79,7 +70,7 @@ static void 
dm_test_backlight_device_index_matches_second(struct kunit *test)
  */
 static void dm_test_backlight_device_index_missing_fallback(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct backlight_device *known_bd;
        struct backlight_device *unknown_bd;
 
@@ -102,7 +93,7 @@ static void 
dm_test_backlight_device_index_missing_fallback(struct kunit *test)
  */
 static void dm_test_backlight_caps_valid_short_circuit(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct amdgpu_dm_backlight_caps *caps = &dm->backlight_caps[0];
 
        caps->caps_valid = true;
@@ -125,7 +116,7 @@ static void 
dm_test_backlight_caps_valid_short_circuit(struct kunit *test)
  */
 static void dm_test_backlight_caps_aux_support_noop(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct amdgpu_dm_backlight_caps *caps = &dm->backlight_caps[0];
 
        caps->caps_valid = false;
@@ -146,7 +137,7 @@ static void dm_test_backlight_caps_aux_support_noop(struct 
kunit *test)
  */
 static void dm_test_backlight_caps_non_aux_sets_defaults(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct amdgpu_dm_backlight_caps *caps = &dm->backlight_caps[0];
 
        caps->caps_valid = false;
diff --git 
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_colorop_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_colorop_test.c
index b28a165b213e..2e557ff66818 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_colorop_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_colorop_test.c
@@ -12,6 +12,7 @@
 #include "dc.h"
 #include "amdgpu.h"
 #include "amdgpu_dm_colorop.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 
 /* Tests for amdgpu_dm_supported_degam_tfs */
 
@@ -222,19 +223,11 @@ static void 
dm_test_initialize_default_pipeline_caps(struct kunit *test,
        struct amdgpu_device *adev;
        struct drm_device *drm;
        struct drm_plane *plane;
-       struct device *dev;
        struct dc *dc;
        int ret;
 
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
-
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                  sizeof(*adev),
-                                                  offsetof(struct 
amdgpu_device, ddev),
-                                                  DRIVER_MODESET);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-       adev = drm_to_adev(drm);
+       adev = dm_kunit_alloc_adev(test);
+       drm = &adev->ddev;
 
        dc = kunit_kzalloc(test, sizeof(*dc), GFP_KERNEL);
        KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dc);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crtc_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crtc_test.c
index c83bd3e074f1..0edaf969f16b 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crtc_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_crtc_test.c
@@ -15,6 +15,7 @@
 #include "amdgpu_mode.h"
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_crtc.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 #include "amdgpu_dm_irq_params.h"
 
 /* Tests for amdgpu_dm_crtc_modeset_required() */
@@ -435,23 +436,13 @@ static void dm_test_crtc_set_vupdate_irq_no_otg(struct 
kunit *test)
 {
        struct amdgpu_crtc *acrtc;
        struct amdgpu_device *adev;
-       struct drm_device *drm;
-       struct device *dev;
 
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
-
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                  sizeof(*adev),
-                                                  offsetof(struct 
amdgpu_device, ddev),
-                                                  DRIVER_MODESET);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-       adev = drm_to_adev(drm);
+       adev = dm_kunit_alloc_adev(test);
 
        acrtc = kunit_kzalloc(test, sizeof(*acrtc), GFP_KERNEL);
        KUNIT_ASSERT_NOT_ERR_OR_NULL(test, acrtc);
 
-       acrtc->base.dev = drm;
+       acrtc->base.dev = &adev->ddev;
        acrtc->otg_inst = -1;
 
        KUNIT_EXPECT_EQ(test, amdgpu_dm_crtc_set_vupdate_irq(&acrtc->base, 
true), 0);
diff --git 
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
index 14004ff87c9b..33014a2d2222 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_helpers_test.c
@@ -16,6 +16,7 @@
 #include "dm_helpers.h"
 #include "ddc_service_types.h"
 #include "amdgpu_dm_helpers.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 
 /* Tests for edid_extract_panel_id() */
 
@@ -552,26 +553,14 @@ static void dm_test_mst_start_top_mgr_boot(struct kunit 
*test)
 {
        struct amdgpu_dm_connector *aconnector;
        struct amdgpu_device *adev;
-       struct drm_device *drm;
-       struct device *dev;
        struct dc_link *link;
 
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
+       adev = dm_kunit_alloc_adev(test);
 
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                 sizeof(*adev),
-                                                 offsetof(struct 
amdgpu_device, ddev),
-                                                 DRIVER_MODESET);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-       adev = drm_to_adev(drm);
+       link = dm_kunit_alloc_link(test);
 
-       aconnector = kunit_kzalloc(test, sizeof(*aconnector), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, aconnector);
-       aconnector->base.dev = drm;
+       aconnector = dm_kunit_alloc_connector(test, adev, NULL);
 
-       link = kunit_kzalloc(test, sizeof(*link), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, link);
        link->priv = aconnector;
 
        KUNIT_EXPECT_TRUE(test, dm_helpers_dp_mst_start_top_mgr(NULL, link, 
true));
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c
index 525caa0b1f6a..a73a6dd146d6 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_irq_test.c
@@ -13,6 +13,7 @@
 #include "amdgpu_mode.h"
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_irq.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 #include "dmub/dmub_srv.h"
 
 static void dm_test_irq_handler(void *arg)
@@ -778,17 +779,9 @@ static void 
dm_test_get_crtc_by_otg_inst_returns_match(struct kunit *test)
        struct amdgpu_crtc *acrtc_a, *acrtc_b;
        struct amdgpu_device *adev;
        struct drm_device *drm;
-       struct device *dev;
 
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
-
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                  sizeof(*adev),
-                                                  offsetof(struct 
amdgpu_device, ddev),
-                                                  DRIVER_MODESET);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-       adev = drm_to_adev(drm);
+       adev = dm_kunit_alloc_adev(test);
+       drm = &adev->ddev;
 
        acrtc_a = kunit_kzalloc(test, sizeof(*acrtc_a), GFP_KERNEL);
        KUNIT_ASSERT_NOT_ERR_OR_NULL(test, acrtc_a);
@@ -819,17 +812,9 @@ static void 
dm_test_get_crtc_by_otg_inst_returns_null(struct kunit *test)
        struct amdgpu_crtc *acrtc;
        struct amdgpu_device *adev;
        struct drm_device *drm;
-       struct device *dev;
-
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
 
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                  sizeof(*adev),
-                                                  offsetof(struct 
amdgpu_device, ddev),
-                                                  DRIVER_MODESET);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-       adev = drm_to_adev(drm);
+       adev = dm_kunit_alloc_adev(test);
+       drm = &adev->ddev;
 
        acrtc = kunit_kzalloc(test, sizeof(*acrtc), GFP_KERNEL);
        KUNIT_ASSERT_NOT_ERR_OR_NULL(test, acrtc);
@@ -851,18 +836,8 @@ static void 
dm_test_get_crtc_by_otg_inst_returns_null(struct kunit *test)
 static void dm_test_get_crtc_by_otg_inst_empty_list(struct kunit *test)
 {
        struct amdgpu_device *adev;
-       struct drm_device *drm;
-       struct device *dev;
-
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
 
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                  sizeof(*adev),
-                                                  offsetof(struct 
amdgpu_device, ddev),
-                                                  DRIVER_MODESET);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-       adev = drm_to_adev(drm);
+       adev = dm_kunit_alloc_adev(test);
 
        KUNIT_EXPECT_NULL(test, amdgpu_dm_get_crtc_by_otg_inst(adev, 0));
 }
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_ism_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_ism_test.c
index f3b3f77aafd5..7dfb3b351d20 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_ism_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_ism_test.c
@@ -9,20 +9,7 @@
 
 #include "dc.h"
 #include "amdgpu_dm_ism.h"
-
-/*
- * Helper: allocate and zero-initialise a dc_stream_state for timing tests.
- * Only the timing sub-struct is accessed by the functions under test.
- */
-static struct dc_stream_state *alloc_test_stream(struct kunit *test)
-{
-       struct dc_stream_state *stream;
-
-       stream = kunit_kzalloc(test, sizeof(*stream), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, stream);
-
-       return stream;
-}
+#include "amdgpu_dm_kunit_test_helpers.h"
 
 /*
  * Helper: allocate and zero-initialise an ISM instance.
@@ -275,7 +262,7 @@ static void dm_test_ism_sso_delay_null_stream(struct kunit 
*test)
 static void dm_test_ism_sso_delay_zero_frames(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
 
        stream->timing.v_total = 1125;
        stream->timing.h_total = 2200;
@@ -288,7 +275,7 @@ static void dm_test_ism_sso_delay_zero_frames(struct kunit 
*test)
 static void dm_test_ism_sso_delay_1080p60_3frames(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t expected_one_frame_ns, expected;
 
        /*
@@ -311,7 +298,7 @@ static void dm_test_ism_sso_delay_1080p60_3frames(struct 
kunit *test)
 static void dm_test_ism_sso_delay_4k60_1frame(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t expected_one_frame_ns;
 
        /*
@@ -347,7 +334,7 @@ static void dm_test_ism_idle_delay_null_stream(struct kunit 
*test)
 static void dm_test_ism_idle_delay_zero_filter_frames(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
 
        stream->timing.v_total = 1125;
        stream->timing.h_total = 2200;
@@ -361,7 +348,7 @@ static void 
dm_test_ism_idle_delay_zero_filter_frames(struct kunit *test)
 static void dm_test_ism_idle_delay_zero_entry_count(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
 
        stream->timing.v_total = 1125;
        stream->timing.h_total = 2200;
@@ -376,7 +363,7 @@ static void dm_test_ism_idle_delay_zero_entry_count(struct 
kunit *test)
 static void dm_test_ism_idle_delay_zero_delay_frames(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
 
        stream->timing.v_total = 1125;
        stream->timing.h_total = 2200;
@@ -392,7 +379,7 @@ static void dm_test_ism_idle_delay_zero_delay_frames(struct 
kunit *test)
 static void dm_test_ism_idle_delay_no_short_idles(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t one_frame_ns;
 
        /*
@@ -426,7 +413,7 @@ static void dm_test_ism_idle_delay_no_short_idles(struct 
kunit *test)
 static void dm_test_ism_idle_delay_enough_short_idles(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t one_frame_ns, expected;
 
        /*
@@ -461,7 +448,7 @@ static void 
dm_test_ism_idle_delay_enough_short_idles(struct kunit *test)
 static void dm_test_ism_idle_delay_wraps_around_buffer(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t one_frame_ns, expected;
 
        /*
@@ -497,7 +484,7 @@ static void 
dm_test_ism_idle_delay_wraps_around_buffer(struct kunit *test)
 static void dm_test_ism_idle_delay_old_history_cutoff(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t one_frame_ns;
 
        /*
@@ -545,7 +532,7 @@ static void 
dm_test_ism_idle_delay_old_history_cutoff(struct kunit *test)
 static void dm_test_ism_idle_delay_mixed_durations(struct kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t one_frame_ns;
 
        /*
@@ -586,7 +573,7 @@ static void dm_test_ism_idle_delay_mixed_durations(struct 
kunit *test)
 static void dm_test_ism_idle_delay_entry_count_exceeds_history_size(struct 
kunit *test)
 {
        struct amdgpu_dm_ism *ism = alloc_test_ism(test);
-       struct dc_stream_state *stream = alloc_test_stream(test);
+       struct dc_stream_state *stream = dm_kunit_alloc_stream(test, NULL);
        uint64_t one_frame_ns, expected;
 
        /*
diff --git 
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_helpers.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_helpers.c
new file mode 100644
index 000000000000..58615cdbe854
--- /dev/null
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_helpers.c
@@ -0,0 +1,142 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * KUnit test helpers for amdgpu_dm tests.
+ *
+ * Copyright 2026 Advanced Micro Devices, Inc.
+ */
+
+#include <kunit/test.h>
+#include <linux/module.h>
+#include <drm/drm_kunit_helpers.h>
+
+#include "dc.h"
+#include "core_types.h"
+#include "amdgpu.h"
+#include "amdgpu_mode.h"
+#include "amdgpu_dm.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
+
+struct amdgpu_device *dm_kunit_alloc_adev(struct kunit *test)
+{
+       struct drm_device *drm;
+       struct device *dev;
+
+       dev = drm_kunit_helper_alloc_device(test);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
+
+       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
+                                                  sizeof(struct amdgpu_device),
+                                                  offsetof(struct 
amdgpu_device, ddev),
+                                                  DRIVER_MODESET | 
DRIVER_ATOMIC);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
+
+       return drm_to_adev(drm);
+}
+EXPORT_SYMBOL(dm_kunit_alloc_adev);
+
+struct dc_link *dm_kunit_alloc_link(struct kunit *test)
+{
+       struct dc_link *link;
+
+       link = kunit_kzalloc(test, sizeof(*link), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, link);
+
+       return link;
+}
+EXPORT_SYMBOL(dm_kunit_alloc_link);
+
+struct dc_link *dm_kunit_alloc_link_with_ctx(struct kunit *test)
+{
+       struct dc_link *link;
+       struct dc_context *ctx;
+       struct dc *dc;
+
+       link = dm_kunit_alloc_link(test);
+
+       ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, ctx);
+
+       dc = kunit_kzalloc(test, sizeof(*dc), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, dc);
+
+       link->ctx = ctx;
+       ctx->dc = dc;
+       dc->ctx = ctx;
+
+       return link;
+}
+EXPORT_SYMBOL(dm_kunit_alloc_link_with_ctx);
+
+struct amdgpu_display_manager *dm_kunit_alloc_dm(struct kunit *test)
+{
+       struct amdgpu_display_manager *dm;
+       struct dc *dc;
+       struct dc_state *state;
+
+       dm = kunit_kzalloc(test, sizeof(*dm), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, dm);
+
+       dc = kunit_kzalloc(test, sizeof(*dc), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, dc);
+
+       state = kunit_kzalloc(test, sizeof(*state), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, state);
+
+       dm->dc = dc;
+       dc->current_state = state;
+
+       return dm;
+}
+EXPORT_SYMBOL(dm_kunit_alloc_dm);
+
+struct dc_stream_state *dm_kunit_alloc_stream(struct kunit *test,
+                                             struct dc_link *link)
+{
+       struct dc_stream_state *stream;
+
+       stream = kunit_kzalloc(test, sizeof(*stream), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, stream);
+
+       stream->link = link;
+       kref_init(&stream->refcount);
+
+       return stream;
+}
+EXPORT_SYMBOL(dm_kunit_alloc_stream);
+
+void dm_kunit_add_stream_to_state(struct kunit *test, struct dc_state *state,
+                                 unsigned int index, struct dc_link *link)
+{
+       struct dc_stream_state *stream;
+
+       KUNIT_ASSERT_LT(test, index, (unsigned int)MAX_PIPES);
+
+       stream = kunit_kzalloc(test, sizeof(*stream), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, stream);
+
+       stream->link = link;
+       state->streams[index] = stream;
+       if (state->stream_count <= index)
+               state->stream_count = index + 1;
+}
+EXPORT_SYMBOL(dm_kunit_add_stream_to_state);
+
+struct amdgpu_dm_connector *dm_kunit_alloc_connector(struct kunit *test,
+                                                    struct amdgpu_device *adev,
+                                                    struct dc_link *link)
+{
+       struct amdgpu_dm_connector *aconnector;
+
+       aconnector = kunit_kzalloc(test, sizeof(*aconnector), GFP_KERNEL);
+       KUNIT_ASSERT_NOT_NULL(test, aconnector);
+
+       if (adev)
+               aconnector->base.dev = &adev->ddev;
+       aconnector->dc_link = link;
+
+       return aconnector;
+}
+EXPORT_SYMBOL(dm_kunit_alloc_connector);
+
+MODULE_LICENSE("Dual MIT/GPL");
+MODULE_DESCRIPTION("KUnit test helpers for amdgpu_dm tests");
diff --git 
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_test_helpers.h 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_test_helpers.h
new file mode 100644
index 000000000000..0f1c48fa2128
--- /dev/null
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_kunit_test_helpers.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0 OR MIT */
+/*
+ * KUnit test helpers for amdgpu_dm tests.
+ *
+ * Copyright 2026 Advanced Micro Devices, Inc.
+ */
+
+#ifndef AMDGPU_DM_KUNIT_TEST_HELPERS_H
+#define AMDGPU_DM_KUNIT_TEST_HELPERS_H
+
+#include <kunit/test.h>
+
+struct amdgpu_device;
+struct amdgpu_display_manager;
+struct amdgpu_dm_connector;
+struct dc_link;
+struct dc_state;
+struct dc_stream_state;
+
+struct amdgpu_device *dm_kunit_alloc_adev(struct kunit *test);
+struct dc_link *dm_kunit_alloc_link(struct kunit *test);
+struct dc_link *dm_kunit_alloc_link_with_ctx(struct kunit *test);
+struct amdgpu_display_manager *dm_kunit_alloc_dm(struct kunit *test);
+struct dc_stream_state *dm_kunit_alloc_stream(struct kunit *test,
+                                             struct dc_link *link);
+void dm_kunit_add_stream_to_state(struct kunit *test, struct dc_state *state,
+                                 unsigned int index, struct dc_link *link);
+struct amdgpu_dm_connector *dm_kunit_alloc_connector(struct kunit *test,
+                                                    struct amdgpu_device *adev,
+                                                    struct dc_link *link);
+
+#endif /* AMDGPU_DM_KUNIT_TEST_HELPERS_H */
diff --git 
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c
index 638e6fa97a11..99d9fdaa4a4a 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c
@@ -20,6 +20,7 @@
 #include "amdgpu_mode.h"
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_mst_types.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 #include "inc/link_service.h"
 
 /*
@@ -914,18 +915,10 @@ static void dm_mst_test_create_fake_mst_encoders(struct 
kunit *test)
 {
        struct amdgpu_device *adev;
        struct drm_device *drm;
-       struct device *dev;
        int i;
 
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
-
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                  sizeof(*adev),
-                                                  offsetof(struct 
amdgpu_device, ddev),
-                                                  DRIVER_MODESET | 
DRIVER_ATOMIC);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-       adev = drm_to_adev(drm);
+       adev = dm_kunit_alloc_adev(test);
+       drm = &adev->ddev;
        adev->dm.display_indexes_num = 3;
        adev->mode_info.num_crtc = 3;
 
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
index 2dd870f650db..09bd98e93047 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_psr_test.c
@@ -12,79 +12,17 @@
 #include "amdgpu_mode.h"
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_psr.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 #include "power_helpers.h"
 
-/*
- * Helper: allocate and zero-initialise a dc_link sufficient for
- * amdgpu_dm_psr_fill_caps() testing.  The function only accesses
- * embedded members (dpcd_caps, psr_settings) so no pointer fields
- * need to be wired up.
- */
-static struct dc_link *alloc_test_link(struct kunit *test)
-{
-       struct dc_link *link;
-
-       link = kunit_kzalloc(test, sizeof(*link), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, link);
-
-       return link;
-}
-
-/*
- * Helper: allocate and wire the minimal DM/DC state needed for
- * amdgpu_dm_psr_is_active_allowed() testing.
- */
-static struct amdgpu_display_manager *alloc_test_dm(struct kunit *test)
-{
-       struct amdgpu_display_manager *dm;
-       struct dc *dc;
-       struct dc_state *state;
-
-       dm = kunit_kzalloc(test, sizeof(*dm), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, dm);
-
-       dc = kunit_kzalloc(test, sizeof(*dc), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, dc);
-
-       state = kunit_kzalloc(test, sizeof(*state), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, state);
-
-       dm->dc = dc;
-       dc->current_state = state;
-
-       return dm;
-}
-
-static void add_test_stream(struct kunit *test, struct dc_state *state,
-               unsigned int index, struct dc_link *link)
-{
-       struct dc_stream_state *stream;
-
-       KUNIT_ASSERT_LT(test, index, (unsigned int)MAX_PIPES);
-
-       stream = kunit_kzalloc(test, sizeof(*stream), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, stream);
-
-       stream->link = link;
-       state->streams[index] = stream;
-       if (state->stream_count <= index)
-               state->stream_count = index + 1;
-}
-
 static struct dc_stream_state *alloc_test_psr_stream(struct kunit *test)
 {
-       struct dc_stream_state *stream;
        struct dc_link *link;
 
-       stream = kunit_kzalloc(test, sizeof(*stream), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, stream);
-
-       link = alloc_test_link(test);
+       link = dm_kunit_alloc_link(test);
        link->psr_settings.psr_feature_enabled = true;
-       stream->link = link;
-       kref_init(&stream->refcount);
 
-       return stream;
+       return dm_kunit_alloc_stream(test, link);
 }
 
 static struct core_power *create_test_power_module(struct kunit *test,
@@ -108,7 +46,7 @@ static struct core_power *create_test_power_module(struct 
kunit *test,
 
 static struct dc_link *alloc_test_psrsu_link(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct dc_context *ctx;
        struct dc *dc;
 
@@ -359,7 +297,7 @@ static void dm_test_set_psr_caps_no_dpcd_psr(struct kunit 
*test)
 static void dm_test_set_psr_caps_edp1_disabled(struct kunit *test)
 {
        struct dc_link *link = alloc_test_psr_caps_link(test);
-       struct dc_link *edp0 = alloc_test_link(test);
+       struct dc_link *edp0 = dm_kunit_alloc_link(test);
        struct amdgpu_dm_connector *aconnector = alloc_test_aconnector(test);
        struct dc *dc = link->ctx->dc;
 
@@ -393,7 +331,7 @@ static void dm_test_set_psr_caps_success_psr1(struct kunit 
*test)
 
 static void dm_test_psr_fill_caps_version_1(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -406,7 +344,7 @@ static void dm_test_psr_fill_caps_version_1(struct kunit 
*test)
 
 static void dm_test_psr_fill_caps_version_su1(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -419,7 +357,7 @@ static void dm_test_psr_fill_caps_version_su1(struct kunit 
*test)
 
 static void dm_test_psr_fill_caps_version_unsupported(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -438,7 +376,7 @@ static void 
dm_test_psr_fill_caps_version_unsupported(struct kunit *test)
 
 static void dm_test_psr_fill_caps_setup_time_zero(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -452,7 +390,7 @@ static void dm_test_psr_fill_caps_setup_time_zero(struct 
kunit *test)
 
 static void dm_test_psr_fill_caps_setup_time_mid(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -466,7 +404,7 @@ static void dm_test_psr_fill_caps_setup_time_mid(struct 
kunit *test)
 
 static void dm_test_psr_fill_caps_setup_time_max(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -482,7 +420,7 @@ static void dm_test_psr_fill_caps_setup_time_max(struct 
kunit *test)
 
 static void dm_test_psr_fill_caps_link_training_required(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -495,7 +433,7 @@ static void 
dm_test_psr_fill_caps_link_training_required(struct kunit *test)
 
 static void dm_test_psr_fill_caps_link_training_not_required(struct kunit 
*test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -510,7 +448,7 @@ static void 
dm_test_psr_fill_caps_link_training_not_required(struct kunit *test)
 
 static void dm_test_psr_fill_caps_dpcd_fields(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -536,7 +474,7 @@ static void dm_test_psr_fill_caps_dpcd_fields(struct kunit 
*test)
 
 static void dm_test_psr_fill_caps_dpcd_fields_unset(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0xFF, sizeof(caps));
@@ -557,7 +495,7 @@ static void dm_test_psr_fill_caps_dpcd_fields_unset(struct 
kunit *test)
 
 static void dm_test_psr_fill_caps_rate_control_always_zero(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        /* Pre-fill caps with non-zero to verify overwrite */
@@ -570,7 +508,7 @@ static void 
dm_test_psr_fill_caps_rate_control_always_zero(struct kunit *test)
 
 static void dm_test_psr_fill_caps_power_opts_z10_always_set(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
 
        memset(&caps, 0, sizeof(caps));
@@ -588,7 +526,7 @@ static void 
dm_test_psr_fill_caps_power_opts_z10_always_set(struct kunit *test)
 
 static void dm_test_psr_fill_caps_power_opts_smu_opt_set(struct kunit *test)
 {
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
        struct psr_caps caps;
        unsigned int old_feature_mask;
 
@@ -647,7 +585,7 @@ static void dm_test_psr_set_event_psr_not_enabled(struct 
kunit *test)
  */
 static void dm_test_psr_set_event_get_event_fails(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct dc_stream_state *stream = alloc_test_psr_stream(test);
 
        dm->power_module = NULL;
@@ -661,7 +599,7 @@ static void dm_test_psr_set_event_get_event_fails(struct 
kunit *test)
  */
 static void dm_test_psr_set_event_already_set(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct dc_stream_state *stream = alloc_test_psr_stream(test);
        struct psr_caps caps = {0};
        struct core_power *core_power;
@@ -682,7 +620,7 @@ static void dm_test_psr_set_event_already_set(struct kunit 
*test)
  */
 static void dm_test_psr_set_event_updates_event(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct dc_stream_state *stream = alloc_test_psr_stream(test);
        struct psr_caps caps = {0};
        struct core_power *core_power;
@@ -706,7 +644,7 @@ static void dm_test_psr_set_event_updates_event(struct 
kunit *test)
  */
 static void dm_test_psr_is_active_allowed_no_streams(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
 
        KUNIT_EXPECT_FALSE(test, amdgpu_dm_psr_is_active_allowed(dm));
 }
@@ -717,10 +655,10 @@ static void 
dm_test_psr_is_active_allowed_no_streams(struct kunit *test)
  */
 static void dm_test_psr_is_active_allowed_null_link(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct dc_state *state = dm->dc->current_state;
 
-       add_test_stream(test, state, 0, NULL);
+       dm_kunit_add_stream_to_state(test, state, 0, NULL);
 
        KUNIT_EXPECT_FALSE(test, amdgpu_dm_psr_is_active_allowed(dm));
 }
@@ -732,11 +670,11 @@ static void 
dm_test_psr_is_active_allowed_null_link(struct kunit *test)
  */
 static void dm_test_psr_is_active_allowed_requires_enabled_and_allowed(struct 
kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct dc_state *state = dm->dc->current_state;
-       struct dc_link *link = alloc_test_link(test);
+       struct dc_link *link = dm_kunit_alloc_link(test);
 
-       add_test_stream(test, state, 0, link);
+       dm_kunit_add_stream_to_state(test, state, 0, link);
        link->psr_settings.psr_allow_active = true;
        KUNIT_EXPECT_FALSE(test, amdgpu_dm_psr_is_active_allowed(dm));
 
@@ -752,17 +690,17 @@ static void 
dm_test_psr_is_active_allowed_requires_enabled_and_allowed(struct ku
  */
 static void dm_test_psr_is_active_allowed_any_stream(struct kunit *test)
 {
-       struct amdgpu_display_manager *dm = alloc_test_dm(test);
+       struct amdgpu_display_manager *dm = dm_kunit_alloc_dm(test);
        struct dc_state *state = dm->dc->current_state;
-       struct dc_link *disabled_link = alloc_test_link(test);
-       struct dc_link *allowed_link = alloc_test_link(test);
+       struct dc_link *disabled_link = dm_kunit_alloc_link(test);
+       struct dc_link *allowed_link = dm_kunit_alloc_link(test);
 
        disabled_link->psr_settings.psr_allow_active = true;
        allowed_link->psr_settings.psr_feature_enabled = true;
        allowed_link->psr_settings.psr_allow_active = true;
 
-       add_test_stream(test, state, 0, disabled_link);
-       add_test_stream(test, state, 1, allowed_link);
+       dm_kunit_add_stream_to_state(test, state, 0, disabled_link);
+       dm_kunit_add_stream_to_state(test, state, 1, allowed_link);
 
        KUNIT_EXPECT_TRUE(test, amdgpu_dm_psr_is_active_allowed(dm));
 }
diff --git 
a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
index 68f2f4d70407..6f633b1bbaca 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_replay_test.c
@@ -12,6 +12,7 @@
 #include "amdgpu_mode.h"
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_replay.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 #include "modules/power/power_helpers.h"
 #include "dmub/dmub_srv.h"
 
@@ -35,8 +36,9 @@ static struct replay_test_ctx *alloc_replay_ctx(struct kunit 
*test)
        ctx = kunit_kzalloc(test, sizeof(*ctx), GFP_KERNEL);
        KUNIT_ASSERT_NOT_NULL(test, ctx);
 
-       ctx->link = kunit_kzalloc(test, sizeof(*ctx->link), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, ctx->link);
+       ctx->link = dm_kunit_alloc_link_with_ctx(test);
+       ctx->dc_ctx = ctx->link->ctx;
+       ctx->dc = ctx->dc_ctx->dc;
 
        ctx->aconnector = kunit_kzalloc(test, sizeof(*ctx->aconnector), 
GFP_KERNEL);
        KUNIT_ASSERT_NOT_NULL(test, ctx->aconnector);
@@ -44,21 +46,10 @@ static struct replay_test_ctx *alloc_replay_ctx(struct 
kunit *test)
        ctx->dm_state = kunit_kzalloc(test, sizeof(*ctx->dm_state), GFP_KERNEL);
        KUNIT_ASSERT_NOT_NULL(test, ctx->dm_state);
 
-       ctx->dc = kunit_kzalloc(test, sizeof(*ctx->dc), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, ctx->dc);
-
-       ctx->dc_ctx = kunit_kzalloc(test, sizeof(*ctx->dc_ctx), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, ctx->dc_ctx);
-
-       ctx->stream = kunit_kzalloc(test, sizeof(*ctx->stream), GFP_KERNEL);
-       KUNIT_ASSERT_NOT_NULL(test, ctx->stream);
+       ctx->stream = dm_kunit_alloc_stream(test, ctx->link);
 
        /* Wire connector state so to_dm_connector_state() works */
        ctx->aconnector->base.state = &ctx->dm_state->base;
-       ctx->link->ctx = ctx->dc_ctx;
-       ctx->dc_ctx->dc = ctx->dc;
-       ctx->dc->ctx = ctx->dc_ctx;
-       ctx->stream->link = ctx->link;
 
        return ctx;
 }
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c
index f9a839c10bf4..c71f61a2438d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_wb_test.c
@@ -20,6 +20,7 @@
 #include "amdgpu.h"
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_wb.h"
+#include "amdgpu_dm_kunit_test_helpers.h"
 
 
 /* Helper functions */
@@ -71,22 +72,7 @@ static struct drm_connector_state 
*alloc_test_conn_state(struct kunit *test,
        return conn_state;
 }
 
-static struct amdgpu_device *alloc_test_adev(struct kunit *test)
-{
-       struct drm_device *drm;
-       struct device *dev;
-
-       dev = drm_kunit_helper_alloc_device(test);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev);
 
-       drm = __drm_kunit_helper_alloc_drm_device(test, dev,
-                                                  sizeof(struct amdgpu_device),
-                                                  offsetof(struct 
amdgpu_device, ddev),
-                                                  DRIVER_MODESET | 
DRIVER_ATOMIC);
-       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, drm);
-
-       return drm_to_adev(drm);
-}
 
 /* Tests for amdgpu_dm_wb_encoder_atomic_check */
 
@@ -350,7 +336,7 @@ static void dm_test_wb_connector_init_success(struct kunit 
*test)
        struct dc *dc;
        int ret;
 
-       adev = alloc_test_adev(test);
+       adev = dm_kunit_alloc_adev(test);
        adev->mode_info.num_crtc = 1;
        dm = &adev->dm;
        dm->adev = adev;
-- 
2.53.0

Reply via email to