RE: [PATCH 2/2] drm/amd/powerplay: enable MGPU fan boost feature on Vega10

2019-01-23 Thread Quan, Evan
This feature is only seen on the latest vbios. No requirement for SMU fw.

Regards,
Evan
> -Original Message-
> From: Alex Deucher 
> Sent: 2019年1月23日 12:54
> To: Quan, Evan 
> Cc: amd-gfx list 
> Subject: Re: [PATCH 2/2] drm/amd/powerplay: enable MGPU fan boost
> feature on Vega10
> 
> On Tue, Jan 22, 2019 at 10:43 PM Evan Quan  wrote:
> >
> > For those SKUs which support this feature only.
> >
> > Change-Id: I74de00204d93f951e04073e5c4c4ce9c0d34f662
> > Signed-off-by: Evan Quan 
> 
> Is there a minimum smu version number required to support this?  Is it safe
> to setup the structures and enable it if the using older smu fw?
> With that clarified, the series is:
> Reviewed-by: Alex Deucher 
> 
> Alex
> 
> > ---
> >  .../drm/amd/powerplay/hwmgr/vega10_hwmgr.c|  1 +
> >  .../drm/amd/powerplay/hwmgr/vega10_thermal.c  | 37
> >
> +++  .../drm/amd/powerplay/hwmgr/vega10_thermal.
> h  |
> > 1 +
> >  3 files changed, 39 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> > b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> > index f0ba4254361b..1a4c6467a36d 100644
> > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> > @@ -5168,6 +5168,7 @@ static const struct pp_hwmgr_func
> vega10_hwmgr_funcs = {
> > .set_asic_baco_state = vega10_baco_set_state,
> > .get_ppfeature_status = vega10_get_ppfeature_status,
> > .set_ppfeature_status = vega10_set_ppfeature_status,
> > +   .enable_mgpu_fan_boost = vega10_enable_mgpu_fan_boost,
> >  };
> >
> >  int vega10_hwmgr_init(struct pp_hwmgr *hwmgr) diff --git
> > a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
> > b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
> > index 3f807d6c95ce..ba8763daa380 100644
> > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
> > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
> > @@ -556,6 +556,43 @@ int vega10_thermal_setup_fan_table(struct
> pp_hwmgr *hwmgr)
> > return ret;
> >  }
> >
> > +int vega10_enable_mgpu_fan_boost(struct pp_hwmgr *hwmgr) {
> > +   struct vega10_hwmgr *data = hwmgr->backend;
> > +   PPTable_t *table = &(data->smc_state_table.pp_table);
> > +   int ret;
> > +
> > +   if (!data->smu_features[GNLD_FAN_CONTROL].supported)
> > +   return 0;
> > +
> > +   if (!hwmgr->thermal_controller.advanceFanControlParameters.
> > +   usMGpuThrottlingRPMLimit)
> > +   return 0;
> > +
> > +   table->FanThrottlingRpm = hwmgr->thermal_controller.
> > +
> > + advanceFanControlParameters.usMGpuThrottlingRPMLimit;
> > +
> > +   ret = smum_smc_table_manager(hwmgr,
> > +   (uint8_t 
> > *)(&(data->smc_state_table.pp_table)),
> > +   PPTABLE, false);
> > +   if (ret) {
> > +   pr_info("Failed to update fan control table in pptable!");
> > +   return ret;
> > +   }
> > +
> > +   ret = vega10_disable_fan_control_feature(hwmgr);
> > +   if (ret) {
> > +   pr_info("Attempt to disable SMC fan control feature 
> > failed!");
> > +   return ret;
> > +   }
> > +
> > +   ret = vega10_enable_fan_control_feature(hwmgr);
> > +   if (ret)
> > +   pr_info("Attempt to enable SMC fan control feature
> > + failed!");
> > +
> > +   return ret;
> > +}
> > +
> >  /**
> >  * Start the fan control on the SMC.
> >  * @paramhwmgr  the address of the powerplay hardware manager.
> > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> > b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> > index 21e7c4dfa2ca..4a0ede7c1f07 100644
> > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> > @@ -73,6 +73,7 @@ extern int vega10_thermal_disable_alert(struct
> > pp_hwmgr *hwmgr);  extern int
> > vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr);
> extern int vega10_start_thermal_controller(struct pp_hwmgr *hwmgr,
> > struct PP_TemperatureRange *range);
> > +extern int vega10_enable_mgpu_fan_boost(struct pp_hwmgr *hwmgr);
> >
> >
> >  #endif
> > --
> > 2.20.1
> >
> > ___
> > 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 2/2] drm/amd/powerplay: enable MGPU fan boost feature on Vega10

2019-01-22 Thread Alex Deucher
On Tue, Jan 22, 2019 at 10:43 PM Evan Quan  wrote:
>
> For those SKUs which support this feature only.
>
> Change-Id: I74de00204d93f951e04073e5c4c4ce9c0d34f662
> Signed-off-by: Evan Quan 

Is there a minimum smu version number required to support this?  Is it
safe to setup the structures and enable it if the using older smu fw?
With that clarified, the series is:
Reviewed-by: Alex Deucher 

Alex

> ---
>  .../drm/amd/powerplay/hwmgr/vega10_hwmgr.c|  1 +
>  .../drm/amd/powerplay/hwmgr/vega10_thermal.c  | 37 +++
>  .../drm/amd/powerplay/hwmgr/vega10_thermal.h  |  1 +
>  3 files changed, 39 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c 
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> index f0ba4254361b..1a4c6467a36d 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
> @@ -5168,6 +5168,7 @@ static const struct pp_hwmgr_func vega10_hwmgr_funcs = {
> .set_asic_baco_state = vega10_baco_set_state,
> .get_ppfeature_status = vega10_get_ppfeature_status,
> .set_ppfeature_status = vega10_set_ppfeature_status,
> +   .enable_mgpu_fan_boost = vega10_enable_mgpu_fan_boost,
>  };
>
>  int vega10_hwmgr_init(struct pp_hwmgr *hwmgr)
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c 
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
> index 3f807d6c95ce..ba8763daa380 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
> @@ -556,6 +556,43 @@ int vega10_thermal_setup_fan_table(struct pp_hwmgr 
> *hwmgr)
> return ret;
>  }
>
> +int vega10_enable_mgpu_fan_boost(struct pp_hwmgr *hwmgr)
> +{
> +   struct vega10_hwmgr *data = hwmgr->backend;
> +   PPTable_t *table = &(data->smc_state_table.pp_table);
> +   int ret;
> +
> +   if (!data->smu_features[GNLD_FAN_CONTROL].supported)
> +   return 0;
> +
> +   if (!hwmgr->thermal_controller.advanceFanControlParameters.
> +   usMGpuThrottlingRPMLimit)
> +   return 0;
> +
> +   table->FanThrottlingRpm = hwmgr->thermal_controller.
> +   advanceFanControlParameters.usMGpuThrottlingRPMLimit;
> +
> +   ret = smum_smc_table_manager(hwmgr,
> +   (uint8_t 
> *)(&(data->smc_state_table.pp_table)),
> +   PPTABLE, false);
> +   if (ret) {
> +   pr_info("Failed to update fan control table in pptable!");
> +   return ret;
> +   }
> +
> +   ret = vega10_disable_fan_control_feature(hwmgr);
> +   if (ret) {
> +   pr_info("Attempt to disable SMC fan control feature failed!");
> +   return ret;
> +   }
> +
> +   ret = vega10_enable_fan_control_feature(hwmgr);
> +   if (ret)
> +   pr_info("Attempt to enable SMC fan control feature failed!");
> +
> +   return ret;
> +}
> +
>  /**
>  * Start the fan control on the SMC.
>  * @paramhwmgr  the address of the powerplay hardware manager.
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h 
> b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> index 21e7c4dfa2ca..4a0ede7c1f07 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.h
> @@ -73,6 +73,7 @@ extern int vega10_thermal_disable_alert(struct pp_hwmgr 
> *hwmgr);
>  extern int vega10_fan_ctrl_start_smc_fan_control(struct pp_hwmgr *hwmgr);
>  extern int vega10_start_thermal_controller(struct pp_hwmgr *hwmgr,
> struct PP_TemperatureRange *range);
> +extern int vega10_enable_mgpu_fan_boost(struct pp_hwmgr *hwmgr);
>
>
>  #endif
> --
> 2.20.1
>
> ___
> 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