Skip to content

Commit 6ced106

Browse files
committed
Merge tag 'amd-drm-fixes-6.18-2025-10-22' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
amd-drm-fixes-6.18-2025-10-22: amdgpu: - DP MST fix - Fix DC max link count - DC interrupt atomic context fix Signed-off-by: Simona Vetter <[email protected]> From: Alex Deucher <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2 parents 211ddde + 72a1eb3 commit 6ced106

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -551,13 +551,13 @@ static void schedule_dc_vmin_vmax(struct amdgpu_device *adev,
551551
struct dc_stream_state *stream,
552552
struct dc_crtc_timing_adjust *adjust)
553553
{
554-
struct vupdate_offload_work *offload_work = kzalloc(sizeof(*offload_work), GFP_KERNEL);
554+
struct vupdate_offload_work *offload_work = kzalloc(sizeof(*offload_work), GFP_NOWAIT);
555555
if (!offload_work) {
556556
drm_dbg_driver(adev_to_drm(adev), "Failed to allocate vupdate_offload_work\n");
557557
return;
558558
}
559559

560-
struct dc_crtc_timing_adjust *adjust_copy = kzalloc(sizeof(*adjust_copy), GFP_KERNEL);
560+
struct dc_crtc_timing_adjust *adjust_copy = kzalloc(sizeof(*adjust_copy), GFP_NOWAIT);
561561
if (!adjust_copy) {
562562
drm_dbg_driver(adev_to_drm(adev), "Failed to allocate adjust_copy\n");
563563
kfree(offload_work);

drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ void dcn401_init_hw(struct dc *dc)
200200
*/
201201
struct dc_link *link = dc->links[i];
202202

203+
if (link->ep_type != DISPLAY_ENDPOINT_PHY)
204+
continue;
205+
203206
link->link_enc->funcs->hw_init(link->link_enc);
204207

205208
/* Check for enabled DIG to identify enabled display */

drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@
4444
*/
4545
#define MAX_PIPES 6
4646
#define MAX_PHANTOM_PIPES (MAX_PIPES / 2)
47-
#define MAX_LINKS (MAX_PIPES * 2 +2)
47+
48+
#define MAX_DPIA 6
49+
#define MAX_CONNECTOR 6
50+
#define MAX_VIRTUAL_LINKS 4
51+
52+
#define MAX_LINKS (MAX_DPIA + MAX_CONNECTOR + MAX_VIRTUAL_LINKS)
53+
4854
#define MAX_DIG_LINK_ENCODERS 7
4955
#define MAX_DWB_PIPES 1
5056
#define MAX_HPO_DP2_ENCODERS 4

drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ static void dp_retrain_link_dp_test(struct dc_link *link,
7878
struct audio_output audio_output[MAX_PIPES];
7979
struct dc_stream_state *streams_on_link[MAX_PIPES];
8080
int num_streams_on_link = 0;
81+
struct dc *dc = (struct dc *)link->dc;
8182

8283
needs_divider_update = (link->dc->link_srv->dp_get_encoding_format(link_setting) !=
8384
link->dc->link_srv->dp_get_encoding_format((const struct dc_link_settings *) &link->cur_link_settings));
@@ -150,7 +151,7 @@ static void dp_retrain_link_dp_test(struct dc_link *link,
150151
if (streams_on_link[i] && streams_on_link[i]->link && streams_on_link[i]->link == link) {
151152
stream_update.stream = streams_on_link[i];
152153
stream_update.dpms_off = &dpms_off;
153-
dc_update_planes_and_stream(state->clk_mgr->ctx->dc, NULL, 0, streams_on_link[i], &stream_update);
154+
dc_update_planes_and_stream(dc, NULL, 0, streams_on_link[i], &stream_update);
154155
}
155156
}
156157
}

0 commit comments

Comments
 (0)