AMD General It may not be necessary to identify whether it is FRL when creating the queue. FRL is not determined until link detection. Whether make the queue active or not is dynamically determined by whether an active FRL stream presents.
> -----Original Message----- > From: amd-gfx <[email protected]> On Behalf Of Timur > Kristóf > Sent: Saturday, July 11, 2026 07:30 > To: [email protected]; Deucher, Alexander > <[email protected]>; Tvrtko Ursulin <[email protected]>; > Natalie Vock <[email protected]>; Melissa Wen <[email protected]>; > Limonciello, Mario <[email protected]>; Hung, Alex > <[email protected]>; Wentland, Harry <[email protected]> > Cc: Timur Kristóf <[email protected]> > Subject: [PATCH 2/2] drm/amd/display: Check HDMI FRL support before > creating polling workqueue > > The workqueue is not necessary when FRL is not supported or when it's > disabled. Add a helper to tell when the current board has any HDMI FRL > capable connectors and call that before creating the workqueue. > > Signed-off-by: Timur Kristóf <[email protected]> > --- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- > drivers/gpu/drm/amd/display/dc/core/dc.c | 26 +++++++++++++++++++ > drivers/gpu/drm/amd/display/dc/dc.h | 2 ++ > 3 files changed, 29 insertions(+), 1 deletion(-) > > 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 6299f0e384f1..87d7b60ceb3f 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -827,7 +827,7 @@ static int amdgpu_dm_init(struct amdgpu_device > *adev) > > dc_init_callbacks(adev->dm.dc, &init_params); > } > - if (adev->dm.dc->caps.max_links > 0) { > + if (dc_is_hdmi_frl_supported(adev->dm.dc)) { > adev->dm.hdmi_frl_status_polling_wq = > > create_singlethread_workqueue("hdmi_frl_status_polling_wq"); > if (!adev->dm.hdmi_frl_status_polling_wq) > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c > b/drivers/gpu/drm/amd/display/dc/core/dc.c > index 1b6627a92d24..1a7073abb8ba 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c > @@ -6592,6 +6592,32 @@ void > dc_mclk_switch_using_fw_based_vblank_stretch_shut_down(struct dc *dc) > dc->current_state- > >bw_ctx.bw.dcn.clk.fw_based_mclk_switching_shut_down = true; } > > +/** > + * dc_is_hdmi_frl_supported() - Check HDMI FRL support > + * > + * @dc: [in] dc structure > + * > + * Return: > + * True if the current board has any HDMI FRL capable connectors, > + * False otherwise. > + */ > +bool dc_is_hdmi_frl_supported(struct dc *dc) { > + int i; > + > + if (!dc->config.enable_frl) > + return false; > + > + for (i = 0; i < dc->link_count; ++i) { > + if (dc->links[i] && > + dc->links[i]->link_enc && > + dc->links[i]->link_enc- > >features.flags.bits.IS_HDMI_FRL_CAPABLE) > + return true; > + } > + > + return false; > +} > + > /** > * dc_is_dmub_outbox_supported - Check if DMUB firmware support outbox > notification > * > diff --git a/drivers/gpu/drm/amd/display/dc/dc.h > b/drivers/gpu/drm/amd/display/dc/dc.h > index 13c1f7cd9d7d..d27c7437ee7a 100644 > --- a/drivers/gpu/drm/amd/display/dc/dc.h > +++ b/drivers/gpu/drm/amd/display/dc/dc.h > @@ -3056,6 +3056,8 @@ bool dc_set_ips_disable(struct dc *dc, unsigned int > disable_ips); void dc_z10_restore(const struct dc *dc); void > dc_z10_save_init(struct dc *dc); > > +bool dc_is_hdmi_frl_supported(struct dc *dc); > + > bool dc_is_dmub_outbox_supported(struct dc *dc); bool > dc_enable_dmub_notifications(struct dc *dc); > > -- > 2.55.0
