diff options
| author | Alex Deucher <alexander.deucher@amd.com> | 2020-08-26 23:49:37 -0400 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2020-09-03 14:46:55 -0400 | 
| commit | eff6474260028d7293ac23234f33b49cde0f85f0 (patch) | |
| tree | 804067c97c35c0c25edaa213f099764384dbb310 | |
| parent | 3204ff3e08f2c1bf7f7c93a15bae77d0043587d6 (diff) | |
drm/amdgpu/swsmu: drop get_fan_speed_percent (v2)
No longer needed as we can calculate it based on
the fan's max rpm.
v2: rework code to avoid possible uninitialized
variable use.
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| -rw-r--r-- | drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 12 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 21 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 19 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 19 | 
5 files changed, 10 insertions, 62 deletions
| diff --git a/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h b/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h index 787fc682e0a5..0ca997f83fb6 100644 --- a/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h +++ b/drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h @@ -498,7 +498,6 @@ struct pptable_funcs {  	int (*notify_smc_display_config)(struct smu_context *smu);  	int (*set_cpu_power_state)(struct smu_context *smu);  	bool (*is_dpm_running)(struct smu_context *smu); -	int (*get_fan_speed_percent)(struct smu_context *smu, uint32_t *speed);  	int (*get_fan_speed_rpm)(struct smu_context *smu, uint32_t *speed);  	int (*set_watermarks_table)(struct smu_context *smu,  				    struct dm_pp_wm_sets_with_clock_ranges_soc15 *clock_ranges); diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c index 114e85613e24..53e2051432bf 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c @@ -2192,17 +2192,25 @@ int smu_set_fan_control_mode(struct smu_context *smu, int value)  int smu_get_fan_speed_percent(struct smu_context *smu, uint32_t *speed)  {  	int ret = 0; +	uint32_t percent; +	uint32_t current_rpm;  	if (!smu->pm_enabled || !smu->adev->pm.dpm_enabled)  		return -EOPNOTSUPP;  	mutex_lock(&smu->mutex); -	if (smu->ppt_funcs->get_fan_speed_percent) -		ret = smu->ppt_funcs->get_fan_speed_percent(smu, speed); +	if (smu->ppt_funcs->get_fan_speed_rpm) { +		ret = smu->ppt_funcs->get_fan_speed_rpm(smu, ¤t_rpm); +		if (!ret) { +			percent = current_rpm * 100 / smu->fan_max_rpm; +			*speed = percent > 100 ? 100 : percent; +		} +	}  	mutex_unlock(&smu->mutex); +  	return ret;  } diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c index 198fc1185b2d..1998e7916fef 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c @@ -1128,26 +1128,6 @@ static int arcturus_get_fan_speed_rpm(struct smu_context *smu,  					     speed);  } -static int arcturus_get_fan_speed_percent(struct smu_context *smu, -					  uint32_t *speed) -{ -	PPTable_t *pptable = smu->smu_table.driver_pptable; -	uint32_t percent, current_rpm; -	int ret = 0; - -	if (!speed) -		return -EINVAL; - -	ret = arcturus_get_fan_speed_rpm(smu, ¤t_rpm); -	if (ret) -		return ret; - -	percent = current_rpm * 100 / pptable->FanMaximumRpm; -	*speed = percent > 100 ? 100 : percent; - -	return ret; -} -  static int arcturus_get_fan_parameters(struct smu_context *smu)  {  	PPTable_t *pptable = smu->smu_table.driver_pptable; @@ -2338,7 +2318,6 @@ static const struct pptable_funcs arcturus_ppt_funcs = {  	.print_clk_levels = arcturus_print_clk_levels,  	.force_clk_levels = arcturus_force_clk_levels,  	.read_sensor = arcturus_read_sensor, -	.get_fan_speed_percent = arcturus_get_fan_speed_percent,  	.get_fan_speed_rpm = arcturus_get_fan_speed_rpm,  	.get_power_profile_mode = arcturus_get_power_profile_mode,  	.set_power_profile_mode = arcturus_set_power_profile_mode, 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 3a9500dcb436..d5c25e538a03 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c @@ -1367,24 +1367,6 @@ static int navi10_get_fan_speed_rpm(struct smu_context *smu,  					   speed);  } -static int navi10_get_fan_speed_percent(struct smu_context *smu, -					uint32_t *speed) -{ -	int ret = 0; -	uint32_t percent = 0; -	uint32_t current_rpm; -	PPTable_t *pptable = smu->smu_table.driver_pptable; - -	ret = navi10_get_fan_speed_rpm(smu, ¤t_rpm); -	if (ret) -		return ret; - -	percent = current_rpm * 100 / pptable->FanMaximumRpm; -	*speed = percent > 100 ? 100 : percent; - -	return ret; -} -  static int navi10_get_fan_parameters(struct smu_context *smu)  {  	PPTable_t *pptable = smu->smu_table.driver_pptable; @@ -2606,7 +2588,6 @@ static const struct pptable_funcs navi10_ppt_funcs = {  	.display_config_changed = navi10_display_config_changed,  	.notify_smc_display_config = navi10_notify_smc_display_config,  	.is_dpm_running = navi10_is_dpm_running, -	.get_fan_speed_percent = navi10_get_fan_speed_percent,  	.get_fan_speed_rpm = navi10_get_fan_speed_rpm,  	.get_power_profile_mode = navi10_get_power_profile_mode,  	.set_power_profile_mode = navi10_set_power_profile_mode, 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 2ac942b13bad..97e54d382862 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 @@ -1174,24 +1174,6 @@ static int sienna_cichlid_get_fan_speed_rpm(struct smu_context *smu,  						   speed);  } -static int sienna_cichlid_get_fan_speed_percent(struct smu_context *smu, -					uint32_t *speed) -{ -	int ret = 0; -	uint32_t percent = 0; -	uint32_t current_rpm; -	PPTable_t *pptable = smu->smu_table.driver_pptable; - -	ret = sienna_cichlid_get_fan_speed_rpm(smu, ¤t_rpm); -	if (ret) -		return ret; - -	percent = current_rpm * 100 / pptable->FanMaximumRpm; -	*speed = percent > 100 ? 100 : percent; - -	return ret; -} -  static int sienna_cichlid_get_fan_parameters(struct smu_context *smu)  {  	PPTable_t *pptable = smu->smu_table.driver_pptable; @@ -2753,7 +2735,6 @@ static const struct pptable_funcs sienna_cichlid_ppt_funcs = {  	.display_config_changed = sienna_cichlid_display_config_changed,  	.notify_smc_display_config = sienna_cichlid_notify_smc_display_config,  	.is_dpm_running = sienna_cichlid_is_dpm_running, -	.get_fan_speed_percent = sienna_cichlid_get_fan_speed_percent,  	.get_fan_speed_rpm = sienna_cichlid_get_fan_speed_rpm,  	.get_power_profile_mode = sienna_cichlid_get_power_profile_mode,  	.set_power_profile_mode = sienna_cichlid_set_power_profile_mode, | 
