Re: [PATCH] fix throttle_status for other than MP0 11.0.7

2023-08-09 Thread Alex Deucher
On Wed, Aug 9, 2023 at 3:15 AM Umio Yasuno
 wrote:
>
> Sorry, I had mistaken MP1 for MP0.
> Also, should I add an `drm/amdgpu:` or `drm/amdgpu/swsmu` or `drm/amdgpu/pm` 
> to
> the prefix of the patch title?

I fixed it up when I applied it.

Thanks,

Alex


>


Re: [PATCH] fix throttle_status for other than MP0 11.0.7

2023-08-09 Thread Umio Yasuno
Sorry, I had mistaken MP1 for MP0.
Also, should I add an `drm/amdgpu:` or `drm/amdgpu/swsmu` or `drm/amdgpu/pm` to
the prefix of the patch title?



Re: [PATCH] fix throttle_status for other than MP0 11.0.7

2023-08-08 Thread Alex Deucher
Applied.  Thanks!

Alex

On Tue, Aug 8, 2023 at 4:38 AM Quan, Evan  wrote:
>
> [AMD Official Use Only - General]
>
> Reviewed-by: Evan Quan 
>
> > -Original Message-
> > From: Umio Yasuno 
> > Sent: Tuesday, August 8, 2023 2:41 PM
> > To: amd-gfx@lists.freedesktop.org
> > Cc: Deucher, Alexander ; Quan, Evan
> > ; Limonciello, Mario 
> > Subject: [PATCH] fix throttle_status for other than MP0 11.0.7
> >
> > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720
> > Signed-off-by: Umio Yasuno 
> > ---
> >  .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++---
> >  1 file changed, 7 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> > b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> > index 85d53597e..548d25cf3 100644
> > --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> > @@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct
> > smu_context *smu)
> >   return -ENOMEM;
> >  }
> >
> > -static uint32_t sienna_cichlid_get_throttler_status_locked(struct
> > smu_context *smu)
> > +static uint32_t sienna_cichlid_get_throttler_status_locked(struct
> > smu_context *smu,
> > +bool
> > use_metrics_v3,
> > +bool
> > use_metrics_v2)
> >  {
> >   struct smu_table_context *smu_table= >smu_table;
> >   SmuMetricsExternal_t *metrics_ext =
> > @@ -586,13 +588,11 @@ static uint32_t
> > sienna_cichlid_get_throttler_status_locked(struct smu_context *s
> >   uint32_t throttler_status = 0;
> >   int i;
> >
> > - if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7))
> > &&
> > -  (smu->smc_fw_version >= 0x3A4900)) {
> > + if (use_metrics_v3) {
> >   for (i = 0; i < THROTTLER_COUNT; i++)
> >   throttler_status |=
> >   (metrics_ext-
> > >SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0);
> > - } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11,
> > 0, 7)) &&
> > -  (smu->smc_fw_version >= 0x3A4300)) {
> > + } else if (use_metrics_v2) {
> >   for (i = 0; i < THROTTLER_COUNT; i++)
> >   throttler_status |=
> >   (metrics_ext-
> > >SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0);
> > @@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct
> > smu_context *smu,
> >   metrics->TemperatureVrSoc) *
> > SMU_TEMPERATURE_UNITS_PER_CENTIGRADES;
> >   break;
> >   case METRICS_THROTTLER_STATUS:
> > - *value = sienna_cichlid_get_throttler_status_locked(smu);
> > + *value = sienna_cichlid_get_throttler_status_locked(smu,
> > use_metrics_v3, use_metrics_v2);
> >   break;
> >   case METRICS_CURR_FANSPEED:
> >   *value = use_metrics_v3 ? metrics_v3->CurrFanSpeed :
> > @@ -4056,7 +4056,7 @@ static ssize_t
> > sienna_cichlid_get_gpu_metrics(struct smu_context *smu,
> >   gpu_metrics->current_dclk1 = use_metrics_v3 ? metrics_v3-
> > >CurrClock[PPCLK_DCLK_1] :
> >   use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] :
> > metrics->CurrClock[PPCLK_DCLK_1];
> >
> > - gpu_metrics->throttle_status =
> > sienna_cichlid_get_throttler_status_locked(smu);
> > + gpu_metrics->throttle_status =
> > sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3,
> > use_metrics_v2);
> >   gpu_metrics->indep_throttle_status =
> >   smu_cmn_get_indep_throttler_status(gpu_metrics-
> > >throttle_status,
> >
> > sienna_cichlid_throttler_map);
> > --
> > 2.40.1
> >
>


