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

2021-01-27 Thread Christian König

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 
>:


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
>> mailto:alexdeuc...@gmail.com>
>>:
>>
>>     On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand
mailto:ern...@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 mailto:ern...@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(
>>  >                 >res_ctx, pool,

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

2021-01-27 Thread 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."

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.

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

Den ons 27 jan. 2021 kl 12:11 skrev Christian König <
ckoenig.leichtzumer...@gmail.com>:

> 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
> >> mailto:alexdeuc...@gmail.com>>:
> >>
> >> On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand  >> > 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  >> >
> >>
> >> 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(
> >>  > >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 

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

2021-01-27 Thread Christian König

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 
mailto:alexdeuc...@gmail.com>>:


    On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand mailto:ern...@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 mailto:ern...@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(

 >                 >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@lists.freedesktop.org 


 > https://lists.freedesktop.org/mailman/listinfo/amd-gfx

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

2021-01-26 Thread 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.


Harry


It also cleans up the clutter in the audio selection list.

//E

Den tis 26 jan. 2021 kl 15:34 skrev Alex Deucher >:


On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand mailto:ern...@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 mailto:ern...@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(
 >                 >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@lists.freedesktop.org 
 > https://lists.freedesktop.org/mailman/listinfo/amd-gfx





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

2021-01-26 Thread Ernst Sjöstrand
No problems with amdgpu, but when my headphone port is glitching I often
end up with some HDMI audio output selected instead.

It also cleans up the clutter in the audio selection list.

//E

Den tis 26 jan. 2021 kl 15:34 skrev Alex Deucher :

> On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand  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 
>
> 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(
> > >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@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


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

2021-01-26 Thread Alex Deucher
On Tue, Jan 26, 2021 at 9:32 AM Ernst Sjöstrand  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 

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(
> >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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


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

2021-01-26 Thread Ernst Sjöstrand
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 
---
 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(
>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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx