[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