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
>