Am 27.01.21 um 13:23 schrieb Ernst Sjöstrand:
Just some additional thoughts...

The amdgpu driver already supports this as I mentioned, however only for the non-DC codepath. "Set HDMI/DPAudio. Only affects non-DC display handling. The default is -1 (Enabled), set 0 to disabled it."

I've added this because I completely reverse engineered this roughly 10 years ago without any hardware documentation.


Linux doesn't have a good infrastructure to disable sound cards afaik. If someone has 6 displays, do they really need 6 extra sound cards? Minor thing, I know.

Well yes, that is intentional :) In general the kernel should expose and manage all available hardware.

What you do with that in userspace is a completely different question.

Christian.


It was very easy to do, and didn't feel intrusive.
//E

Den ons 27 jan. 2021 kl 12:11 skrev Christian König <[email protected] <mailto:[email protected]>>:

    Am 26.01.21 um 17:15 schrieb Harry Wentland:
    > 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.

    Yeah agree. A feature like this in a specific hardware driver is
    justified if it prevents hangs or something similar.

    But this just sounds like a problem in a higher level of the stack
    which
    should be fixed hardware driver independently.

    Christian.

    >
    > Harry
    >
    >> It also cleans up the clutter in the audio selection list.
    >>
    >> //E
    >>
    >> Den tis 26 jan. 2021 kl 15:34 skrev Alex Deucher
    >> <[email protected] <mailto:[email protected]>
    <mailto:[email protected] <mailto:[email protected]>>>:
    >>
    >>     On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand
    <[email protected] <mailto:[email protected]>
    >>     <mailto:[email protected] <mailto:[email protected]>>> 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 <[email protected]
    <mailto:[email protected]>
    >>     <mailto:[email protected] <mailto:[email protected]>>>
    >>
    >>     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
    >>      > [email protected]
    <mailto:[email protected]>
    >> <mailto:[email protected]
    <mailto:[email protected]>>
    >>      > 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%7Cchristian.koenig%40amd.com%7C3354fa4fd15e44cf893008d8c2be6eae%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637473470463299654%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=z7%2FzAtqTi3XNYmiX3xe7u9IhsxpwclmNIlQUAEolFnI%3D&reserved=0>
    >>
    
<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
    
<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=04%7C01%7Cchristian.koenig%40amd.com%7C3354fa4fd15e44cf893008d8c2be6eae%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637473470463299654%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=z7%2FzAtqTi3XNYmiX3xe7u9IhsxpwclmNIlQUAEolFnI%3D&reserved=0>>
    >>
    >>
    >> _______________________________________________
    >> amd-gfx mailing list
    >> [email protected]
    <mailto:[email protected]>
    >> 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%7Cchristian.koenig%40amd.com%7C3354fa4fd15e44cf893008d8c2be6eae%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637473470463309647%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=P1LjkrSmbCSv0NuUJiS3aMO2poxzg3BzrlYr2p%2FSISw%3D&reserved=0>
    >>
    > _______________________________________________
    > amd-gfx mailing list
    > [email protected] <mailto:[email protected]>
    > 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%7Cchristian.koenig%40amd.com%7C3354fa4fd15e44cf893008d8c2be6eae%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637473470463309647%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=P1LjkrSmbCSv0NuUJiS3aMO2poxzg3BzrlYr2p%2FSISw%3D&reserved=0>


_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to