[igt-dev] [PATCH i-g-t] lib/xe_query: Add device id helper

Mauro Carvalho Chehab mauro.chehab at linux.intel.com
Tue Mar 14 10:49:54 UTC 2023


On Tue, 14 Mar 2023 11:44:59 +0100
Zbigniew Kempczyński <zbigniew.kempczynski at intel.com> wrote:

> Add support to query XE_QUERY_CONFIG_REV_AND_DEVICE_ID and xe_dev_id()
> helper.
> 
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Mauro Carvalho Chehab <mchehab at kernel.org>

Reviewed-by: Mauro Carvalho Chehab <mchehab at kernel.org>

> ---
>  lib/xe/xe_query.c | 17 +++++++++++++++++
>  lib/xe/xe_query.h |  4 ++++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/lib/xe/xe_query.c b/lib/xe/xe_query.c
> index a6926057f0..701ab8fde0 100644
> --- a/lib/xe/xe_query.c
> +++ b/lib/xe/xe_query.c
> @@ -247,6 +247,7 @@ struct xe_device *xe_device_get(int fd)
>  	xe_dev->config = xe_query_config_new(fd);
>  	xe_dev->number_gt = xe_dev->config->info[XE_QUERY_CONFIG_GT_COUNT];
>  	xe_dev->va_bits = xe_dev->config->info[XE_QUERY_CONFIG_VA_BITS];
> +	xe_dev->rev_dev_id = xe_dev->config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID];
>  	xe_dev->gts = xe_query_gts_new(fd);
>  	xe_dev->memory_regions = __memory_regions(xe_dev->gts);
>  	xe_dev->hw_engines = xe_query_engines_new(fd, &xe_dev->number_hw_engines);
> @@ -465,6 +466,22 @@ xe_dev_FN(xe_supports_faults, supports_faults, bool);
>   */
>  xe_dev_FN(xe_va_bits, va_bits, uint32_t);
>  
> +/**
> + * xe_dev_id:
> + * @fd: xe device fd
> + *
> + * Returns 16-bit device id for xe device @fd.
> + */
> +uint16_t xe_dev_id(int fd)
> +{
> +	struct xe_device *xe_dev;
> +
> +	xe_dev = find_in_cache(fd);
> +	igt_assert(xe_dev);
> +
> +	return xe_dev->rev_dev_id & 0xffff;
> +}
> +
>  igt_constructor
>  {
>  	xe_device_cache_init();
> diff --git a/lib/xe/xe_query.h b/lib/xe/xe_query.h
> index fe1343f616..12d2800b48 100644
> --- a/lib/xe/xe_query.h
> +++ b/lib/xe/xe_query.h
> @@ -58,6 +58,9 @@ struct xe_device {
>  
>  	/** @va_bits: va length in bits */
>  	uint32_t va_bits;
> +
> +	/** @rev_dev_id: device id */
> +	uint16_t rev_dev_id;
>  };
>  
>  #define for_each_hw_engine(__fd, __hwe) \
> @@ -85,6 +88,7 @@ bool xe_has_vram(int fd);
>  uint64_t xe_vram_size(int fd, int gt);
>  uint32_t xe_get_default_alignment(int fd);
>  uint32_t xe_va_bits(int fd);
> +uint16_t xe_dev_id(int fd);
>  bool xe_supports_faults(int fd);
>  const char *xe_engine_class_string(uint32_t engine_class);
>  


More information about the igt-dev mailing list