From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794585826; b=xpNYJMp0g00Pqt6JsOlAIcoqyZTt8JC7GoKVLYrwo7GEIdJ94lJhgKJv2ILkfNjQfDcR qKWngqGNT4DnOTCKGeg3hbwyq1T0Ys5VEhUpu7FZI5vkJPz2TivR9TGFv2Q0Uml83huLY kJBJsXSMTxN2klJkSMkV4RLJOQn+hLUfwsWVELZaXb6y4Cl8mVmEJDHnPOGFGxP5KuikY 7mga13iby+O9t/p3p/4fzbMLEGh0PRf8gK+IKF+5Ig9BrgQJAP9YNIF6VLv6Vkhlis0B+ 5AowOPZfzBz2ToPNEWeUhBPMxdyFPT1YuhZzIa1XrgTG85YxScIBZCzf0c08rBvI3JQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794585826; h=Received:DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:User-Agent:X-stable:X-Patchwork-Hint: MIME-Version:Content-Transfer-Encoding; bh=YSEs0avsq/3/0AUxEBB7h2L7ieAnTM3BGTNTu9jHXP4=; b=mh/LidbSs2rCdTDftqXp1eGpCNqbe5ARfNaz0st2Gyjd7SaWJKTZw6K2l4XixvdP3H8g S1CVY8eqk0gaHUWc+iUiGMyJccsAhi4EiyQnt1glN/eQQfmoigjRH6ovRe7UMuKG0zy/b r6IPg//3SdjtSPnZQL2QJZ53SCXr4klxyMTwA+JHR5RrPcKPmYf6KCXOZ6WD5AZ1Yxgm7 L9ZTncFWvUKtTHdtSIsUTCwvazlzXGXGafG/TSgvmJn87g0wifsHAtYwJKx+KleIzUbhd 6/zBFaQhcH3UtpM348Dhj5MpTZu5TJRKGBtD387Zg4fEFPfSuKb+RUJ9BbkEeASAQUA== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=BItMdhBF; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA209606C576; Fri, 13 Nov 2026 16:03:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.a=rsa-sha256 header.s=korg header.b=BItMdhBF Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C1E01F000C4; Fri, 13 Nov 2026 16:03:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1794585826; bh=YSEs0avsq/3/0AUxEBB7h2L7ieAnTM3BGTNTu9jHXP4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=BItMdhBFp42CZA7fvvM2VOKvUotutvRkthFG9uQaHgvOOigQ1SJNBJEXHcDEO+25o 9uZ51kA7sqEgC2KjZskfV38yDf6JaqiqsrBNNGkqfILTidZryaqj8KSHI+5Eqf0PnD CLmbqh5necRcnOJcchMpN0/TJdsF9qTtQVJN3L1g= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, "Pierre-Loup A. Griffais" , Melissa Wen , Alex Hung , Alex Deucher , Sasha Levin Subject: [PATCH 7.3 370/507] drm/amd/display: Signal PQ EOTF in FreeSync infopacket for DP HDR Date: Fri, 13 Nov 2026 10:51:14 -0500 Message-ID: <20261113153808.606538842@linuxfoundation.org> X-Mailer: git-send-email 2.56.0 In-Reply-To: <20261113153753.358973689@linuxfoundation.org> References: <20261113153753.358973689@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore X-Mailing-List: stable@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 7.3-stable review patch. If anyone has any objections, please let me know. ------------------ From: Melissa Wen [ Upstream commit 81f923b065801c7d30042bcda31ccb9449b4f58b ] Commit c2791297013e ("drm/amd/display: Add color bit info to freesync infoframe") created the app_tf interface for FreeSync HDR and commit c21a764a98cb ("drm/amd/display: Send PQ bit in AMD VSIF") used it to set PB9 bit 5 (PQ EOTF) in v2/v3 AMD Freesync infopacket. However, Linux never made use of this interface: DM ignores what userspace sets regarding HDR and always passes TRANSFER_FUNC_UNKNOWN as app_tf, so the PQ bit is never set in the infopacket received by the eDP panel. Check the EOTF in the HDR static metadata and set the PQ bit in Freesync infopacket for DP accordingly. This fixes gray-washed HDR on KDE/GNOME on Framework 13 Pro AI 9 HX 370 (DCN 3.5) and may fix similar issues on other VRR-capable panels that advertise Replay in its AMD VSDB. It doesn't affect color/EOTF bits on infopackets for SDR and native HDMI. Reported-by: Pierre-Loup A. Griffais Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/3200 Signed-off-by: Melissa Wen Reviewed-by: Alex Hung Signed-off-by: Alex Deucher (cherry picked from commit b318f3e13dd73781404670d3b3c6cf2177e0119c) Cc: stable@vger.kernel.org Signed-off-by: Sasha Levin --- .../display/amdgpu_dm/amdgpu_dm_freesync.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_freesync.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_freesync.c index f26dd206dffa0..a51cf46d0e448 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_freesync.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_freesync.c @@ -162,6 +162,18 @@ void amdgpu_dm_get_freesync_config_for_crtc( } EXPORT_IF_KUNIT(amdgpu_dm_get_freesync_config_for_crtc); +#define DP_HDR_SDP_EOTF_IDX 2 + +static bool dm_dp_in_hdr_mode(const struct dc_stream_state *stream) +{ + const struct dc_info_packet *hdr = &stream->hdr_static_metadata; + + if (!dc_is_dp_signal(stream->signal) || !hdr->valid) + return false; + + return hdr->sb[DP_HDR_SDP_EOTF_IDX] == HDMI_EOTF_SMPTE_ST2084; +} + void amdgpu_dm_update_freesync_state_on_stream( struct amdgpu_display_manager *dm, struct dm_crtc_state *new_crtc_state, @@ -177,6 +189,7 @@ void amdgpu_dm_update_freesync_state_on_stream( bool pack_sdp_v1_3 = false; struct amdgpu_dm_connector *aconn; enum vrr_packet_type packet_type = PACKET_TYPE_VRR; + enum color_transfer_func app_tf; if (!new_stream) return; @@ -228,12 +241,16 @@ void amdgpu_dm_update_freesync_state_on_stream( &new_stream->adaptive_sync_infopacket); } + app_tf = dm_dp_in_hdr_mode(new_stream) ? + TRANSFER_FUNC_PQ2084 : + TRANSFER_FUNC_UNKNOWN; + mod_freesync_build_vrr_infopacket( dm->freesync_module, new_stream, &vrr_params, packet_type, - TRANSFER_FUNC_UNKNOWN, + app_tf, &vrr_infopacket, pack_sdp_v1_3); -- 2.53.0