[Intel-xe] [PATCH 4/4] drm/xe: Sort xe_regs.h

Matt Roper matthew.d.roper at intel.com
Tue Jul 25 22:55:15 UTC 2023


On Tue, Jul 25, 2023 at 01:28:36PM -0700, Lucas De Marchi wrote:
> Sort it by register address, but  keeping a few exceptions when a
> register for a platform changed the address, but has the same
> functionality as an already existing register.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>  drivers/gpu/drm/xe/regs/xe_regs.h | 56 +++++++++++++++----------------
>  1 file changed, 28 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/regs/xe_regs.h b/drivers/gpu/drm/xe/regs/xe_regs.h
> index 3f7052fec6cc..0b3607e0ba1c 100644
> --- a/drivers/gpu/drm/xe/regs/xe_regs.h
> +++ b/drivers/gpu/drm/xe/regs/xe_regs.h
> @@ -7,9 +7,6 @@
>  
>  #include "regs/xe_reg_defs.h"
>  
> -#define GU_CNTL					XE_REG(0x101010)
> -#define   LMEM_INIT				REG_BIT(7)
> -
>  #define RENDER_RING_BASE			0x02000
>  #define BSD_RING_BASE				0x1c0000
>  #define BSD2_RING_BASE				0x1c4000
> @@ -45,36 +42,15 @@
>  #define FF_THREAD_MODE				XE_REG(0x20a0)

Looks like there are some registers that don't really belong in this
file.  We'll need to move at least this one to the engine register
header at some point.  Actually we should probably move the *_RING_BASE
registers as well.  But that can all happen in a future patch.

>  #define   FF_TESSELATION_DOP_GATE_DISABLE	BIT(19)
>  
> -#define PVC_RP_STATE_CAP			XE_REG(0x281014)
> -#define MTL_RP_STATE_CAP			XE_REG(0x138000)
> -
> -#define MTL_MEDIAP_STATE_CAP			XE_REG(0x138020)
> -#define   MTL_RP0_CAP_MASK			REG_GENMASK(8, 0)
> -#define   MTL_RPN_CAP_MASK			REG_GENMASK(24, 16)
> -
> -#define MTL_GT_RPE_FREQUENCY			XE_REG(0x13800c)
> -#define MTL_MPE_FREQUENCY			XE_REG(0x13802c)
> -#define   MTL_RPE_MASK				REG_GENMASK(8, 0)
> -
> -#define SOFTWARE_FLAGS_SPR33			XE_REG(0x4f084)
> +#define TIMESTAMP_OVERRIDE					XE_REG(0x44074)
> +#define   TIMESTAMP_OVERRIDE_US_COUNTER_DENOMINATOR_MASK	REG_GENMASK(15, 12)
> +#define   TIMESTAMP_OVERRIDE_US_COUNTER_DIVIDER_MASK		REG_GENMASK(9, 0)
>  
>  #define PCU_IRQ_OFFSET				0x444e0
>  #define GU_MISC_IRQ_OFFSET			0x444f0
>  #define   GU_MISC_GSE				REG_BIT(27)
>  
> -#define GFX_MSTR_IRQ				XE_REG(0x190010)
> -#define   MASTER_IRQ				REG_BIT(31)
> -#define   GU_MISC_IRQ				REG_BIT(29)
> -#define   DISPLAY_IRQ				REG_BIT(16)
> -#define   GT_DW_IRQ(x)				REG_BIT(x)
> -
> -#define DG1_MSTR_TILE_INTR			XE_REG(0x190008)
> -#define   DG1_MSTR_IRQ				REG_BIT(31)
> -#define   DG1_MSTR_TILE(t)			REG_BIT(t)
> -
> -#define TIMESTAMP_OVERRIDE					XE_REG(0x44074)
> -#define   TIMESTAMP_OVERRIDE_US_COUNTER_DENOMINATOR_MASK	REG_GENMASK(15, 12)
> -#define   TIMESTAMP_OVERRIDE_US_COUNTER_DIVIDER_MASK		REG_GENMASK(9, 0)
> +#define SOFTWARE_FLAGS_SPR33			XE_REG(0x4f084)
>  
>  #define GGC					XE_REG(0x108040)
>  #define   GMS_MASK				REG_GENMASK(15, 8)
> @@ -87,4 +63,28 @@
>  #define STOLEN_RESERVED				XE_REG(0x1082C0)

We should also make sure we're writing hex in lowercase consistently
too.  Again, that can be done in a future patch.

>  #define   WOPCM_SIZE_MASK			REG_GENMASK64(8, 7)
>  
> +#define GU_CNTL					XE_REG(0x101010)
> +#define   LMEM_INIT				REG_BIT(7)
> +
> +#define MTL_RP_STATE_CAP			XE_REG(0x138000)
> +#define PVC_RP_STATE_CAP			XE_REG(0x281014)

I think it's better to keep consistent sorting rather than trying to
keep registers that moved between platforms in the same place.  Too many
exceptions like this ultimately leads to chaos when people aren't sure
how far they can stretch the exceptions.

> +
> +#define MTL_MEDIAP_STATE_CAP			XE_REG(0x138020)
> +#define   MTL_RPN_CAP_MASK			REG_GENMASK(24, 16)
> +#define   MTL_RP0_CAP_MASK			REG_GENMASK(8, 0)
> +
> +#define MTL_GT_RPE_FREQUENCY			XE_REG(0x13800c)

It looks like this one should be slightly earlier (0x13800c < 0x138020).


Matt

> +#define MTL_MPE_FREQUENCY			XE_REG(0x13802c)
> +#define   MTL_RPE_MASK				REG_GENMASK(8, 0)
> +
> +#define DG1_MSTR_TILE_INTR			XE_REG(0x190008)
> +#define   DG1_MSTR_IRQ				REG_BIT(31)
> +#define   DG1_MSTR_TILE(t)			REG_BIT(t)
> +
> +#define GFX_MSTR_IRQ				XE_REG(0x190010)
> +#define   MASTER_IRQ				REG_BIT(31)
> +#define   GU_MISC_IRQ				REG_BIT(29)
> +#define   DISPLAY_IRQ				REG_BIT(16)
> +#define   GT_DW_IRQ(x)				REG_BIT(x)
> +
>  #endif
> -- 
> 2.40.1
> 

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


More information about the Intel-xe mailing list