Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu/pm: wire up hwmon fan speed for smu 14.0.2

Add callbacks for fan speed fetching.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4034
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+35
+35
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
··· 1627 1627 adev->unique_id = ((uint64_t)upper32 << 32) | lower32; 1628 1628 } 1629 1629 1630 + static int smu_v14_0_2_get_fan_speed_pwm(struct smu_context *smu, 1631 + uint32_t *speed) 1632 + { 1633 + int ret; 1634 + 1635 + if (!speed) 1636 + return -EINVAL; 1637 + 1638 + ret = smu_v14_0_2_get_smu_metrics_data(smu, 1639 + METRICS_CURR_FANPWM, 1640 + speed); 1641 + if (ret) { 1642 + dev_err(smu->adev->dev, "Failed to get fan speed(PWM)!"); 1643 + return ret; 1644 + } 1645 + 1646 + /* Convert the PMFW output which is in percent to pwm(255) based */ 1647 + *speed = min(*speed * 255 / 100, (uint32_t)255); 1648 + 1649 + return 0; 1650 + } 1651 + 1652 + static int smu_v14_0_2_get_fan_speed_rpm(struct smu_context *smu, 1653 + uint32_t *speed) 1654 + { 1655 + if (!speed) 1656 + return -EINVAL; 1657 + 1658 + return smu_v14_0_2_get_smu_metrics_data(smu, 1659 + METRICS_CURR_FANSPEED, 1660 + speed); 1661 + } 1662 + 1630 1663 static int smu_v14_0_2_get_power_limit(struct smu_context *smu, 1631 1664 uint32_t *current_power_limit, 1632 1665 uint32_t *default_power_limit, ··· 2837 2804 .set_performance_level = smu_v14_0_set_performance_level, 2838 2805 .gfx_off_control = smu_v14_0_gfx_off_control, 2839 2806 .get_unique_id = smu_v14_0_2_get_unique_id, 2807 + .get_fan_speed_pwm = smu_v14_0_2_get_fan_speed_pwm, 2808 + .get_fan_speed_rpm = smu_v14_0_2_get_fan_speed_rpm, 2840 2809 .get_power_limit = smu_v14_0_2_get_power_limit, 2841 2810 .set_power_limit = smu_v14_0_2_set_power_limit, 2842 2811 .get_power_profile_mode = smu_v14_0_2_get_power_profile_mode,