[PATCH] drm/amd/display: Add DC feature flag to disable audio

Harry Wentland harry.wentland at amd.com
Tue Jan 26 16:15:02 UTC 2021


On 2021-01-26 9:51 a.m., Ernst Sjöstrand wrote:
> No problems with amdgpu, but when my headphone port is glitching I often 
> end up with some HDMI audio output selected instead.
> 

Wouldn't this be better fixed in the audio management service, like 
PulseAudio? It sounds like it's not remembering your preferences correctly.

Harry

> It also cleans up the clutter in the audio selection list.
> 
> //E
> 
> Den tis 26 jan. 2021 kl 15:34 skrev Alex Deucher <alexdeucher at gmail.com 
> <mailto:alexdeucher at gmail.com>>:
> 
>     On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand <ernstp at gmail.com
>     <mailto:ernstp at gmail.com>> wrote:
>      >
>      > With the pre-DC path you could set audio=0 to disable audio.
>      > This adds a similar feature for the DC path with
>      > amdgpu.dcfeaturemask=0x10.
>      >
>      > Signed-off-by: Ernst Sjöstrand <ernstp at gmail.com
>     <mailto:ernstp at gmail.com>>
> 
>     Is there a reason you want this?  I.e., is audio causing problems
>     for you?
> 
>     Alex
> 
>      > ---
>      >  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++
>      >  drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 7 ++++---
>      >  drivers/gpu/drm/amd/display/dc/dc.h               | 1 +
>      >  drivers/gpu/drm/amd/include/amd_shared.h          | 1 +
>      >  4 files changed, 9 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 e490fc2486f7..322d9439b9c2 100644
>      > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>      > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>      > @@ -1013,6 +1013,9 @@ static int amdgpu_dm_init(struct
>     amdgpu_device *adev)
>      >         if (amdgpu_dc_feature_mask & DC_DISABLE_FRACTIONAL_PWM_MASK)
>      >                 init_data.flags.disable_fractional_pwm = true;
>      >
>      > +       if (amdgpu_dc_feature_mask & DC_DISABLE_AUDIO)
>      > +               init_data.flags.disable_audio = true;
>      > +
>      >         init_data.flags.power_down_display_on_boot = true;
>      >
>      >         init_data.soc_bounding_box = adev->dm.soc_bounding_box;
>      > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
>     b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
>      > index 68b65a090d17..4cc0d2308c98 100644
>      > --- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
>      > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
>      > @@ -2141,9 +2141,10 @@ enum dc_status resource_map_pool_resources(
>      >                 true);
>      >
>      >         /* TODO: Add check if ASIC support and EDID audio */
>      > -       if (!stream->converter_disable_audio &&
>      > -           dc_is_audio_capable_signal(pipe_ctx->stream->signal) &&
>      > -           stream->audio_info.mode_count &&
>     stream->audio_info.flags.all) {
>      > +       if (!dc->config.disable_audio &&
>      > +               !stream->converter_disable_audio &&
>      > +             
>       dc_is_audio_capable_signal(pipe_ctx->stream->signal) &&
>      > +               stream->audio_info.mode_count &&
>     stream->audio_info.flags.all) {
>      >                 pipe_ctx->stream_res.audio = find_first_free_audio(
>      >                 &context->res_ctx, pool,
>     pipe_ctx->stream_res.stream_enc->id, dc_ctx->dce_version);
>      >
>      > diff --git a/drivers/gpu/drm/amd/display/dc/dc.h
>     b/drivers/gpu/drm/amd/display/dc/dc.h
>      > index 71d46ade24e5..2ab6d770c66b 100644
>      > --- a/drivers/gpu/drm/amd/display/dc/dc.h
>      > +++ b/drivers/gpu/drm/amd/display/dc/dc.h
>      > @@ -297,6 +297,7 @@ struct dc_config {
>      >         bool multi_mon_pp_mclk_switch;
>      >         bool disable_dmcu;
>      >         bool enable_4to1MPC;
>      > +       bool disable_audio;
>      >  #if defined(CONFIG_DRM_AMD_DC_DCN)
>      >         bool clamp_min_dcfclk;
>      >  #endif
>      > diff --git a/drivers/gpu/drm/amd/include/amd_shared.h
>     b/drivers/gpu/drm/amd/include/amd_shared.h
>      > index 9676016a37ce..7202d816a97e 100644
>      > --- a/drivers/gpu/drm/amd/include/amd_shared.h
>      > +++ b/drivers/gpu/drm/amd/include/amd_shared.h
>      > @@ -220,6 +220,7 @@ enum DC_FEATURE_MASK {
>      >         DC_MULTI_MON_PP_MCLK_SWITCH_MASK = 0x2,
>      >         DC_DISABLE_FRACTIONAL_PWM_MASK = 0x4,
>      >         DC_PSR_MASK = 0x8,
>      > +       DC_DISABLE_AUDIO = 0x10,
>      >  };
>      >
>      >  enum DC_DEBUG_MASK {
>      > --
>      > 2.27.0
>      >
>      > _______________________________________________
>      > amd-gfx mailing list
>      > amd-gfx at lists.freedesktop.org <mailto:amd-gfx at lists.freedesktop.org>
>      > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>     <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=04%7C01%7CHARRY.WENTLAND%40amd.com%7C736532bfba5d4b96e9ac08d8c209e99d%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637472695123517788%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=1MWOfMfaIhdV%2BcnH%2BeAC0aRqb9BMVrdvReZBKG2ZJSc%3D&reserved=0>
> 
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> 


More information about the amd-gfx mailing list