drm/amd/powerplay: implement sensor of get feature mask
authorKevin Wang <Kevin1.Wang@amd.com>
Wed, 16 Jan 2019 01:55:03 +0000 (09:55 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:03:58 +0000 (15:03 -0500)
add sensor interface of feature mask for debugfs.
this interface is not ip related function, so need move high level
file to implement (amdgpu_smu)

Signed-off-by: Kevin Wang <Kevin1.Wang@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h
drivers/gpu/drm/amd/powerplay/smu_v11_0.c

index f17c85f..012d279 100644 (file)
 #include "smu_v11_0.h"
 #include "atom.h"
 
+int smu_common_read_sensor(struct smu_context *smu, enum amd_pp_sensors sensor,
+                          void *data, uint32_t *size)
+{
+       int ret = 0;
+
+       switch (sensor) {
+       case AMDGPU_PP_SENSOR_ENABLED_SMC_FEATURES_MASK:
+               ret = smu_feature_get_enabled_mask(smu, (uint32_t *)data, 2);
+               *size = 8;
+               break;
+       default:
+               ret = -EINVAL;
+               break;
+       }
+
+       if (ret)
+               *size = 0;
+
+       return ret;
+}
+
 int smu_update_table(struct smu_context *smu, uint32_t table_id,
                     void *table_data, bool drv2smu)
 {
index 99700a0..2e89a59 100644 (file)
@@ -377,6 +377,8 @@ int smu_update_table(struct smu_context *smu, uint32_t table_id,
                     void *table_data, bool drv2smu);
 bool is_support_sw_smu(struct amdgpu_device *adev);
 int smu_reset(struct smu_context *smu);
+int smu_common_read_sensor(struct smu_context *smu, enum amd_pp_sensors sensor,
+                          void *data, uint32_t *size);
 int smu_sys_get_pp_table(struct smu_context *smu, void **table);
 int smu_sys_set_pp_table(struct smu_context *smu,  void *buf, size_t size);
 
index 7c64509..1f9459c 100644 (file)
@@ -1108,7 +1108,7 @@ static int smu_v11_0_read_sensor(struct smu_context *smu,
                *size = 4;
                break;
        default:
-               ret = -EINVAL;
+               ret = smu_common_read_sensor(smu, sensor, data, size);
                break;
        }