Re: linux-next: manual merge of the amdgpu tree with the drm-misc tree

From: Mark Brown

Date: Tue Sep 08 2026 - 14:33:02 EST


On Tue, Sep 08, 2026 at 06:16:28PM +0100, Mark Brown wrote:
> On Tue, Sep 08, 2026 at 05:34:48PM +0100, Mark Brown wrote:

> The merge here is wrong, and there's more extensive conflicts including

> I'll get something that builds but no idea if it'll work.

Final fixup below which almost certainly will not work, this is a
semantic conflict which you probably want to resolve with a direct merge
yourselves. If you've got a better fixup I can drop it in.

From f9c146baa10ead28e3356fba8ff966ec15b5d32b Mon Sep 17 00:00:00 2001
From: Mark Brown <broonie@xxxxxxxxxx>
Date: Tue, 8 Sep 2026 17:42:52 +0100
Subject: [PATCH] drm: amd: Problematic merge fixup

Almost certainly broken, a semantic conflict after the rerere stage :(

Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++--
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 5 ++++-
.../display/amdgpu_dm/amdgpu_dm_connector.c | 22 -------------------
.../display/amdgpu_dm/tests/amdgpu_dm_test.c | 4 ++--
4 files changed, 9 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 7e5bc461f8839..09385cb53eca6 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3076,6 +3076,7 @@ fill_dc_plane_info_and_addr(struct amdgpu_device *adev,
EXPORT_IF_KUNIT(fill_dc_plane_info_and_addr);

STATIC_IFN_KUNIT int fill_dc_plane_attributes(struct amdgpu_device *adev,
+ struct drm_atomic_commit *state,
struct dc_plane_state *dc_plane_state,
struct drm_plane_state *plane_state,
struct drm_crtc_state *crtc_state)
@@ -3095,7 +3096,7 @@ STATIC_IFN_KUNIT int fill_dc_plane_attributes(struct amdgpu_device *adev,
dc_plane_state->clip_rect = scaling_info.clip_rect;
dc_plane_state->scaling_quality = scaling_info.scaling_quality;

- ret = fill_dc_plane_info_and_addr(adev, plane_state->state, plane_state,
+ ret = fill_dc_plane_info_and_addr(adev, state, plane_state,
&plane_info,
&dc_plane_state->address,
afb->tmz_surface);
@@ -5970,7 +5971,7 @@ static int dm_update_plane_state(struct dc *dc,
plane->base.id, new_plane_crtc->base.id);

ret = fill_dc_plane_attributes(
- drm_to_adev(new_plane_crtc->dev),
+ drm_to_adev(new_plane_crtc->dev), state,
dc_new_plane_state,
new_plane_state,
new_crtc_state);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
index 18ee988251557..b4f677aceb60e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
@@ -1260,6 +1260,7 @@ void mmhub_read_system_context(struct amdgpu_device *adev,
int amdgpu_dm_init_power_module(struct amdgpu_display_manager *dm);
int dm_early_init(struct amdgpu_ip_block *ip_block);
int fill_dc_plane_info_and_addr(struct amdgpu_device *adev,
+ struct drm_atomic_commit *state,
const struct drm_plane_state *plane_state,
struct dc_plane_info *plane_info,
struct dc_plane_address *address, bool tmz_surface);
@@ -1272,7 +1273,9 @@ int amdgpu_dm_mode_config_init(struct amdgpu_device *adev);
int initialize_plane(struct amdgpu_display_manager *dm, struct amdgpu_mode_info *mode_info,
int plane_id, enum drm_plane_type plane_type,
const struct dc_plane_cap *plane_cap);
-int fill_dc_plane_attributes(struct amdgpu_device *adev, struct dc_plane_state *dc_plane_state,
+int fill_dc_plane_attributes(struct amdgpu_device *adev,
+ struct drm_atomic_commit *state,
+ struct dc_plane_state *dc_plane_state,
struct drm_plane_state *plane_state,
struct drm_crtc_state *crtc_state);
#endif
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
index 147459e48e136..738fee11d2678 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
@@ -3767,28 +3767,6 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
} else if (drm_edid &&
(sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A ||
sink->sink_signal == SIGNAL_TYPE_HDMI_FRL)) {
- i = parse_hdmi_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
- if (i >= 0) {
- amdgpu_dm_connector->vsdb_info = vsdb_info;
- sink->edid_caps.freesync_vcp_code = vsdb_info.freesync_mccs_vcp_code;
-
- if (vsdb_info.freesync_supported) {
- amdgpu_dm_connector->min_vfreq = vsdb_info.min_refresh_rate_hz;
- amdgpu_dm_connector->max_vfreq = vsdb_info.max_refresh_rate_hz;
- if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
- freesync_capable = true;
-
- connector->display_info.monitor_range.min_vfreq = vsdb_info.min_refresh_rate_hz;
- connector->display_info.monitor_range.max_vfreq = vsdb_info.max_refresh_rate_hz;
- }
- }
-
- drm_dbg_driver(adev_to_drm(adev),
- "VRR: amd_vsdb i=%d fs_sup=%d min=%d max=%d fs_capable=%d\n",
- i, vsdb_info.freesync_supported,
- vsdb_info.min_refresh_rate_hz,
- vsdb_info.max_refresh_rate_hz, freesync_capable);
-
/*
* If AMD VSDB didn't provide a valid FreeSync range, fall back to
* the HDMI 2.1 VRR capability parsed from the HF-VSDB.
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_test.c
index ccc3fda7f3502..fc53b1bffe998 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_test.c
@@ -3628,7 +3628,7 @@ dm_test_plane_info_ctx_alloc(struct kunit *test, struct amdgpu_device *adev,

static int dm_test_fill_plane_info(struct dm_test_plane_info_ctx *ctx)
{
- return fill_dc_plane_info_and_addr(ctx->adev, ctx->plane_state,
+ return fill_dc_plane_info_and_addr(ctx->adev, NULL, ctx->plane_state,
&ctx->plane_info, &ctx->address, false);
}

@@ -4110,7 +4110,7 @@ dm_test_plane_attr_ctx_alloc(struct kunit *test, u32 drm_format)

static int dm_test_fill_plane_attr(struct dm_test_plane_attr_ctx *ctx)
{
- return fill_dc_plane_attributes(ctx->adev, ctx->dc_plane,
+ return fill_dc_plane_attributes(ctx->adev, NULL, ctx->dc_plane,
ctx->plane->plane_state, &ctx->crtc_state->base);
}

--
2.47.3

Attachment: signature.asc
Description: PGP signature