Commit 25852d4b authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu: fix avg vs input power reporting on smu7



Hawaii, Bonaire, Fiji, and Tonga support average power, the others
support current power.

Reviewed-by: default avatarYang Wang <kevinyang.wang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 02eed83a
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -3999,6 +3999,7 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx,
	uint32_t sclk, mclk, activity_percent;
	uint32_t offset, val_vid;
	struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
	struct amdgpu_device *adev = hwmgr->adev;

	/* size must be at least 4 bytes for all sensors */
	if (*size < 4)
@@ -4042,6 +4043,20 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx,
		*size = 4;
		return 0;
	case AMDGPU_PP_SENSOR_GPU_INPUT_POWER:
		if ((adev->asic_type != CHIP_HAWAII) &&
		    (adev->asic_type != CHIP_BONAIRE) &&
		    (adev->asic_type != CHIP_FIJI) &&
		    (adev->asic_type != CHIP_TONGA))
			return smu7_get_gpu_power(hwmgr, (uint32_t *)value);
		else
			return -EOPNOTSUPP;
	case AMDGPU_PP_SENSOR_GPU_AVG_POWER:
		if ((adev->asic_type != CHIP_HAWAII) &&
		    (adev->asic_type != CHIP_BONAIRE) &&
		    (adev->asic_type != CHIP_FIJI) &&
		    (adev->asic_type != CHIP_TONGA))
			return -EOPNOTSUPP;
		else
			return smu7_get_gpu_power(hwmgr, (uint32_t *)value);
	case AMDGPU_PP_SENSOR_VDDGFX:
		if ((data->vr_config & VRCONF_VDDGFX_MASK) ==