RE: [DRM] amdgpu: HDMI FreeSync not exposed on Samsung S22C31x despite AMD VSDB
From: Zuo, Jerry
Date: Wed Sep 23 2026 - 15:45:33 EST
AMD General
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
> teapot
> Sent: Wednesday, September 23, 2026 12:07
> To: Ata İlhan Köktürk <atailhan2006@xxxxxxxxx>; amd-
> gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Wentland, Harry <Harry.Wentland@xxxxxxx>; Li, Sun peng (Leo)
> <Sunpeng.Li@xxxxxxx>; Rodrigo Siqueira <siqueira@xxxxxxxxxx>; Deucher,
> Alexander <Alexander.Deucher@xxxxxxx>; Koenig, Christian
> <Christian.Koenig@xxxxxxx>; David Airlie <airlied@xxxxxxxxx>; Simona
> Vetter <simona@xxxxxxxx>; dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [DRM] amdgpu: HDMI FreeSync not exposed on Samsung
> S22C31x despite AMD VSDB
>
> [Some people who received this message don't often get email from
> huangalex409@xxxxxxxxx. Learn why this is important at
> https://aka.ms/LearnAboutSenderIdentification ]
>
> On 2026-09-22 20:27, Ata İlhan Köktürk wrote:
> > Hi,
> >
> > I am investigating an issue where HDMI FreeSync is not exposed for a
> > Samsung S22C31x monitor on an AMD Picasso/Raven 2 GPU, although the
> > monitor advertises an AMD FreeSync range in its EDID and VRR works
> > under Windows.
> >
> > Hardware/software:
> >
> > * GPU: 03:00.0 VGA compatible controller [0300]:
> > Advanced Micro Devices, Inc. [AMD/ATI] Picasso/Raven 2 [Radeon Vega
> > Series / Radeon Vega Mobile Series] [1002:15d8] (rev c2)
> > * Kernel: 7.2.5-200.fc44
> > * Compositor: Sway (Wayland)
> > * Monitor: Samsung S22C31x
> > * Connector: HDMI-A-1
> > * EDID serial: H9DX100210
> > * Kernel command line includes: amdgpu.freesync_video=1
> >
> > Observed:
> >
> > * swaymsg -t get_outputs reports "Adaptive sync: disabled" for HDMI-A-1.
> > * Adaptive sync remains disabled at both 1920x1080@60 Hz and
> 1920x1080@75 Hz.
> > * The same monitor exposes and enables FreeSync under Windows.
> >
> > The EDID contains the following AMD Vendor-Specific Data Block:
> >
> > Vendor-Specific Data Block (AMD), OUI 00-00-1A:
> > Version: 1
> > Feature Caps: 0x01
> > Minimum Refresh Rate: 48 Hz
> > Maximum Refresh Rate: 75 Hz
> > Flags 1.x: 0x00>
> > The HDMI VSDB therefore appears to advertise a 48-75 Hz FreeSync range.
> >
> > There is also this message in dmesg:
> >
> > amdgpu 0000:03:00.0: [drm] Failed to setup vendor infoframe on
> > connector HDMI-A-1: -22
> >
> > I believe this is the -EINVAL path from
> > drm_hdmi_vendor_infoframe_from_display_mode() for this timing and is
> > probably unrelated to the FreeSync issue.
> >
> > The part I am currently investigating is
> amdgpu_dm_update_freesync_caps().
> >
> > For HDMI, the driver calls parse_hdmi_amd_vsdb(), which on this DCN
> > configuration goes through the DMUB path:
> >
> > parse_hdmi_amd_vsdb()
> > -> parse_edid_cea()
> > -> parse_edid_cea_dmub()
> > -> dm_edid_parser_send_cea()
> > -> output->amd_vsdb.freesync_supported
> >
> > If the DMUB parser returns freesync_supported == 0, the driver does
> > not expose the connector as VRR capable.
> >
> > What makes this interesting is that the DRM EDID parser also contains
> > the corresponding AMD VSDB information in
> > connector->display_info.amd_vsdb, while the DMUB result
> > does not result in FreeSync being exposed.
> >
> > I am wondering about the following:
> >
> > 1. Is the AMD VSDB layout above expected to be accepted by the DMUB
> > EDID parser, particularly with Feature Caps 0x01, Flags 1.x == 0x00,
> > and no MCCS VCP code byte?
> AFAIK the driver will consider HDMI FreeSync unavailable if MCCS VCP code is
> 0x0. HDMI FreeSync needs this VCP code.>
> > 2. If the DMUB parser rejects this form of AMD VSDB, should amdgpu_dm
> > fall back to the software-parsed connector->display_info.amd_vsdb when
> > determining FreeSync capability?
> The amd_vsdb struct is currently only for the V2+ luminosity fields, and don't
> affect FreeSync detection. I had added FreeSync fields support and those
> changes are in drm-next, but haven't made it up to the Torvalds tree yet.
> >
> > I have a working kernel tree and can run diagnostic tests or test a
> > small patch. I can also provide drm.debug output or DMUB-related
> > traces if useful.
> I think this might be a case where the Windows FreeSync detection has
> diverged from the Linux detection, maybe Harry would be able to provide
> more insight on this?
>
> The monitor's EDID would probably be useful too, I'm not quite sure how to
> make sense of the edid-decode output since there's a few guessed fields in
> the AMD VSDB block and hasn't been updated since 2024.>
> > Thanks,
> > Ata İlhan Köktürk
>
> Best,
> Alex
Yes, we are working to switch parsing AMD VSDB from dmub to public drm. Will get it ready once internal validation is done.