RE: [PATCH] fix throttle_status for other than MP0 11.0.7

2023-08-08 Thread Quan, Evan
[AMD Official Use Only - General]

Reviewed-by: Evan Quan 

> -Original Message-
> From: Umio Yasuno 
> Sent: Tuesday, August 8, 2023 2:41 PM
> To: amd-gfx@lists.freedesktop.org
> Cc: Deucher, Alexander ; Quan, Evan
> ; Limonciello, Mario 
> Subject: [PATCH] fix throttle_status for other than MP0 11.0.7
>
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720
> Signed-off-by: Umio Yasuno 
> ---
>  .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++---
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> index 85d53597e..548d25cf3 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
> @@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct
> smu_context *smu)
>   return -ENOMEM;
>  }
>
> -static uint32_t sienna_cichlid_get_throttler_status_locked(struct
> smu_context *smu)
> +static uint32_t sienna_cichlid_get_throttler_status_locked(struct
> smu_context *smu,
> +bool
> use_metrics_v3,
> +bool
> use_metrics_v2)
>  {
>   struct smu_table_context *smu_table= >smu_table;
>   SmuMetricsExternal_t *metrics_ext =
> @@ -586,13 +588,11 @@ static uint32_t
> sienna_cichlid_get_throttler_status_locked(struct smu_context *s
>   uint32_t throttler_status = 0;
>   int i;
>
> - if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7))
> &&
> -  (smu->smc_fw_version >= 0x3A4900)) {
> + if (use_metrics_v3) {
>   for (i = 0; i < THROTTLER_COUNT; i++)
>   throttler_status |=
>   (metrics_ext-
> >SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0);
> - } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11,
> 0, 7)) &&
> -  (smu->smc_fw_version >= 0x3A4300)) {
> + } else if (use_metrics_v2) {
>   for (i = 0; i < THROTTLER_COUNT; i++)
>   throttler_status |=
>   (metrics_ext-
> >SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0);
> @@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct
> smu_context *smu,
>   metrics->TemperatureVrSoc) *
> SMU_TEMPERATURE_UNITS_PER_CENTIGRADES;
>   break;
>   case METRICS_THROTTLER_STATUS:
> - *value = sienna_cichlid_get_throttler_status_locked(smu);
> + *value = sienna_cichlid_get_throttler_status_locked(smu,
> use_metrics_v3, use_metrics_v2);
>   break;
>   case METRICS_CURR_FANSPEED:
>   *value = use_metrics_v3 ? metrics_v3->CurrFanSpeed :
> @@ -4056,7 +4056,7 @@ static ssize_t
> sienna_cichlid_get_gpu_metrics(struct smu_context *smu,
>   gpu_metrics->current_dclk1 = use_metrics_v3 ? metrics_v3-
> >CurrClock[PPCLK_DCLK_1] :
>   use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] :
> metrics->CurrClock[PPCLK_DCLK_1];
>
> - gpu_metrics->throttle_status =
> sienna_cichlid_get_throttler_status_locked(smu);
> + gpu_metrics->throttle_status =
> sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3,
> use_metrics_v2);
>   gpu_metrics->indep_throttle_status =
>   smu_cmn_get_indep_throttler_status(gpu_metrics-
> >throttle_status,
>
> sienna_cichlid_throttler_map);
> --
> 2.40.1
>



[PATCH] fix throttle_status for other than MP0 11.0.7

2023-08-08 Thread Umio Yasuno
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720
Signed-off-by: Umio Yasuno 
---
 .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
index 85d53597e..548d25cf3 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
@@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct smu_context 
*smu)
return -ENOMEM;
 }
 
