* [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR
@ 2025-12-20 11:46 Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 1/4] drm/edid: parse HDMI ALLM info Tomasz Pakuła
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Tomasz Pakuła @ 2025-12-20 11:46 UTC (permalink / raw)
To: alexander.deucher, maarten.lankhorst, mripard, tzimmermann,
airlied, simona, harry.wentland, sunpeng.li, siqueira
Cc: dri-devel, amd-gfx, bernhard.berger
Adaptive Sync over PCON is only available as FreeSync over HDMI. TVs which do
not support FreeSync, do not have working VRR with DP -> HDMI 2.1 adapters even
though adapters will take care of HDMI VRR info packets.
First two patches add generic drm edid parsing for HDMI VRR and ALLM.
Since HDMI VRR relies on FRL modes, this will only be enabled for PCONs in the
VRR whitelist. HDMI VRR for native HDMI connector will still not be
possible/attempted.
I myself validated these changes with my Samsung S95B + Bernhard validated on
LG C4 + FreeSync-less Sony Bravia 8. I used Alienware AW3423DWF that only
has HDMI 2.0 to check that FreeSync still triggers properly for "older" hardware
Tomasz Pakuła (4):
drm/edid: parse HDMI ALLM info
drm/edid: parse HDMI VRR information
drm/amd/display: rename PCON adaptive sync types
drm/amd/display: enable HDMI VRR over PCON
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 24 +++++++++++++++----
.../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 +-
.../amd/display/modules/inc/mod_info_packet.h | 4 ++--
.../display/modules/info_packet/info_packet.c | 4 ++--
drivers/gpu/drm/drm_edid.c | 20 ++++++++++++++++
include/drm/drm_connector.h | 23 ++++++++++++++++++
6 files changed, 67 insertions(+), 10 deletions(-)
--
2.52.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] drm/edid: parse HDMI ALLM info
2025-12-20 11:46 [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
@ 2025-12-20 11:46 ` Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 2/4] drm/edid: parse HDMI VRR information Tomasz Pakuła
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Tomasz Pakuła @ 2025-12-20 11:46 UTC (permalink / raw)
To: alexander.deucher, maarten.lankhorst, mripard, tzimmermann,
airlied, simona, harry.wentland, sunpeng.li, siqueira
Cc: dri-devel, amd-gfx, bernhard.berger
This allows us to understand if a TV supports ALLM and gpu drivers can
use this to trigger ALLM when they so desire.
Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Tested-by: Bernhard Berger <bernhard.berger@gmail.com>
---
drivers/gpu/drm/drm_edid.c | 5 +++++
include/drm/drm_connector.h | 3 +++
2 files changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index e2e85345aa9a..bb6cee249749 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -6274,6 +6274,8 @@ static void drm_parse_hdmi_forum_scds(struct drm_connector *connector,
}
drm_parse_ycbcr420_deep_color_info(connector, hf_scds);
+ if (cea_db_payload_len(hf_scds) >= 8 && hf_scds[8])
+ hdmi->allm_supported = hf_scds[8] & DRM_EDID_ALLM;
if (cea_db_payload_len(hf_scds) >= 11 && hf_scds[11]) {
drm_parse_dsc_info(hdmi_dsc, hf_scds);
@@ -6284,6 +6286,9 @@ static void drm_parse_hdmi_forum_scds(struct drm_connector *connector,
"[CONNECTOR:%d:%s] HF-VSDB: max TMDS clock: %d KHz, HDMI 2.1 support: %s, DSC 1.2 support: %s\n",
connector->base.id, connector->name,
max_tmds_clock, str_yes_no(max_frl_rate), str_yes_no(dsc_support));
+ drm_dbg_kms(connector->dev,
+ "[CONNECTOR:%d:%s] ALLM support: %s\n",
+ connector->base.id, connector->name, str_yes_no(hdmi->allm_supported));
}
static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector,
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 8f34f4b8183d..ac84884a96a5 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -330,6 +330,9 @@ struct drm_hdmi_info {
/** @max_lanes: supported by sink */
u8 max_lanes;
+ /** @allm_supported: flag for auto low latency mode support by sink */
+ bool allm_supported;
+
/** @dsc_cap: DSC capabilities of the sink */
struct drm_hdmi_dsc_cap dsc_cap;
};
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] drm/edid: parse HDMI VRR information
2025-12-20 11:46 [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 1/4] drm/edid: parse HDMI ALLM info Tomasz Pakuła
@ 2025-12-20 11:46 ` Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 3/4] drm/amd/display: rename PCON adaptive sync types Tomasz Pakuła
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Tomasz Pakuła @ 2025-12-20 11:46 UTC (permalink / raw)
To: alexander.deucher, maarten.lankhorst, mripard, tzimmermann,
airlied, simona, harry.wentland, sunpeng.li, siqueira
Cc: dri-devel, amd-gfx, bernhard.berger
Adds a struct to hold HDMI VRR information. `supported` here is an
additional property which allows easier parsing in consumers and adds a
bit of logic used by most driver to decide if VRR is worthwhile.
Additionally, edid-decode seems to throw errors if VRRmin is above 48 Hz
and VRRmax is below 100 Hz. I'm not sure if it's based on an actual HDMI
spec or, again, is showing "best practices".
Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Tested-by: Bernhard Berger <bernhard.berger@gmail.com>
---
drivers/gpu/drm/drm_edid.c | 19 +++++++++++++++++--
include/drm/drm_connector.h | 20 ++++++++++++++++++++
2 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index bb6cee249749..981b3b28c94b 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -6149,6 +6149,19 @@ static void drm_parse_ycbcr420_deep_color_info(struct drm_connector *connector,
hdmi->y420_dc_modes = dc_mask;
}
+static void drm_parse_vrr_info(struct drm_connector *connector, const u8 *db)
+{
+ struct drm_hdmi_vrr_cap *vrr = &connector->display_info.hdmi.vrr_cap;
+
+ vrr->supported = false;
+ if (!(cea_db_payload_len(db) >= 10) || !db[9] || !db[10])
+ return;
+
+ vrr->min_hz = db[9] & DRM_EDID_VRR_MIN_MASK;
+ vrr->max_hz = (db[9] & DRM_EDID_VRR_MAX_UPPER_MASK) << 2 | db[10];
+ vrr->supported = (vrr->min_hz > 0) && (vrr->max_hz - vrr->min_hz > 10);
+}
+
static void drm_parse_dsc_info(struct drm_hdmi_dsc_cap *hdmi_dsc,
const u8 *hf_scds)
{
@@ -6277,6 +6290,7 @@ static void drm_parse_hdmi_forum_scds(struct drm_connector *connector,
if (cea_db_payload_len(hf_scds) >= 8 && hf_scds[8])
hdmi->allm_supported = hf_scds[8] & DRM_EDID_ALLM;
+ drm_parse_vrr_info(connector, hf_scds);
if (cea_db_payload_len(hf_scds) >= 11 && hf_scds[11]) {
drm_parse_dsc_info(hdmi_dsc, hf_scds);
dsc_support = true;
@@ -6287,8 +6301,9 @@ static void drm_parse_hdmi_forum_scds(struct drm_connector *connector,
connector->base.id, connector->name,
max_tmds_clock, str_yes_no(max_frl_rate), str_yes_no(dsc_support));
drm_dbg_kms(connector->dev,
- "[CONNECTOR:%d:%s] ALLM support: %s\n",
- connector->base.id, connector->name, str_yes_no(hdmi->allm_supported));
+ "[CONNECTOR:%d:%s] ALLM support: %s, VRR support: %s, VRR min Hz: %u, VRR max Hz: %u\n",
+ connector->base.id, connector->name, str_yes_no(hdmi->allm_supported),
+ str_yes_no(hdmi->vrr_cap.supported), hdmi->vrr_cap.min_hz, hdmi->vrr_cap.max_hz);
}
static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector,
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index ac84884a96a5..8663daccf1db 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -254,6 +254,23 @@ struct drm_scdc {
struct drm_scrambling scrambling;
};
+/**
+ * struct drm_hdmi_vrr_cap - Information about VRR capabilities of a HDMI sink
+ *
+ * Describes the VRR support provided by HDMI 2.1 sink. The information is
+ * fetched fom additional HFVSDB blocks defined for HDMI 2.1.
+ */
+struct drm_hdmi_vrr_cap {
+ /** @supported: flag for vrr support by sink */
+ bool supported;
+
+ /** @min_hz : minimum supported variable refresh rate */
+ u16 min_hz;
+
+ /** @max_hz : maximum supported variable refresh rate */
+ u16 max_hz;
+};
+
/**
* struct drm_hdmi_dsc_cap - DSC capabilities of HDMI sink
*
@@ -333,6 +350,9 @@ struct drm_hdmi_info {
/** @allm_supported: flag for auto low latency mode support by sink */
bool allm_supported;
+ /** @vrr_cap: VRR capabilities of the sink */
+ struct drm_hdmi_vrr_cap vrr_cap;
+
/** @dsc_cap: DSC capabilities of the sink */
struct drm_hdmi_dsc_cap dsc_cap;
};
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] drm/amd/display: rename PCON adaptive sync types
2025-12-20 11:46 [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 1/4] drm/edid: parse HDMI ALLM info Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 2/4] drm/edid: parse HDMI VRR information Tomasz Pakuła
@ 2025-12-20 11:46 ` Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 4/4] drm/amd/display: enable HDMI VRR over PCON Tomasz Pakuła
2026-01-18 11:42 ` [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
4 siblings, 0 replies; 6+ messages in thread
From: Tomasz Pakuła @ 2025-12-20 11:46 UTC (permalink / raw)
To: alexander.deucher, maarten.lankhorst, mripard, tzimmermann,
airlied, simona, harry.wentland, sunpeng.li, siqueira
Cc: dri-devel, amd-gfx, bernhard.berger
Make the name more generic for the upcoming HDMI VRR over PCON
implementation
Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Tested-by: Bernhard Berger <bernhard.berger@gmail.com>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 ++--
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 +-
drivers/gpu/drm/amd/display/modules/inc/mod_info_packet.h | 4 ++--
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c | 4 ++--
4 files changed, 7 insertions(+), 7 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 7fe40bbba265..1318d88687ae 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -9342,7 +9342,7 @@ static void update_freesync_state_on_stream(
aconn = (struct amdgpu_dm_connector *)new_stream->dm_stream_context;
- if (aconn && (aconn->as_type == FREESYNC_TYPE_PCON_IN_WHITELIST || aconn->vsdb_info.replay_mode)) {
+ if (aconn && (aconn->as_type == ADAPTIVE_SYNC_TYPE_PCON_IN_WHITELIST || aconn->vsdb_info.replay_mode)) {
pack_sdp_v1_3 = aconn->pack_sdp_v1_3;
if (aconn->vsdb_info.amd_vsdb_version == 1)
@@ -13003,7 +13003,7 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
if (amdgpu_dm_connector->dc_link)
as_type = dm_get_adaptive_sync_support_type(amdgpu_dm_connector->dc_link);
- if (as_type == FREESYNC_TYPE_PCON_IN_WHITELIST) {
+ if (as_type == ADAPTIVE_SYNC_TYPE_PCON_IN_WHITELIST) {
i = parse_hdmi_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
if (i >= 0 && vsdb_info.freesync_supported && vsdb_info.amd_vsdb_version > 0) {
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
index d0f770dd0a95..63dc9382c48e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
@@ -1393,7 +1393,7 @@ enum adaptive_sync_type dm_get_adaptive_sync_support_type(struct dc_link *link)
if (dpcd_caps->adaptive_sync_caps.dp_adap_sync_caps.bits.ADAPTIVE_SYNC_SDP_SUPPORT == true &&
dpcd_caps->allow_invalid_MSA_timing_param == true &&
dm_is_freesync_pcon_whitelist(dpcd_caps->branch_dev_id))
- as_type = FREESYNC_TYPE_PCON_IN_WHITELIST;
+ as_type = ADAPTIVE_SYNC_TYPE_PCON_IN_WHITELIST;
break;
default:
break;
diff --git a/drivers/gpu/drm/amd/display/modules/inc/mod_info_packet.h b/drivers/gpu/drm/amd/display/modules/inc/mod_info_packet.h
index 66dc9a19aebe..91fe039c0c95 100644
--- a/drivers/gpu/drm/amd/display/modules/inc/mod_info_packet.h
+++ b/drivers/gpu/drm/amd/display/modules/inc/mod_info_packet.h
@@ -44,8 +44,8 @@ void mod_build_hf_vsif_infopacket(const struct dc_stream_state *stream,
enum adaptive_sync_type {
ADAPTIVE_SYNC_TYPE_NONE = 0,
ADAPTIVE_SYNC_TYPE_DP = 1,
- FREESYNC_TYPE_PCON_IN_WHITELIST = 2,
- FREESYNC_TYPE_PCON_NOT_IN_WHITELIST = 3,
+ ADAPTIVE_SYNC_TYPE_PCON_IN_WHITELIST = 2,
+ ADAPTIVE_SYNC_TYPE_PCON_NOT_IN_WHITELIST = 3,
ADAPTIVE_SYNC_TYPE_EDP = 4,
};
diff --git a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
index b3d55cac3569..429bc0ab86d6 100644
--- a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
+++ b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
@@ -535,12 +535,12 @@ void mod_build_adaptive_sync_infopacket(const struct dc_stream_state *stream,
if (stream != NULL)
mod_build_adaptive_sync_infopacket_v2(stream, param, info_packet);
break;
- case FREESYNC_TYPE_PCON_IN_WHITELIST:
+ case ADAPTIVE_SYNC_TYPE_PCON_IN_WHITELIST:
case ADAPTIVE_SYNC_TYPE_EDP:
mod_build_adaptive_sync_infopacket_v1(info_packet);
break;
case ADAPTIVE_SYNC_TYPE_NONE:
- case FREESYNC_TYPE_PCON_NOT_IN_WHITELIST:
+ case ADAPTIVE_SYNC_TYPE_PCON_NOT_IN_WHITELIST:
default:
break;
}
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] drm/amd/display: enable HDMI VRR over PCON
2025-12-20 11:46 [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
` (2 preceding siblings ...)
2025-12-20 11:46 ` [PATCH 3/4] drm/amd/display: rename PCON adaptive sync types Tomasz Pakuła
@ 2025-12-20 11:46 ` Tomasz Pakuła
2026-01-18 11:42 ` [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
4 siblings, 0 replies; 6+ messages in thread
From: Tomasz Pakuła @ 2025-12-20 11:46 UTC (permalink / raw)
To: alexander.deucher, maarten.lankhorst, mripard, tzimmermann,
airlied, simona, harry.wentland, sunpeng.li, siqueira
Cc: dri-devel, amd-gfx, bernhard.berger
This works the same as FreeSync over PCON just without sending FreeSync
info packets (we're sending standard DisplayPort info packets) + reading
the VRR range from the HDMI Forum vendor specific data block. PCONs take
over HDMI VRR triggering.
Prefer HDMI VRR over FreeSync to reduce VRR flickering on many TVs.
FreeSync over HDMI seems to be a fallback solution and not a first-class
citizen. This especially helps VMM7100.
Tested with VMM7100 and CH7218 based adapters on multiple HDMI 2.1 and
HDMI 2.0 devices. (Samsung S95B, LG C4, Sony Bravia 8, Dell AW3423DWF)
Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Tested-by: Bernhard Berger <bernhard.berger@gmail.com>
---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 20 ++++++++++++++++---
1 file changed, 17 insertions(+), 3 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 1318d88687ae..7860779d7ede 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -12932,6 +12932,7 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
struct dc_sink *sink;
struct amdgpu_device *adev = drm_to_adev(connector->dev);
struct amdgpu_hdmi_vsdb_info vsdb_info = {0};
+ struct drm_hdmi_vrr_cap *hdmi_vrr;
const struct edid *edid;
bool freesync_capable = false;
enum adaptive_sync_type as_type = ADAPTIVE_SYNC_TYPE_NONE;
@@ -13004,21 +13005,34 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
as_type = dm_get_adaptive_sync_support_type(amdgpu_dm_connector->dc_link);
if (as_type == ADAPTIVE_SYNC_TYPE_PCON_IN_WHITELIST) {
+ hdmi_vrr = &connector->display_info.hdmi.vrr_cap;
i = parse_hdmi_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
- if (i >= 0 && vsdb_info.freesync_supported && vsdb_info.amd_vsdb_version > 0) {
+ /* Prefer HDMI VRR over FreeSync */
+ if (hdmi_vrr->supported) {
+ amdgpu_dm_connector->pack_sdp_v1_3 = true;
+ amdgpu_dm_connector->as_type = as_type;
+
+ amdgpu_dm_connector->min_vfreq = hdmi_vrr->min_hz;
+ amdgpu_dm_connector->max_vfreq = hdmi_vrr->max_hz;
+
+ connector->display_info.monitor_range.min_vfreq = hdmi_vrr->min_hz;
+ connector->display_info.monitor_range.max_vfreq = hdmi_vrr->max_hz;
+
+ } else if (i >= 0 && vsdb_info.freesync_supported && vsdb_info.amd_vsdb_version > 0) {
amdgpu_dm_connector->pack_sdp_v1_3 = true;
amdgpu_dm_connector->as_type = as_type;
amdgpu_dm_connector->vsdb_info = vsdb_info;
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;
}
+
+ if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
+ freesync_capable = true;
}
update:
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR
2025-12-20 11:46 [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
` (3 preceding siblings ...)
2025-12-20 11:46 ` [PATCH 4/4] drm/amd/display: enable HDMI VRR over PCON Tomasz Pakuła
@ 2026-01-18 11:42 ` Tomasz Pakuła
4 siblings, 0 replies; 6+ messages in thread
From: Tomasz Pakuła @ 2026-01-18 11:42 UTC (permalink / raw)
To: alexander.deucher, maarten.lankhorst, mripard, tzimmermann,
airlied, simona, harry.wentland, sunpeng.li, siqueira
Cc: dri-devel, amd-gfx, bernhard.berger
On Sat, 2025-12-20 at 12:46 +0100, Tomasz Pakuła wrote:
> Adaptive Sync over PCON is only available as FreeSync over HDMI. TVs which do
> not support FreeSync, do not have working VRR with DP -> HDMI 2.1 adapters even
> though adapters will take care of HDMI VRR info packets.
>
> First two patches add generic drm edid parsing for HDMI VRR and ALLM.
>
> Since HDMI VRR relies on FRL modes, this will only be enabled for PCONs in the
> VRR whitelist. HDMI VRR for native HDMI connector will still not be
> possible/attempted.
>
> I myself validated these changes with my Samsung S95B + Bernhard validated on
> LG C4 + FreeSync-less Sony Bravia 8. I used Alienware AW3423DWF that only
> has HDMI 2.0 to check that FreeSync still triggers properly for "older" hardware
>
> Tomasz Pakuła (4):
> drm/edid: parse HDMI ALLM info
> drm/edid: parse HDMI VRR information
> drm/amd/display: rename PCON adaptive sync types
> drm/amd/display: enable HDMI VRR over PCON
>
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 24 +++++++++++++++----
> .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 +-
> .../amd/display/modules/inc/mod_info_packet.h | 4 ++--
> .../display/modules/info_packet/info_packet.c | 4 ++--
> drivers/gpu/drm/drm_edid.c | 20 ++++++++++++++++
> include/drm/drm_connector.h | 23 ++++++++++++++++++
> 6 files changed, 67 insertions(+), 10 deletions(-)
I'd like to inform you that this patch series will be superseded by
another, bigger patch series which compiles my recent work as all the
separate series/patches di conflict with each other.
Thank you.
Tomasz
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-01-19 8:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-20 11:46 [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 1/4] drm/edid: parse HDMI ALLM info Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 2/4] drm/edid: parse HDMI VRR information Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 3/4] drm/amd/display: rename PCON adaptive sync types Tomasz Pakuła
2025-12-20 11:46 ` [PATCH 4/4] drm/amd/display: enable HDMI VRR over PCON Tomasz Pakuła
2026-01-18 11:42 ` [PATCH 0/4] amdgpu: Enable Adaptive Sync over PCON with HDMI VRR Tomasz Pakuła
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox