[PATCH 2/2] drm/amd: Drop all hand-built MIN and MAX macros in the amdgpu base driver
Alex Deucher
alexdeucher at gmail.com
Mon Oct 2 16:01:09 UTC 2023
On Sat, Sep 30, 2023 at 3:01 AM Mario Limonciello
<mario.limonciello at amd.com> wrote:
>
> Several files declare MIN() or MAX() macros that ignore the types of the
> values being compared. Drop these macros and switch to min() min_t(),
> and max() from `linux/minmax.h`.
>
> Suggested-by: Hamza Mahfooz <Hamza.Mahfooz at amd.com>
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 --
> drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 2 +-
> drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c | 4 ++--
> .../gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c | 4 ++--
> .../gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c | 4 ++--
> drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 4 ++--
> .../gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 10 ++++------
> drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 4 ++--
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 2 +-
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 7 +++----
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 7 +++----
> 11 files changed, 22 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 73e825d20259..d23fb4b5ad95 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -1329,8 +1329,6 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
> for (i = ffs(inst_mask); i-- != 0; \
> i = ffs(inst_mask & BIT_MASK_UPPER(i + 1)))
>
> -#define MIN(X, Y) ((X) < (Y) ? (X) : (Y))
> -
> /* Common functions */
> bool amdgpu_device_has_job_running(struct amdgpu_device *adev);
> bool amdgpu_device_should_recover_gpu(struct amdgpu_device *adev);
> diff --git a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
> index 02e69ccff3ba..fc8e4ac6c8e7 100644
> --- a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
> +++ b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
> @@ -6600,7 +6600,7 @@ static int si_dpm_get_fan_speed_pwm(void *handle,
>
> tmp64 = (u64)duty * 255;
> do_div(tmp64, duty100);
> - *speed = MIN((u32)tmp64, 255);
> + *speed = min_t(u32, tmp64, 255);
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c
> index a6c3610db23e..a8fc0fa44db6 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_thermal.c
> @@ -72,7 +72,7 @@ int smu7_fan_ctrl_get_fan_speed_pwm(struct pp_hwmgr *hwmgr,
>
> tmp64 = (uint64_t)duty * 255;
> do_div(tmp64, duty100);
> - *speed = MIN((uint32_t)tmp64, 255);
> + *speed = min_t(uint32_t, tmp64, 255);
>
> return 0;
> }
> @@ -210,7 +210,7 @@ int smu7_fan_ctrl_set_fan_speed_pwm(struct pp_hwmgr *hwmgr,
> if (hwmgr->thermal_controller.fanInfo.bNoFan)
> return 0;
>
> - speed = MIN(speed, 255);
> + speed = min_t(uint32_t, speed, 255);
>
> if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
> smu7_fan_ctrl_stop_smc_fan_control(hwmgr);
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> index 190af79f3236..379012494da5 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> @@ -81,7 +81,7 @@ int vega10_fan_ctrl_get_fan_speed_pwm(struct pp_hwmgr *hwmgr,
>
> tmp64 = (uint64_t)duty * 255;
> do_div(tmp64, duty100);
> - *speed = MIN((uint32_t)tmp64, 255);
> + *speed = min_t(uint32_t, tmp64, 255);
>
> return 0;
> }
> @@ -255,7 +255,7 @@ int vega10_fan_ctrl_set_fan_speed_pwm(struct pp_hwmgr *hwmgr,
> if (hwmgr->thermal_controller.fanInfo.bNoFan)
> return 0;
>
> - speed = MIN(speed, 255);
> + speed = min_t(uint32_t, speed, 255);
>
> if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
> vega10_fan_ctrl_stop_smc_fan_control(hwmgr);
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c
> index e9737ca8418a..a3331ffb2daf 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c
> @@ -131,7 +131,7 @@ int vega20_fan_ctrl_get_fan_speed_pwm(struct pp_hwmgr *hwmgr,
>
> tmp64 = (uint64_t)duty * 255;
> do_div(tmp64, duty100);
> - *speed = MIN((uint32_t)tmp64, 255);
> + *speed = min_t(uint32_t, tmp64, 255);
>
> return 0;
> }
> @@ -144,7 +144,7 @@ int vega20_fan_ctrl_set_fan_speed_pwm(struct pp_hwmgr *hwmgr,
> uint32_t duty;
> uint64_t tmp64;
>
> - speed = MIN(speed, 255);
> + speed = min_t(uint32_t, speed, 255);
>
> if (PP_CAP(PHM_PlatformCaps_MicrocodeFanControl))
> vega20_fan_ctrl_stop_smc_fan_control(hwmgr);
> 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 6e2e665ad383..a2bbc180b160 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c
> @@ -1203,7 +1203,7 @@ static int arcturus_set_fan_speed_pwm(struct smu_context *smu,
> uint32_t duty100, duty;
> uint64_t tmp64;
>
> - speed = MIN(speed, 255);
> + speed = min_t(uint32_t, speed, 255);
>
> duty100 = REG_GET_FIELD(RREG32_SOC15(THM, 0, mmCG_FDO_CTRL1_ARCT),
> CG_FDO_CTRL1, FMAX_DUTY100);
> @@ -1267,7 +1267,7 @@ static int arcturus_get_fan_speed_pwm(struct smu_context *smu,
> if (duty100) {
> tmp64 = (uint64_t)duty * 255;
> do_div(tmp64, duty100);
> - *speed = MIN((uint32_t)tmp64, 255);
> + *speed = min_t(uint32_t, tmp64, 255);
> } else {
> *speed = 0;
> }
> 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 dd07662262e4..ad2884088e69 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
> @@ -2089,8 +2089,6 @@ static int sienna_cichlid_display_disable_memory_clock_switch(struct smu_context
> return ret;
> }
>
> -#define MAX(a, b) ((a) > (b) ? (a) : (b))
> -
> static int sienna_cichlid_update_pcie_parameters(struct smu_context *smu,
> uint8_t pcie_gen_cap,
> uint8_t pcie_width_cap)
> @@ -2106,12 +2104,12 @@ static int sienna_cichlid_update_pcie_parameters(struct smu_context *smu,
> GET_PPTABLE_MEMBER(PcieGenSpeed, &table_member1);
> GET_PPTABLE_MEMBER(PcieLaneCount, &table_member2);
>
> - min_gen_speed = MAX(0, table_member1[0]);
> - max_gen_speed = MIN(pcie_gen_cap, table_member1[1]);
> + min_gen_speed = max_t(uint8_t, 0, table_member1[0]);
> + max_gen_speed = min(pcie_gen_cap, table_member1[1]);
> min_gen_speed = min_gen_speed > max_gen_speed ?
> max_gen_speed : min_gen_speed;
> - min_lane_width = MAX(1, table_member2[0]);
> - max_lane_width = MIN(pcie_width_cap, table_member2[1]);
> + min_lane_width = max_t(uint8_t, 1, table_member2[0]);
> + max_lane_width = min(pcie_width_cap, table_member2[1]);
> min_lane_width = min_lane_width > max_lane_width ?
> max_lane_width : min_lane_width;
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
> index ece43b41141c..5a314d0316c1 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
> @@ -1174,7 +1174,7 @@ smu_v11_0_set_fan_speed_pwm(struct smu_context *smu, uint32_t speed)
> uint32_t duty100, duty;
> uint64_t tmp64;
>
> - speed = MIN(speed, 255);
> + speed = min_t(uint32_t, speed, 255);
>
> duty100 = REG_GET_FIELD(RREG32_SOC15(THM, 0, mmCG_FDO_CTRL1),
> CG_FDO_CTRL1, FMAX_DUTY100);
> @@ -1249,7 +1249,7 @@ int smu_v11_0_get_fan_speed_pwm(struct smu_context *smu,
>
> tmp64 = (uint64_t)duty * 255;
> do_div(tmp64, duty100);
> - *speed = MIN((uint32_t)tmp64, 255);
> + *speed = min_t(uint32_t, tmp64, 255);
>
> return 0;
> }
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
> index 208db8b580eb..8dc683c02a7d 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
> @@ -1169,7 +1169,7 @@ int smu_v13_0_set_fan_speed_pwm(struct smu_context *smu,
> uint32_t duty100, duty;
> uint64_t tmp64;
>
> - speed = MIN(speed, 255);
> + speed = min_t(uint32_t, speed, 255);
>
> if (smu_v13_0_auto_fan_control(smu, 0))
> return -EINVAL;
> 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 1c15fa911176..a52da7bc787b 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
> @@ -1998,7 +1998,6 @@ static int smu_v13_0_0_get_thermal_temperature_range(struct smu_context *smu,
> return 0;
> }
>
> -#define MAX(a, b) ((a) > (b) ? (a) : (b))
> static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
> void **table)
> {
> @@ -2022,12 +2021,12 @@ static ssize_t smu_v13_0_0_get_gpu_metrics(struct smu_context *smu,
> gpu_metrics->temperature_mem = metrics->AvgTemperature[TEMP_MEM];
> gpu_metrics->temperature_vrgfx = metrics->AvgTemperature[TEMP_VR_GFX];
> gpu_metrics->temperature_vrsoc = metrics->AvgTemperature[TEMP_VR_SOC];
> - gpu_metrics->temperature_vrmem = MAX(metrics->AvgTemperature[TEMP_VR_MEM0],
> + gpu_metrics->temperature_vrmem = max(metrics->AvgTemperature[TEMP_VR_MEM0],
> metrics->AvgTemperature[TEMP_VR_MEM1]);
>
> gpu_metrics->average_gfx_activity = metrics->AverageGfxActivity;
> gpu_metrics->average_umc_activity = metrics->AverageUclkActivity;
> - gpu_metrics->average_mm_activity = MAX(metrics->Vcn0ActivityPercentage,
> + gpu_metrics->average_mm_activity = max(metrics->Vcn0ActivityPercentage,
> metrics->Vcn1ActivityPercentage);
>
> gpu_metrics->average_socket_power = metrics->AverageSocketPower;
> @@ -2286,7 +2285,7 @@ static int smu_v13_0_0_get_fan_speed_pwm(struct smu_context *smu,
> }
>
> /* Convert the PMFW output which is in percent to pwm(255) based */
> - *speed = MIN(*speed * 255 / 100, 255);
> + *speed = min(*speed * 255 / 100, (uint32_t)255);
>
> return 0;
> }
> 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 430ad1b05ba3..b8a7a1d853df 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
> @@ -1946,7 +1946,6 @@ static int smu_v13_0_7_get_thermal_temperature_range(struct smu_context *smu,
> return 0;
> }
>
> -#define MAX(a, b) ((a) > (b) ? (a) : (b))
> static ssize_t smu_v13_0_7_get_gpu_metrics(struct smu_context *smu,
> void **table)
> {
> @@ -1970,12 +1969,12 @@ static ssize_t smu_v13_0_7_get_gpu_metrics(struct smu_context *smu,
> gpu_metrics->temperature_mem = metrics->AvgTemperature[TEMP_MEM];
> gpu_metrics->temperature_vrgfx = metrics->AvgTemperature[TEMP_VR_GFX];
> gpu_metrics->temperature_vrsoc = metrics->AvgTemperature[TEMP_VR_SOC];
> - gpu_metrics->temperature_vrmem = MAX(metrics->AvgTemperature[TEMP_VR_MEM0],
> + gpu_metrics->temperature_vrmem = max(metrics->AvgTemperature[TEMP_VR_MEM0],
> metrics->AvgTemperature[TEMP_VR_MEM1]);
>
> gpu_metrics->average_gfx_activity = metrics->AverageGfxActivity;
> gpu_metrics->average_umc_activity = metrics->AverageUclkActivity;
> - gpu_metrics->average_mm_activity = MAX(metrics->Vcn0ActivityPercentage,
> + gpu_metrics->average_mm_activity = max(metrics->Vcn0ActivityPercentage,
> metrics->Vcn1ActivityPercentage);
>
> gpu_metrics->average_socket_power = metrics->AverageSocketPower;
> @@ -2210,7 +2209,7 @@ static int smu_v13_0_7_get_fan_speed_pwm(struct smu_context *smu,
> }
>
> /* Convert the PMFW output which is in percent to pwm(255) based */
> - *speed = MIN(*speed * 255 / 100, 255);
> + *speed = min(*speed * 255 / 100, (uint32_t)255);
>
> return 0;
> }
> --
> 2.34.1
>
More information about the amd-gfx
mailing list