-static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context 
*smu)
+static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context 
*smu,
+  bool use_metrics_v3,
+  bool use_metrics_v2)
 {
struct smu_table_context *smu_table= >smu_table;
SmuMetricsExternal_t *metrics_ext =
@@ -586,13 +588,11 @@ static uint32_t 
sienna_cichlid_get_throttler_status_locked(struct smu_context *s
uint32_t throttler_status = 0;
int i;
 
-   if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) &&
-(smu->smc_fw_version >= 0x3A4900)) {
+   if (use_metrics_v3) {
for (i = 0; i < THROTTLER_COUNT; i++)
throttler_status |=

(metrics_ext->SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0);
-   } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 
7)) &&
-(smu->smc_fw_version >= 0x3A4300)) {
+   } else if (use_metrics_v2) {
for (i = 0; i < THROTTLER_COUNT; i++)
throttler_status |=

(metrics_ext->SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0);
@@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct 
smu_context *smu,
metrics->TemperatureVrSoc) * 
SMU_TEMPERATURE_UNITS_PER_CENTIGRADES;
break;
case METRICS_THROTTLER_STATUS:
-   *value = sienna_cichlid_get_throttler_status_locked(smu);
+   *value = sienna_cichlid_get_throttler_status_locked(smu, 
use_metrics_v3, use_metrics_v2);
break;
case METRICS_CURR_FANSPEED:
*value = use_metrics_v3 ? metrics_v3->CurrFanSpeed :
@@ -4056,7 +4056,7 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct 
smu_context *smu,
gpu_metrics->current_dclk1 = use_metrics_v3 ? 
metrics_v3->CurrClock[PPCLK_DCLK_1] :
use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] : 
metrics->CurrClock[PPCLK_DCLK_1];
 
-   gpu_metrics->throttle_status = 
sienna_cichlid_get_throttler_status_locked(smu);
+   gpu_metrics->throttle_status = 
sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, use_metrics_v2);
gpu_metrics->indep_throttle_status =

smu_cmn_get_indep_throttler_status(gpu_metrics->throttle_status,
   
sienna_cichlid_throttler_map);
-- 
2.40.1




[PATCH] fix throttle_status for other than MP0 11.0.7

2023-08-08 Thread Umio Yasuno
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2720
Signed-off-by: Umio Yasuno 
---
 .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c| 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
index 85d53597e..548d25cf3 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c
@@ -578,7 +578,9 @@ static int sienna_cichlid_tables_init(struct smu_context 
*smu)
return -ENOMEM;
 }
 
-static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context 
*smu)
+static uint32_t sienna_cichlid_get_throttler_status_locked(struct smu_context 
*smu,
+  bool use_metrics_v3,
+  bool use_metrics_v2)
 {
struct smu_table_context *smu_table= >smu_table;
SmuMetricsExternal_t *metrics_ext =
@@ -586,13 +588,11 @@ static uint32_t 
sienna_cichlid_get_throttler_status_locked(struct smu_context *s
uint32_t throttler_status = 0;
int i;
 
-   if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 7)) &&
-(smu->smc_fw_version >= 0x3A4900)) {
+   if (use_metrics_v3) {
for (i = 0; i < THROTTLER_COUNT; i++)
throttler_status |=

(metrics_ext->SmuMetrics_V3.ThrottlingPercentage[i] ? 1U << i : 0);
-   } else if ((smu->adev->ip_versions[MP1_HWIP][0] == IP_VERSION(11, 0, 
7)) &&
-(smu->smc_fw_version >= 0x3A4300)) {
+   } else if (use_metrics_v2) {
for (i = 0; i < THROTTLER_COUNT; i++)
throttler_status |=

(metrics_ext->SmuMetrics_V2.ThrottlingPercentage[i] ? 1U << i : 0);
@@ -854,7 +854,7 @@ static int sienna_cichlid_get_smu_metrics_data(struct 
smu_context *smu,
metrics->TemperatureVrSoc) * 
SMU_TEMPERATURE_UNITS_PER_CENTIGRADES;
break;
case METRICS_THROTTLER_STATUS:
-   *value = sienna_cichlid_get_throttler_status_locked(smu);
+   *value = sienna_cichlid_get_throttler_status_locked(smu, 
use_metrics_v3, use_metrics_v2);
break;
case METRICS_CURR_FANSPEED:
*value = use_metrics_v3 ? metrics_v3->CurrFanSpeed :
@@ -4056,7 +4056,7 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct 
smu_context *smu,
gpu_metrics->current_dclk1 = use_metrics_v3 ? 
metrics_v3->CurrClock[PPCLK_DCLK_1] :
use_metrics_v2 ? metrics_v2->CurrClock[PPCLK_DCLK_1] : 
metrics->CurrClock[PPCLK_DCLK_1];
 
-   gpu_metrics->throttle_status = 
sienna_cichlid_get_throttler_status_locked(smu);
+   gpu_metrics->throttle_status = 
sienna_cichlid_get_throttler_status_locked(smu, use_metrics_v3, use_metrics_v2);
gpu_metrics->indep_throttle_status =

smu_cmn_get_indep_throttler_status(gpu_metrics->throttle_status,
   
sienna_cichlid_throttler_map);
-- 
2.40.1