[PATCH] drm/xe: Move HW GGTT definitions to dedicated file

Matt Roper matthew.d.roper at intel.com
Tue Mar 26 23:30:06 UTC 2024


On Tue, Mar 26, 2024 at 02:10:42PM +0100, Michal Wajdeczko wrote:
> It's better to keep all hardware GGTT definitions separated from
> the driver code. It also helps to avoid duplicated definitions.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Matt Roper <matthew.d.roper at intel.com>

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> ---
>  drivers/gpu/drm/xe/regs/xe_gtt_defs.h | 14 ++++++++++++++
>  drivers/gpu/drm/xe/xe_ggtt.c          |  7 +------
>  drivers/gpu/drm/xe/xe_guc.c           |  4 ++--
>  3 files changed, 17 insertions(+), 8 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/regs/xe_gtt_defs.h
> 
> diff --git a/drivers/gpu/drm/xe/regs/xe_gtt_defs.h b/drivers/gpu/drm/xe/regs/xe_gtt_defs.h
> new file mode 100644
> index 000000000000..9196d71bad37
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/regs/xe_gtt_defs.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2024 Intel Corporation
> + */
> +
> +#ifndef _XE_GTT_DEFS_H_
> +#define _XE_GTT_DEFS_H_
> +
> +#define XELPG_GGTT_PTE_PAT0	BIT_ULL(52)
> +#define XELPG_GGTT_PTE_PAT1	BIT_ULL(53)
> +
> +#define GUC_GGTT_TOP		0xFEE00000
> +
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index f54523d7d03c..f659af221bd8 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -12,6 +12,7 @@
>  #include <drm/i915_drm.h>
>  
>  #include "regs/xe_gt_regs.h"
> +#include "regs/xe_gtt_defs.h"
>  #include "regs/xe_regs.h"
>  #include "xe_assert.h"
>  #include "xe_bo.h"
> @@ -23,12 +24,6 @@
>  #include "xe_sriov.h"
>  #include "xe_wopcm.h"
>  
> -#define XELPG_GGTT_PTE_PAT0	BIT_ULL(52)
> -#define XELPG_GGTT_PTE_PAT1	BIT_ULL(53)
> -
> -/* GuC addresses above GUC_GGTT_TOP also don't map through the GTT */
> -#define GUC_GGTT_TOP	0xFEE00000
> -
>  static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
>  				   u16 pat_index)
>  {
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index c558d978462a..77be3bc2d7c0 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -12,6 +12,7 @@
>  #include "abi/guc_actions_abi.h"
>  #include "abi/guc_errors_abi.h"
>  #include "regs/xe_gt_regs.h"
> +#include "regs/xe_gtt_defs.h"
>  #include "regs/xe_guc_regs.h"
>  #include "xe_bo.h"
>  #include "xe_device.h"
> @@ -33,14 +34,13 @@
>  #include "xe_wa.h"
>  #include "xe_wopcm.h"
>  
> -/* GuC addresses above GUC_GGTT_TOP also don't map through the GTT */
> -#define GUC_GGTT_TOP    0xFEE00000
>  static u32 guc_bo_ggtt_addr(struct xe_guc *guc,
>  			    struct xe_bo *bo)
>  {
>  	struct xe_device *xe = guc_to_xe(guc);
>  	u32 addr = xe_bo_ggtt_addr(bo);
>  
> +	/* GuC addresses above GUC_GGTT_TOP don't map through the GTT */
>  	xe_assert(xe, addr >= xe_wopcm_size(guc_to_xe(guc)));
>  	xe_assert(xe, addr < GUC_GGTT_TOP);
>  	xe_assert(xe, bo->size <= GUC_GGTT_TOP - addr);
> -- 
> 2.43.0
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list