Commit 6ced1061 authored by Simona Vetter's avatar Simona Vetter
Browse files

Merge tag 'amd-drm-fixes-6.18-2025-10-22' of...

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: default avatarSimona Vetter <simona.vetter@ffwll.ch>

From: Alex Deucher <alexander.deucher@amd.com>
Link: https://lore.kernel.org/r/20251022222005.1787211-1-alexander.deucher@amd.com
parents 211ddde0 72a1eb3c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -551,13 +551,13 @@ static void schedule_dc_vmin_vmax(struct amdgpu_device *adev,
	struct dc_stream_state *stream,
	struct dc_crtc_timing_adjust *adjust)
{
	struct vupdate_offload_work *offload_work = kzalloc(sizeof(*offload_work), GFP_KERNEL);
	struct vupdate_offload_work *offload_work = kzalloc(sizeof(*offload_work), GFP_NOWAIT);
	if (!offload_work) {
		drm_dbg_driver(adev_to_drm(adev), "Failed to allocate vupdate_offload_work\n");
		return;
	}

	struct dc_crtc_timing_adjust *adjust_copy = kzalloc(sizeof(*adjust_copy), GFP_KERNEL);
	struct dc_crtc_timing_adjust *adjust_copy = kzalloc(sizeof(*adjust_copy), GFP_NOWAIT);
	if (!adjust_copy) {
		drm_dbg_driver(adev_to_drm(adev), "Failed to allocate adjust_copy\n");
		kfree(offload_work);
+3 −0
Original line number Diff line number Diff line
@@ -200,6 +200,9 @@ void dcn401_init_hw(struct dc *dc)
		 */
		struct dc_link *link = dc->links[i];

		if (link->ep_type != DISPLAY_ENDPOINT_PHY)
			continue;

		link->link_enc->funcs->hw_init(link->link_enc);

		/* Check for enabled DIG to identify enabled display */
+7 −1
Original line number Diff line number Diff line
@@ -44,7 +44,13 @@
 */
#define MAX_PIPES 6
#define MAX_PHANTOM_PIPES (MAX_PIPES / 2)
#define MAX_LINKS (MAX_PIPES * 2 +2)

#define MAX_DPIA 6
#define MAX_CONNECTOR 6
#define MAX_VIRTUAL_LINKS 4

#define MAX_LINKS (MAX_DPIA + MAX_CONNECTOR + MAX_VIRTUAL_LINKS)

#define MAX_DIG_LINK_ENCODERS 7
#define MAX_DWB_PIPES	1
#define MAX_HPO_DP2_ENCODERS	4
+2 −1
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ static void dp_retrain_link_dp_test(struct dc_link *link,
	struct audio_output audio_output[MAX_PIPES];
	struct dc_stream_state *streams_on_link[MAX_PIPES];
	int num_streams_on_link = 0;
	struct dc *dc = (struct dc *)link->dc;

	needs_divider_update = (link->dc->link_srv->dp_get_encoding_format(link_setting) !=
	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,
		if (streams_on_link[i] && streams_on_link[i]->link && streams_on_link[i]->link == link) {
			stream_update.stream = streams_on_link[i];
			stream_update.dpms_off = &dpms_off;
			dc_update_planes_and_stream(state->clk_mgr->ctx->dc, NULL, 0, streams_on_link[i], &stream_update);
			dc_update_planes_and_stream(dc, NULL, 0, streams_on_link[i], &stream_update);
		}
	}
}