[PATCH libdrm] amdgpu: allow to query GPU sensor related information
Andreas Boll
andreas.boll.dev at gmail.com
Tue Apr 4 13:11:20 UTC 2017
Please make sure that make check still passes with this patch applied.
I guess amdgpu/amdgpu-symbol-check needs to be updated with the new symbol.
Thanks,
Andreas
2017-04-04 10:37 GMT+02:00 Samuel Pitoiset <samuel.pitoiset at gmail.com>:
> This exposes amdgpu_query_sensor_info().
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> amdgpu/amdgpu.h | 18 ++++++++++++++++++
> amdgpu/amdgpu_gpu_info.c | 15 +++++++++++++++
> 2 files changed, 33 insertions(+)
>
> diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
> index 6b2ded83..55884b24 100644
> --- a/amdgpu/amdgpu.h
> +++ b/amdgpu/amdgpu.h
> @@ -1059,6 +1059,24 @@ int amdgpu_query_gds_info(amdgpu_device_handle dev,
> struct amdgpu_gds_resource_info *gds_info);
>
> /**
> + * Query information about sensor.
> + *
> + * The return size is query-specific and depends on the "sensor_type"
> + * parameter. No more than "size" bytes is returned.
> + *
> + * \param dev - \c [in] Device handle. See #amdgpu_device_initialize()
> + * \param sensor_type - \c [in] AMDGPU_INFO_SENSOR_*
> + * \param size - \c [in] Size of the returned value.
> + * \param value - \c [out] Pointer to the return value.
> + *
> + * \return 0 on success\n
> + * <0 - Negative POSIX Error code
> + *
> +*/
> +int amdgpu_query_sensor_info(amdgpu_device_handle dev, unsigned sensor_type,
> + unsigned size, void *value);
> +
> +/**
> * Read a set of consecutive memory-mapped registers.
> * Not all registers are allowed to be read by userspace.
> *
> diff --git a/amdgpu/amdgpu_gpu_info.c b/amdgpu/amdgpu_gpu_info.c
> index c5f5f6f4..f4b94c9e 100644
> --- a/amdgpu/amdgpu_gpu_info.c
> +++ b/amdgpu/amdgpu_gpu_info.c
> @@ -318,3 +318,18 @@ int amdgpu_query_gds_info(amdgpu_device_handle dev,
>
> return 0;
> }
> +
> +int amdgpu_query_sensor_info(amdgpu_device_handle dev, unsigned sensor_type,
> + unsigned size, void *value)
> +{
> + struct drm_amdgpu_info request;
> +
> + memset(&request, 0, sizeof(request));
> + request.return_pointer = (uintptr_t)value;
> + request.return_size = size;
> + request.query = AMDGPU_INFO_SENSOR;
> + request.sensor_info.type = sensor_type;
> +
> + return drmCommandWrite(dev->fd, DRM_AMDGPU_INFO, &request,
> + sizeof(struct drm_amdgpu_info));
> +}
> --
> 2.12.2
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list