Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K monitors

2020-09-25 Thread Alex Deucher
On Fri, Sep 25, 2020 at 5:13 PM Matt Coffin  wrote:
>
> Thanks for the quick reply,
>
> Would it make sense, since there seem to be issues with both
> before/after initialization, to (temporarily?) add a module parameter
> for users so that they can switch between these two behaviors easily
> based on what works for them?

I'd rather work on a proper fix.  module options tend to lead to more
problems than they solve as people tend blindly apply them.

Alex

>
> If so, if you can toss me a hint at what name for the param would make
> sense, I can take a crack at a patch for it, for debugging by the people
> in the issue on GitLab.
>
> Cheers, and thanks for the time,
> Matt
>
> GL issue for reference:
> https://gitlab.freedesktop.org/drm/amd/-/issues/1260
>
> On 9/25/20 3:09 PM, Alex Deucher wrote:
> > On Fri, Sep 25, 2020 at 5:05 PM Matt Coffin  wrote:
> >>
> >> Sorry to bother you guys, but trying to learn about some of these
> >> things, and I'm tracking the issue this relates to pretty closely on 
> >> GitLab.
> >>
> >> What does DAL stand for in this context?
> >
> > DAL is the name of the display team within AMD.
> >
> > Alex
> >
> >>
> >> Thanks in advance for the help,
> >> Matt
> >>
> >> On 9/24/20 9:38 PM, Quan, Evan wrote:
> >>> [AMD Official Use Only - Internal Distribution Only]
> >>>
> >>> That(postpone SOCCLK/UCLK enablement) will be revised and added back 
> >>> after confirmed with DAL team.
> >>> For now, we just revert it to get around the screen flicker issue 
> >>> introduced.
> >>>
> >>> BR
> >>> Evan
> >>> -Original Message-
> >>> From: Alex Deucher 
> >>> Sent: Thursday, September 24, 2020 9:01 PM
> >>> To: Quan, Evan 
> >>> Cc: amd-gfx list ; Deucher, Alexander 
> >>> 
> >>> Subject: Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 
> >>> 2*4K monitors
> >>>
> >>> On Thu, Sep 24, 2020 at 6:10 AM Evan Quan  wrote:
> >>>>
> >>>> Revert the guilty change introduced by the commit below:
> >>>> drm/amd/pm: postpone SOCCLK/UCLK enablement after DAL
> >>>> initialization(V2)
> >>>>
> >>>> Change-Id: I0cab619ffdf0f83b14ba5d2907e1b9c02a984e2f
> >>>> Signed-off-by: Evan Quan 
> >>>
> >>> Won't this effectively disable the potential fix for multiple monitors at 
> >>> boot time?
> >>>
> >>> Acked-by: Alex Deucher 
> >>>
> >>>> ---
> >>>>  .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c   | 43 ++-
> >>>>  1 file changed, 12 insertions(+), 31 deletions(-)
> >>>>
> >>>> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >>>> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >>>> index 1695b36dc23c..be44cb941e73 100644
> >>>> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >>>> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >>>> @@ -316,6 +316,18 @@ navi10_get_allowed_feature_mask(struct smu_context 
> >>>> *smu,
> >>>> if (smu->dc_controlled_by_gpio)
> >>>> *(uint64_t *)feature_mask |=
> >>>> FEATURE_MASK(FEATURE_ACDC_BIT);
> >>>>
> >>>> +   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> >>>> +   *(uint64_t *)feature_mask |=
> >>>> + FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> >>>> +
> >>>> +   /* DPM UCLK enablement should be skipped for navi10 A0 secure 
> >>>> board */
> >>>> +   if (!(is_asic_secure(smu) &&
> >>>> +(adev->asic_type == CHIP_NAVI10) &&
> >>>> +(adev->rev_id == 0)) &&
> >>>> +   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> >>>> +   *(uint64_t *)feature_mask |= 
> >>>> FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> >>>> +   | 
> >>>> FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> >>>> +   |
> >>>> + FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> >>>> +
> >>>> /* DS SOCCLK enablement should be skipped for navi10 A0 secure 
> >>>> board *

Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K monitors

2020-09-25 Thread Matt Coffin
Thanks for the quick reply,

Would it make sense, since there seem to be issues with both
before/after initialization, to (temporarily?) add a module parameter
for users so that they can switch between these two behaviors easily
based on what works for them?

If so, if you can toss me a hint at what name for the param would make
sense, I can take a crack at a patch for it, for debugging by the people
in the issue on GitLab.

Cheers, and thanks for the time,
Matt

GL issue for reference:
https://gitlab.freedesktop.org/drm/amd/-/issues/1260

On 9/25/20 3:09 PM, Alex Deucher wrote:
> On Fri, Sep 25, 2020 at 5:05 PM Matt Coffin  wrote:
>>
>> Sorry to bother you guys, but trying to learn about some of these
>> things, and I'm tracking the issue this relates to pretty closely on GitLab.
>>
>> What does DAL stand for in this context?
> 
> DAL is the name of the display team within AMD.
> 
> Alex
> 
>>
>> Thanks in advance for the help,
>> Matt
>>
>> On 9/24/20 9:38 PM, Quan, Evan wrote:
>>> [AMD Official Use Only - Internal Distribution Only]
>>>
>>> That(postpone SOCCLK/UCLK enablement) will be revised and added back after 
>>> confirmed with DAL team.
>>> For now, we just revert it to get around the screen flicker issue 
>>> introduced.
>>>
>>> BR
>>> Evan
>>> -Original Message-----
>>> From: Alex Deucher 
>>> Sent: Thursday, September 24, 2020 9:01 PM
>>> To: Quan, Evan 
>>> Cc: amd-gfx list ; Deucher, Alexander 
>>> 
>>> Subject: Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 
>>> 2*4K monitors
>>>
>>> On Thu, Sep 24, 2020 at 6:10 AM Evan Quan  wrote:
>>>>
>>>> Revert the guilty change introduced by the commit below:
>>>> drm/amd/pm: postpone SOCCLK/UCLK enablement after DAL
>>>> initialization(V2)
>>>>
>>>> Change-Id: I0cab619ffdf0f83b14ba5d2907e1b9c02a984e2f
>>>> Signed-off-by: Evan Quan 
>>>
>>> Won't this effectively disable the potential fix for multiple monitors at 
>>> boot time?
>>>
>>> Acked-by: Alex Deucher 
>>>
>>>> ---
>>>>  .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c   | 43 ++-
>>>>  1 file changed, 12 insertions(+), 31 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>>>> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>>>> index 1695b36dc23c..be44cb941e73 100644
>>>> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>>>> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>>>> @@ -316,6 +316,18 @@ navi10_get_allowed_feature_mask(struct smu_context 
>>>> *smu,
>>>> if (smu->dc_controlled_by_gpio)
>>>> *(uint64_t *)feature_mask |=
>>>> FEATURE_MASK(FEATURE_ACDC_BIT);
>>>>
>>>> +   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
>>>> +   *(uint64_t *)feature_mask |=
>>>> + FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
>>>> +
>>>> +   /* DPM UCLK enablement should be skipped for navi10 A0 secure 
>>>> board */
>>>> +   if (!(is_asic_secure(smu) &&
>>>> +(adev->asic_type == CHIP_NAVI10) &&
>>>> +(adev->rev_id == 0)) &&
>>>> +   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
>>>> +   *(uint64_t *)feature_mask |= 
>>>> FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
>>>> +   | 
>>>> FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
>>>> +   |
>>>> + FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
>>>> +
>>>> /* DS SOCCLK enablement should be skipped for navi10 A0 secure 
>>>> board */
>>>> if (is_asic_secure(smu) &&
>>>> (adev->asic_type == CHIP_NAVI10) && @@ -2629,43 +2641,12
>>>> @@ static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
>>>>
>>>>  static int navi10_post_smu_init(struct smu_context *smu)  {
>>>> -   struct smu_feature *feature = >smu_feature;
>>>> struct amdgpu_device *adev = smu->adev;
>>>> -   uint64_t feature_mask = 0;
>>>> int ret = 0;
>>>>
>>>> if (amdgpu_sriov_vf(adev))
>>>> return 0;
>>

Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K monitors

2020-09-25 Thread Alex Deucher
On Fri, Sep 25, 2020 at 5:05 PM Matt Coffin  wrote:
>
> Sorry to bother you guys, but trying to learn about some of these
> things, and I'm tracking the issue this relates to pretty closely on GitLab.
>
> What does DAL stand for in this context?

DAL is the name of the display team within AMD.

Alex

>
> Thanks in advance for the help,
> Matt
>
> On 9/24/20 9:38 PM, Quan, Evan wrote:
> > [AMD Official Use Only - Internal Distribution Only]
> >
> > That(postpone SOCCLK/UCLK enablement) will be revised and added back after 
> > confirmed with DAL team.
> > For now, we just revert it to get around the screen flicker issue 
> > introduced.
> >
> > BR
> > Evan
> > -Original Message-
> > From: Alex Deucher 
> > Sent: Thursday, September 24, 2020 9:01 PM
> > To: Quan, Evan 
> > Cc: amd-gfx list ; Deucher, Alexander 
> > 
> > Subject: Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 
> > 2*4K monitors
> >
> > On Thu, Sep 24, 2020 at 6:10 AM Evan Quan  wrote:
> >>
> >> Revert the guilty change introduced by the commit below:
> >> drm/amd/pm: postpone SOCCLK/UCLK enablement after DAL
> >> initialization(V2)
> >>
> >> Change-Id: I0cab619ffdf0f83b14ba5d2907e1b9c02a984e2f
> >> Signed-off-by: Evan Quan 
> >
> > Won't this effectively disable the potential fix for multiple monitors at 
> > boot time?
> >
> > Acked-by: Alex Deucher 
> >
> >> ---
> >>  .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c   | 43 ++-
> >>  1 file changed, 12 insertions(+), 31 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >> index 1695b36dc23c..be44cb941e73 100644
> >> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> >> @@ -316,6 +316,18 @@ navi10_get_allowed_feature_mask(struct smu_context 
> >> *smu,
> >> if (smu->dc_controlled_by_gpio)
> >> *(uint64_t *)feature_mask |=
> >> FEATURE_MASK(FEATURE_ACDC_BIT);
> >>
> >> +   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> >> +   *(uint64_t *)feature_mask |=
> >> + FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> >> +
> >> +   /* DPM UCLK enablement should be skipped for navi10 A0 secure 
> >> board */
> >> +   if (!(is_asic_secure(smu) &&
> >> +(adev->asic_type == CHIP_NAVI10) &&
> >> +(adev->rev_id == 0)) &&
> >> +   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> >> +   *(uint64_t *)feature_mask |= 
> >> FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> >> +   | 
> >> FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> >> +   |
> >> + FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> >> +
> >> /* DS SOCCLK enablement should be skipped for navi10 A0 secure 
> >> board */
> >> if (is_asic_secure(smu) &&
> >> (adev->asic_type == CHIP_NAVI10) && @@ -2629,43 +2641,12
> >> @@ static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
> >>
> >>  static int navi10_post_smu_init(struct smu_context *smu)  {
> >> -   struct smu_feature *feature = >smu_feature;
> >> struct amdgpu_device *adev = smu->adev;
> >> -   uint64_t feature_mask = 0;
> >> int ret = 0;
> >>
> >> if (amdgpu_sriov_vf(adev))
> >> return 0;
> >>
> >> -   /* For Naiv1x, enable these features only after DAL initialization 
> >> */
> >> -   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> >> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> >> -
> >> -   /* DPM UCLK enablement should be skipped for navi10 A0 secure 
> >> board */
> >> -   if (!(is_asic_secure(smu) &&
> >> -(adev->asic_type == CHIP_NAVI10) &&
> >> -(adev->rev_id == 0)) &&
> >> -   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> >> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> >> -   | 
> >> FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> >> -   | 
> >

Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K monitors

2020-09-25 Thread Matt Coffin
Sorry to bother you guys, but trying to learn about some of these
things, and I'm tracking the issue this relates to pretty closely on GitLab.

What does DAL stand for in this context?

Thanks in advance for the help,
Matt

On 9/24/20 9:38 PM, Quan, Evan wrote:
> [AMD Official Use Only - Internal Distribution Only]
> 
> That(postpone SOCCLK/UCLK enablement) will be revised and added back after 
> confirmed with DAL team.
> For now, we just revert it to get around the screen flicker issue introduced.
> 
> BR
> Evan
> -Original Message-
> From: Alex Deucher 
> Sent: Thursday, September 24, 2020 9:01 PM
> To: Quan, Evan 
> Cc: amd-gfx list ; Deucher, Alexander 
> 
> Subject: Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K 
> monitors
> 
> On Thu, Sep 24, 2020 at 6:10 AM Evan Quan  wrote:
>>
>> Revert the guilty change introduced by the commit below:
>> drm/amd/pm: postpone SOCCLK/UCLK enablement after DAL
>> initialization(V2)
>>
>> Change-Id: I0cab619ffdf0f83b14ba5d2907e1b9c02a984e2f
>> Signed-off-by: Evan Quan 
> 
> Won't this effectively disable the potential fix for multiple monitors at 
> boot time?
> 
> Acked-by: Alex Deucher 
> 
>> ---
>>  .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c   | 43 ++-
>>  1 file changed, 12 insertions(+), 31 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>> index 1695b36dc23c..be44cb941e73 100644
>> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
>> @@ -316,6 +316,18 @@ navi10_get_allowed_feature_mask(struct smu_context *smu,
>> if (smu->dc_controlled_by_gpio)
>> *(uint64_t *)feature_mask |=
>> FEATURE_MASK(FEATURE_ACDC_BIT);
>>
>> +   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
>> +   *(uint64_t *)feature_mask |=
>> + FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
>> +
>> +   /* DPM UCLK enablement should be skipped for navi10 A0 secure board 
>> */
>> +   if (!(is_asic_secure(smu) &&
>> +(adev->asic_type == CHIP_NAVI10) &&
>> +(adev->rev_id == 0)) &&
>> +   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
>> +   *(uint64_t *)feature_mask |= 
>> FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
>> +   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
>> +   |
>> + FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
>> +
>> /* DS SOCCLK enablement should be skipped for navi10 A0 secure board 
>> */
>> if (is_asic_secure(smu) &&
>> (adev->asic_type == CHIP_NAVI10) && @@ -2629,43 +2641,12
>> @@ static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
>>
>>  static int navi10_post_smu_init(struct smu_context *smu)  {
>> -   struct smu_feature *feature = >smu_feature;
>> struct amdgpu_device *adev = smu->adev;
>> -   uint64_t feature_mask = 0;
>> int ret = 0;
>>
>> if (amdgpu_sriov_vf(adev))
>> return 0;
>>
>> -   /* For Naiv1x, enable these features only after DAL initialization */
>> -   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
>> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
>> -
>> -   /* DPM UCLK enablement should be skipped for navi10 A0 secure board 
>> */
>> -   if (!(is_asic_secure(smu) &&
>> -(adev->asic_type == CHIP_NAVI10) &&
>> -(adev->rev_id == 0)) &&
>> -   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
>> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
>> -   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
>> -   | FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
>> -
>> -   if (!feature_mask)
>> -   return 0;
>> -
>> -   bitmap_or(feature->allowed,
>> - feature->allowed,
>> - (unsigned long *)(_mask),
>> - SMU_FEATURE_MAX);
>> -
>> -   ret = smu_cmn_feature_update_enable_state(smu,
>> - feature_mask,
>> - true);
>> -   if (ret) {
>> -   dev_err(adev->dev, "Failed to post uclk/socclk dpm 
>> enablemen

Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K monitors

2020-09-24 Thread Deucher, Alexander
[AMD Official Use Only - Internal Distribution Only]

Thanks.
Acked-by: Alex Deucher 

From: Quan, Evan 
Sent: Thursday, September 24, 2020 11:38 PM
To: Alex Deucher 
Cc: amd-gfx list ; Deucher, Alexander 

Subject: RE: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K 
monitors

[AMD Official Use Only - Internal Distribution Only]

That(postpone SOCCLK/UCLK enablement) will be revised and added back after 
confirmed with DAL team.
For now, we just revert it to get around the screen flicker issue introduced.

BR
Evan
-Original Message-
From: Alex Deucher 
Sent: Thursday, September 24, 2020 9:01 PM
To: Quan, Evan 
Cc: amd-gfx list ; Deucher, Alexander 

Subject: Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K 
monitors

On Thu, Sep 24, 2020 at 6:10 AM Evan Quan  wrote:
>
> Revert the guilty change introduced by the commit below:
> drm/amd/pm: postpone SOCCLK/UCLK enablement after DAL
> initialization(V2)
>
> Change-Id: I0cab619ffdf0f83b14ba5d2907e1b9c02a984e2f
> Signed-off-by: Evan Quan 

Won't this effectively disable the potential fix for multiple monitors at boot 
time?

Acked-by: Alex Deucher 

> ---
>  .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c   | 43 ++-
>  1 file changed, 12 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> index 1695b36dc23c..be44cb941e73 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> @@ -316,6 +316,18 @@ navi10_get_allowed_feature_mask(struct smu_context *smu,
> if (smu->dc_controlled_by_gpio)
> *(uint64_t *)feature_mask |=
> FEATURE_MASK(FEATURE_ACDC_BIT);
>
> +   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> +   *(uint64_t *)feature_mask |=
> + FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> +
> +   /* DPM UCLK enablement should be skipped for navi10 A0 secure board */
> +   if (!(is_asic_secure(smu) &&
> +(adev->asic_type == CHIP_NAVI10) &&
> +(adev->rev_id == 0)) &&
> +   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> +   *(uint64_t *)feature_mask |= 
> FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> +   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> +   |
> + FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> +
> /* DS SOCCLK enablement should be skipped for navi10 A0 secure board 
> */
> if (is_asic_secure(smu) &&
> (adev->asic_type == CHIP_NAVI10) && @@ -2629,43 +2641,12
> @@ static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
>
>  static int navi10_post_smu_init(struct smu_context *smu)  {
> -   struct smu_feature *feature = >smu_feature;
> struct amdgpu_device *adev = smu->adev;
> -   uint64_t feature_mask = 0;
> int ret = 0;
>
> if (amdgpu_sriov_vf(adev))
> return 0;
>
> -   /* For Naiv1x, enable these features only after DAL initialization */
> -   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> -
> -   /* DPM UCLK enablement should be skipped for navi10 A0 secure board */
> -   if (!(is_asic_secure(smu) &&
> -(adev->asic_type == CHIP_NAVI10) &&
> -(adev->rev_id == 0)) &&
> -   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> -   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> -   | FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> -
> -   if (!feature_mask)
> -   return 0;
> -
> -   bitmap_or(feature->allowed,
> - feature->allowed,
> - (unsigned long *)(_mask),
> - SMU_FEATURE_MAX);
> -
> -   ret = smu_cmn_feature_update_enable_state(smu,
> - feature_mask,
> - true);
> -   if (ret) {
> -   dev_err(adev->dev, "Failed to post uclk/socclk dpm 
> enablement!\n");
> -   return ret;
> -   }
> -
> ret = navi10_run_umc_cdr_workaround(smu);
> if (ret) {
> dev_err(adev->dev, "Failed to apply umc cdr
> workaround!\n");
> --
> 2.28.0
>
> ___
> amd-gfx mailing list
> amd-gfx@lists.freedeskt

RE: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K monitors

2020-09-24 Thread Quan, Evan
[AMD Official Use Only - Internal Distribution Only]

That(postpone SOCCLK/UCLK enablement) will be revised and added back after 
confirmed with DAL team.
For now, we just revert it to get around the screen flicker issue introduced.

BR
Evan
-Original Message-
From: Alex Deucher 
Sent: Thursday, September 24, 2020 9:01 PM
To: Quan, Evan 
Cc: amd-gfx list ; Deucher, Alexander 

Subject: Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K 
monitors

On Thu, Sep 24, 2020 at 6:10 AM Evan Quan  wrote:
>
> Revert the guilty change introduced by the commit below:
> drm/amd/pm: postpone SOCCLK/UCLK enablement after DAL
> initialization(V2)
>
> Change-Id: I0cab619ffdf0f83b14ba5d2907e1b9c02a984e2f
> Signed-off-by: Evan Quan 

Won't this effectively disable the potential fix for multiple monitors at boot 
time?

Acked-by: Alex Deucher 

> ---
>  .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c   | 43 ++-
>  1 file changed, 12 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> index 1695b36dc23c..be44cb941e73 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> @@ -316,6 +316,18 @@ navi10_get_allowed_feature_mask(struct smu_context *smu,
> if (smu->dc_controlled_by_gpio)
> *(uint64_t *)feature_mask |=
> FEATURE_MASK(FEATURE_ACDC_BIT);
>
> +   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> +   *(uint64_t *)feature_mask |=
> + FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> +
> +   /* DPM UCLK enablement should be skipped for navi10 A0 secure board */
> +   if (!(is_asic_secure(smu) &&
> +(adev->asic_type == CHIP_NAVI10) &&
> +(adev->rev_id == 0)) &&
> +   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> +   *(uint64_t *)feature_mask |= 
> FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> +   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> +   |
> + FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> +
> /* DS SOCCLK enablement should be skipped for navi10 A0 secure board 
> */
> if (is_asic_secure(smu) &&
> (adev->asic_type == CHIP_NAVI10) && @@ -2629,43 +2641,12
> @@ static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
>
>  static int navi10_post_smu_init(struct smu_context *smu)  {
> -   struct smu_feature *feature = >smu_feature;
> struct amdgpu_device *adev = smu->adev;
> -   uint64_t feature_mask = 0;
> int ret = 0;
>
> if (amdgpu_sriov_vf(adev))
> return 0;
>
> -   /* For Naiv1x, enable these features only after DAL initialization */
> -   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> -
> -   /* DPM UCLK enablement should be skipped for navi10 A0 secure board */
> -   if (!(is_asic_secure(smu) &&
> -(adev->asic_type == CHIP_NAVI10) &&
> -(adev->rev_id == 0)) &&
> -   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> -   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> -   | FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> -
> -   if (!feature_mask)
> -   return 0;
> -
> -   bitmap_or(feature->allowed,
> - feature->allowed,
> - (unsigned long *)(_mask),
> - SMU_FEATURE_MAX);
> -
> -   ret = smu_cmn_feature_update_enable_state(smu,
> - feature_mask,
> - true);
> -   if (ret) {
> -   dev_err(adev->dev, "Failed to post uclk/socclk dpm 
> enablement!\n");
> -   return ret;
> -   }
> -
> ret = navi10_run_umc_cdr_workaround(smu);
> if (ret) {
> dev_err(adev->dev, "Failed to apply umc cdr
> workaround!\n");
> --
> 2.28.0
>
> ___
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> s.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfxdata=02%7C01%7Cev
> an.quan%40amd.com%7C3899143b7990458f882c08d86089df67%7C3dd8961fe4884e6
> 08e11a82d994e183d%7C0%7C0%7C637365492561293539sdata=J%2FM6YSLX6d%
> 2BMO%2B%2FWzdKAW7JlVZM%2FMFRDpTfi6UHkozk%3Dreserved=0
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


Re: [PATCH] drm/amd/pm: fix screen flicker seen on Navi14 with 2*4K monitors

2020-09-24 Thread Alex Deucher
On Thu, Sep 24, 2020 at 6:10 AM Evan Quan  wrote:
>
> Revert the guilty change introduced by the commit below:
> drm/amd/pm: postpone SOCCLK/UCLK enablement after DAL initialization(V2)
>
> Change-Id: I0cab619ffdf0f83b14ba5d2907e1b9c02a984e2f
> Signed-off-by: Evan Quan 

Won't this effectively disable the potential fix for multiple monitors
at boot time?

Acked-by: Alex Deucher 

> ---
>  .../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c   | 43 ++-
>  1 file changed, 12 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> index 1695b36dc23c..be44cb941e73 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c
> @@ -316,6 +316,18 @@ navi10_get_allowed_feature_mask(struct smu_context *smu,
> if (smu->dc_controlled_by_gpio)
> *(uint64_t *)feature_mask |= FEATURE_MASK(FEATURE_ACDC_BIT);
>
> +   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> +   *(uint64_t *)feature_mask |= 
> FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> +
> +   /* DPM UCLK enablement should be skipped for navi10 A0 secure board */
> +   if (!(is_asic_secure(smu) &&
> +(adev->asic_type == CHIP_NAVI10) &&
> +(adev->rev_id == 0)) &&
> +   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> +   *(uint64_t *)feature_mask |= 
> FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> +   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> +   | FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> +
> /* DS SOCCLK enablement should be skipped for navi10 A0 secure board 
> */
> if (is_asic_secure(smu) &&
> (adev->asic_type == CHIP_NAVI10) &&
> @@ -2629,43 +2641,12 @@ static int navi10_enable_mgpu_fan_boost(struct 
> smu_context *smu)
>
>  static int navi10_post_smu_init(struct smu_context *smu)
>  {
> -   struct smu_feature *feature = >smu_feature;
> struct amdgpu_device *adev = smu->adev;
> -   uint64_t feature_mask = 0;
> int ret = 0;
>
> if (amdgpu_sriov_vf(adev))
> return 0;
>
> -   /* For Naiv1x, enable these features only after DAL initialization */
> -   if (adev->pm.pp_feature & PP_SOCCLK_DPM_MASK)
> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_SOCCLK_BIT);
> -
> -   /* DPM UCLK enablement should be skipped for navi10 A0 secure board */
> -   if (!(is_asic_secure(smu) &&
> -(adev->asic_type == CHIP_NAVI10) &&
> -(adev->rev_id == 0)) &&
> -   (adev->pm.pp_feature & PP_MCLK_DPM_MASK))
> -   feature_mask |= FEATURE_MASK(FEATURE_DPM_UCLK_BIT)
> -   | FEATURE_MASK(FEATURE_MEM_VDDCI_SCALING_BIT)
> -   | FEATURE_MASK(FEATURE_MEM_MVDD_SCALING_BIT);
> -
> -   if (!feature_mask)
> -   return 0;
> -
> -   bitmap_or(feature->allowed,
> - feature->allowed,
> - (unsigned long *)(_mask),
> - SMU_FEATURE_MAX);
> -
> -   ret = smu_cmn_feature_update_enable_state(smu,
> - feature_mask,
> - true);
> -   if (ret) {
> -   dev_err(adev->dev, "Failed to post uclk/socclk dpm 
> enablement!\n");
> -   return ret;
> -   }
> -
> ret = navi10_run_umc_cdr_workaround(smu);
> if (ret) {
> dev_err(adev->dev, "Failed to apply umc cdr workaround!\n");
> --
> 2.28.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