[igt-dev] [i-g-t] lib/intel_aux_pgtable: Add XE support for pagetable mapping

Juha-Pekka Heikkila juhapekka.heikkila at gmail.com
Thu Nov 2 11:51:37 UTC 2023


Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>

On 30.10.2023 18.08, Bhanuprakash Modem wrote:
> For XE device, use XE specific APIs to map pagetable.
> 
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> ---
>   lib/intel_aux_pgtable.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/intel_aux_pgtable.c b/lib/intel_aux_pgtable.c
> index 7c7952134..3cbb0e26f 100644
> --- a/lib/intel_aux_pgtable.c
> +++ b/lib/intel_aux_pgtable.c
> @@ -9,6 +9,7 @@
>   #include "ioctl_wrappers.h"
>   
>   #include "i915/gem_mman.h"
> +#include "xe/xe_ioctl.h"
>   
>   #define BITMASK(e, s)		((~0ULL << (s)) & \
>   				 (~0ULL >> (BITS_PER_LONG_LONG - 1 - (e))))
> @@ -371,10 +372,13 @@ pgt_populate_entries_for_buf(struct pgtable *pgt,
>   	}
>   }
>   
> -static void pgt_map(int i915, struct pgtable *pgt)
> +static void pgt_map(int drm_fd, struct pgtable *pgt)
>   {
> -	pgt->ptr = gem_mmap__device_coherent(i915, pgt->buf->handle, 0,
> -					     pgt->size, PROT_READ | PROT_WRITE);
> +	pgt->ptr = is_i915_device(drm_fd) ?
> +			gem_mmap__device_coherent(drm_fd, pgt->buf->handle, 0,
> +						  pgt->size, PROT_READ | PROT_WRITE):
> +			xe_bo_mmap_ext(drm_fd, pgt->buf->handle,
> +				       pgt->size, PROT_READ | PROT_WRITE);
>   }
>   
>   static void pgt_unmap(struct pgtable *pgt)



More information about the igt-dev mailing list