Re: [PATCH] Revert "drm/amd/pm: disable the SMU13 OD feature support temporarily"

2023-08-30 Thread Alex Deucher
On Wed, Aug 30, 2023 at 10:50 PM Evan Quan  wrote:
>
> This reverts commit 3592cc20beeece83db4c50a0f400e2dd15139de9.
>
> The enablement for the new OD mechanism completed. Also, the support for
> fan control related OD feature has been added via this new mechanism.
> Thus, it is time to bring back the SMU13 OD support.
>
> Signed-off-by: Evan Quan 

Acked-by: Alex Deucher 

> ---
>  .../drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c   | 18 +++---
>  .../drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c   | 12 +++-
>  2 files changed, 6 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> index c48f81450d24..093962a37688 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
> @@ -348,13 +348,10 @@ static int smu_v13_0_0_check_powerplay_table(struct 
> smu_context *smu)
> table_context->power_play_table;
> struct smu_baco_context *smu_baco = >smu_baco;
> PPTable_t *pptable = smu->smu_table.driver_pptable;
> -#if 0
> -   PPTable_t *pptable = smu->smu_table.driver_pptable;
> const OverDriveLimits_t * const overdrive_upperlimits =
> >SkuTable.OverDriveLimitsBasicMax;
> const OverDriveLimits_t * const overdrive_lowerlimits =
> >SkuTable.OverDriveLimitsMin;
> -#endif
>
> if (powerplay_table->platform_caps & 
> SMU_13_0_0_PP_PLATFORM_CAP_HARDWAREDC)
> smu->dc_controlled_by_gpio = true;
> @@ -366,27 +363,18 @@ static int smu_v13_0_0_check_powerplay_table(struct 
> smu_context *smu)
> if (powerplay_table->platform_caps & SMU_13_0_0_PP_PLATFORM_CAP_MACO)
> smu_baco->maco_support = true;
>
> -   /*
> -* We are in the transition to a new OD mechanism.
> -* Disable the OD feature support for SMU13 temporarily.
> -* TODO: get this reverted when new OD mechanism online
> -*/
> -#if 0
> if (!overdrive_lowerlimits->FeatureCtrlMask ||
> !overdrive_upperlimits->FeatureCtrlMask)
> smu->od_enabled = false;
>
> +   table_context->thermal_controller_type =
> +   powerplay_table->thermal_controller_type;
> +
> /*
>  * Instead of having its own buffer space and get overdrive_table 
> copied,
>  * smu->od_settings just points to the actual overdrive_table
>  */
> smu->od_settings = _table->overdrive_table;
> -#else
> -   smu->od_enabled = false;
> -#endif
> -
> -   table_context->thermal_controller_type =
> -   powerplay_table->thermal_controller_type;
>
> smu->adev->pm.no_fan =
> !(pptable->SkuTable.FeaturesToRun[0] & (1 << 
> FEATURE_FAN_CONTROL_BIT));
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
> index 99bc449799a6..430ad1b05ba3 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
> @@ -338,12 +338,10 @@ static int smu_v13_0_7_check_powerplay_table(struct 
> smu_context *smu)
> struct smu_baco_context *smu_baco = >smu_baco;
> PPTable_t *smc_pptable = table_context->driver_pptable;
> BoardTable_t *BoardTable = _pptable->BoardTable;
> -#if 0
> const OverDriveLimits_t * const overdrive_upperlimits =
> 
> _pptable->SkuTable.OverDriveLimitsBasicMax;
> const OverDriveLimits_t * const overdrive_lowerlimits =
> _pptable->SkuTable.OverDriveLimitsMin;
> -#endif
>
> if (powerplay_table->platform_caps & 
> SMU_13_0_7_PP_PLATFORM_CAP_HARDWAREDC)
> smu->dc_controlled_by_gpio = true;
> @@ -355,22 +353,18 @@ static int smu_v13_0_7_check_powerplay_table(struct 
> smu_context *smu)
> if (smu_baco->platform_support && (BoardTable->HsrEnabled || 
> BoardTable->VddqOffEnabled))
> smu_baco->maco_support = true;
>
> -#if 0
> if (!overdrive_lowerlimits->FeatureCtrlMask ||
> !overdrive_upperlimits->FeatureCtrlMask)
> smu->od_enabled = false;
>
> +   table_context->thermal_controller_type =
> +   powerplay_table->thermal_controller_type;
> +
> /*
>  * Instead of having its own buffer space and get overdrive_table 
> copied,
>  * smu->od_settings just points to the actual overdrive_table
>  */
> smu->od_settings = _table->overdrive_table;
> -#else
> -   smu->od_enabled = false;
> -#endif
> -
> -   table_context->thermal_controller_type =
> -   powerplay_table->thermal_controller_type;
>
> return 0;
>  }
> --
> 2.34.1
>


[PATCH] Revert "drm/amd/pm: disable the SMU13 OD feature support temporarily"

2023-08-30 Thread Evan Quan
This reverts commit 3592cc20beeece83db4c50a0f400e2dd15139de9.

The enablement for the new OD mechanism completed. Also, the support for
fan control related OD feature has been added via this new mechanism.
Thus, it is time to bring back the SMU13 OD support.

Signed-off-by: Evan Quan 
---
 .../drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c   | 18 +++---
 .../drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c   | 12 +++-
 2 files changed, 6 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
index c48f81450d24..093962a37688 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
@@ -348,13 +348,10 @@ static int smu_v13_0_0_check_powerplay_table(struct 
smu_context *smu)
table_context->power_play_table;
struct smu_baco_context *smu_baco = >smu_baco;
PPTable_t *pptable = smu->smu_table.driver_pptable;
-#if 0
-   PPTable_t *pptable = smu->smu_table.driver_pptable;
const OverDriveLimits_t * const overdrive_upperlimits =
>SkuTable.OverDriveLimitsBasicMax;
const OverDriveLimits_t * const overdrive_lowerlimits =
>SkuTable.OverDriveLimitsMin;
-#endif
 
if (powerplay_table->platform_caps & 
SMU_13_0_0_PP_PLATFORM_CAP_HARDWAREDC)
smu->dc_controlled_by_gpio = true;
@@ -366,27 +363,18 @@ static int smu_v13_0_0_check_powerplay_table(struct 
smu_context *smu)
if (powerplay_table->platform_caps & SMU_13_0_0_PP_PLATFORM_CAP_MACO)
smu_baco->maco_support = true;
 
-   /*
-* We are in the transition to a new OD mechanism.
-* Disable the OD feature support for SMU13 temporarily.
-* TODO: get this reverted when new OD mechanism online
-*/
-#if 0
if (!overdrive_lowerlimits->FeatureCtrlMask ||
!overdrive_upperlimits->FeatureCtrlMask)
smu->od_enabled = false;
 
+   table_context->thermal_controller_type =
+   powerplay_table->thermal_controller_type;
+
/*
 * Instead of having its own buffer space and get overdrive_table 
copied,
 * smu->od_settings just points to the actual overdrive_table
 */
smu->od_settings = _table->overdrive_table;
-#else
-   smu->od_enabled = false;
-#endif
-
-   table_context->thermal_controller_type =
-   powerplay_table->thermal_controller_type;
 
smu->adev->pm.no_fan =
!(pptable->SkuTable.FeaturesToRun[0] & (1 << 
FEATURE_FAN_CONTROL_BIT));
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
index 99bc449799a6..430ad1b05ba3 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
@@ -338,12 +338,10 @@ static int smu_v13_0_7_check_powerplay_table(struct 
smu_context *smu)
struct smu_baco_context *smu_baco = >smu_baco;
PPTable_t *smc_pptable = table_context->driver_pptable;
BoardTable_t *BoardTable = _pptable->BoardTable;
-#if 0
const OverDriveLimits_t * const overdrive_upperlimits =
_pptable->SkuTable.OverDriveLimitsBasicMax;
const OverDriveLimits_t * const overdrive_lowerlimits =
_pptable->SkuTable.OverDriveLimitsMin;
-#endif
 
if (powerplay_table->platform_caps & 
SMU_13_0_7_PP_PLATFORM_CAP_HARDWAREDC)
smu->dc_controlled_by_gpio = true;
@@ -355,22 +353,18 @@ static int smu_v13_0_7_check_powerplay_table(struct 
smu_context *smu)
if (smu_baco->platform_support && (BoardTable->HsrEnabled || 
BoardTable->VddqOffEnabled))
smu_baco->maco_support = true;
 
-#if 0
if (!overdrive_lowerlimits->FeatureCtrlMask ||
!overdrive_upperlimits->FeatureCtrlMask)
smu->od_enabled = false;
 
+   table_context->thermal_controller_type =
+   powerplay_table->thermal_controller_type;
+
/*
 * Instead of having its own buffer space and get overdrive_table 
copied,
 * smu->od_settings just points to the actual overdrive_table
 */
smu->od_settings = _table->overdrive_table;
-#else
-   smu->od_enabled = false;
-#endif
-
-   table_context->thermal_controller_type =
-   powerplay_table->thermal_controller_type;
 
return 0;
 }
-- 
2.34.1