All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH 0/2] Start register cleanup
@ 2023-02-14  8:33 Lucas De Marchi
  2023-02-14  8:33 ` [Intel-xe] [PATCH 1/2] drm/xe/guc: Remove i915_regs.h include Lucas De Marchi
  2023-02-14  8:33 ` [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h Lucas De Marchi
  0 siblings, 2 replies; 7+ messages in thread
From: Lucas De Marchi @ 2023-02-14  8:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi

Start cleaning up the register definitions used in xe. The engine regs
are chosen as they are small enough and we can use them to agree on file
names, location and approach. GT and "global" registers will follow.

Lucas De Marchi (2):
  drm/xe/guc: Remove i915_regs.h include
  drm/xe: Remove dependency on intel_engine_regs.h

 drivers/gpu/drm/xe/xe_execlist.c            |  5 +-
 drivers/gpu/drm/xe/xe_guc_ads.c             |  6 +-
 drivers/gpu/drm/xe/xe_guc_reg.h             |  2 +-
 drivers/gpu/drm/xe/xe_hw_engine.c           |  2 +-
 drivers/gpu/drm/xe/xe_lrc.c                 |  3 +-
 drivers/gpu/drm/xe/xe_mmio.c                |  2 +-
 drivers/gpu/drm/xe/xe_reg_sr.c              |  2 +-
 drivers/gpu/drm/xe/xe_reg_whitelist.c       |  3 +-
 drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h | 81 +++++++++++++++++++++
 drivers/gpu/drm/xe/xe_wa.c                  |  2 +-
 10 files changed, 97 insertions(+), 11 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h

-- 
2.39.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Intel-xe] [PATCH 1/2] drm/xe/guc: Remove i915_regs.h include
  2023-02-14  8:33 [Intel-xe] [PATCH 0/2] Start register cleanup Lucas De Marchi
@ 2023-02-14  8:33 ` Lucas De Marchi
  2023-02-15 10:53   ` Matthew Auld
  2023-02-14  8:33 ` [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h Lucas De Marchi
  1 sibling, 1 reply; 7+ messages in thread
From: Lucas De Marchi @ 2023-02-14  8:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi

i915_regs.h is not needed, particularly in a header file. What is needed
is i915_reg_defs.h for use of _MMIO() and similar macros.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_guc_reg.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_reg.h b/drivers/gpu/drm/xe/xe_guc_reg.h
index 1e16a9b76ddc..513a7e0c8a5a 100644
--- a/drivers/gpu/drm/xe/xe_guc_reg.h
+++ b/drivers/gpu/drm/xe/xe_guc_reg.h
@@ -9,7 +9,7 @@
 #include <linux/compiler.h>
 #include <linux/types.h>
 
-#include "i915_reg.h"
+#include "i915_reg_defs.h"
 
 /* Definitions of GuC H/W registers, bits, etc */
 
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h
  2023-02-14  8:33 [Intel-xe] [PATCH 0/2] Start register cleanup Lucas De Marchi
  2023-02-14  8:33 ` [Intel-xe] [PATCH 1/2] drm/xe/guc: Remove i915_regs.h include Lucas De Marchi
@ 2023-02-14  8:33 ` Lucas De Marchi
  2023-02-15  2:59   ` Lucas De Marchi
  2023-02-16 13:06   ` Jani Nikula
  1 sibling, 2 replies; 7+ messages in thread
From: Lucas De Marchi @ 2023-02-14  8:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi

Create xe_regs/xe_engine_regs.h file with all the registers and bit
definitions used by the xe driver. Eventually the registers may be
defined in a different way and since xe doesn't supported below gen12,
the number of registers touched is much smaller, so create a new header.

The definitions themselves are direct copy from the
gt/intel_engine_regs.h file, just sorting the registers by address.
Cleaning those up and adhering to a common coding style is left for
later.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_execlist.c            |  5 +-
 drivers/gpu/drm/xe/xe_guc_ads.c             |  6 +-
 drivers/gpu/drm/xe/xe_hw_engine.c           |  2 +-
 drivers/gpu/drm/xe/xe_lrc.c                 |  3 +-
 drivers/gpu/drm/xe/xe_mmio.c                |  2 +-
 drivers/gpu/drm/xe/xe_reg_sr.c              |  2 +-
 drivers/gpu/drm/xe/xe_reg_whitelist.c       |  3 +-
 drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h | 81 +++++++++++++++++++++
 drivers/gpu/drm/xe/xe_wa.c                  |  2 +-
 9 files changed, 96 insertions(+), 10 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h

diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
index d555d77cbf49..254e1a6688c2 100644
--- a/drivers/gpu/drm/xe/xe_execlist.c
+++ b/drivers/gpu/drm/xe/xe_execlist.c
@@ -3,9 +3,11 @@
  * Copyright © 2021 Intel Corporation
  */
 
+#include "xe_execlist.h"
+
 #include <drm/drm_managed.h>
 
-#include "xe_execlist.h"
+#include <xe_regs/xe_engine_regs.h>
 
 #include "xe_bo.h"
 #include "xe_device.h"
@@ -23,7 +25,6 @@
 #include "gt/intel_gpu_commands.h"
 #include "gt/intel_gt_regs.h"
 #include "gt/intel_lrc_reg.h"
-#include "gt/intel_engine_regs.h"
 
 #define XE_EXECLIST_HANG_LIMIT 1
 
diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
index 0c08cecaca40..51d383e97ce2 100644
--- a/drivers/gpu/drm/xe/xe_guc_ads.c
+++ b/drivers/gpu/drm/xe/xe_guc_ads.c
@@ -3,12 +3,14 @@
  * Copyright © 2022 Intel Corporation
  */
 
+#include "xe_guc_ads.h"
+
 #include <drm/drm_managed.h>
+#include <xe_regs/xe_engine_regs.h>
 
 #include "xe_bo.h"
 #include "xe_gt.h"
 #include "xe_guc.h"
-#include "xe_guc_ads.h"
 #include "xe_guc_reg.h"
 #include "xe_hw_engine.h"
 #include "xe_lrc.h"
@@ -16,7 +18,7 @@
 #include "xe_mmio.h"
 #include "xe_platform_types.h"
 #include "gt/intel_gt_regs.h"
-#include "gt/intel_engine_regs.h"
+
 
 /* Slack of a few additional entries per engine */
 #define ADS_REGSET_EXTRA_MAX	8
diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index fd89dd90131c..85eda0cdc29c 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -6,6 +6,7 @@
 #include "xe_hw_engine.h"
 
 #include <drm/drm_managed.h>
+#include <xe_regs/xe_engine_regs.h>
 
 #include "xe_bo.h"
 #include "xe_device.h"
@@ -21,7 +22,6 @@
 #include "xe_sched_job.h"
 #include "xe_wa.h"
 
-#include "gt/intel_engine_regs.h"
 #include "i915_reg.h"
 #include "gt/intel_gt_regs.h"
 
diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
index 347ff9b34494..0cd6e0b72101 100644
--- a/drivers/gpu/drm/xe/xe_lrc.c
+++ b/drivers/gpu/drm/xe/xe_lrc.c
@@ -5,6 +5,8 @@
 
 #include "xe_lrc.h"
 
+#include <xe_regs/xe_engine_regs.h>
+
 #include "xe_bo.h"
 #include "xe_device.h"
 #include "xe_engine_types.h"
@@ -17,7 +19,6 @@
 #include "gt/intel_gpu_commands.h"
 #include "gt/intel_gt_regs.h"
 #include "gt/intel_lrc_reg.h"
-#include "gt/intel_engine_regs.h"
 
 #define GEN8_CTX_VALID				(1 << 0)
 #define GEN8_CTX_L3LLC_COHERENT			(1 << 5)
diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
index 8a953df2b468..ced757ba9ccb 100644
--- a/drivers/gpu/drm/xe/xe_mmio.c
+++ b/drivers/gpu/drm/xe/xe_mmio.c
@@ -7,6 +7,7 @@
 
 #include <drm/drm_managed.h>
 #include <drm/xe_drm.h>
+#include <xe_regs/xe_engine_regs.h>
 
 #include "xe_device.h"
 #include "xe_gt.h"
@@ -15,7 +16,6 @@
 #include "xe_module.h"
 
 #include "i915_reg.h"
-#include "gt/intel_engine_regs.h"
 #include "gt/intel_gt_regs.h"
 
 #define XEHP_MTCFG_ADDR		_MMIO(0x101800)
diff --git a/drivers/gpu/drm/xe/xe_reg_sr.c b/drivers/gpu/drm/xe/xe_reg_sr.c
index f7eceb84e647..5d53379341b8 100644
--- a/drivers/gpu/drm/xe/xe_reg_sr.c
+++ b/drivers/gpu/drm/xe/xe_reg_sr.c
@@ -11,6 +11,7 @@
 
 #include <drm/drm_print.h>
 #include <drm/drm_managed.h>
+#include <xe_regs/xe_engine_regs.h>
 
 #include "xe_rtp_types.h"
 #include "xe_device_types.h"
@@ -20,7 +21,6 @@
 #include "xe_macros.h"
 #include "xe_mmio.h"
 
-#include "gt/intel_engine_regs.h"
 #include "gt/intel_gt_regs.h"
 
 #define XE_REG_SR_GROW_STEP_DEFAULT	16
diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
index a34617a642ec..42554870f3ba 100644
--- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
+++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
@@ -5,11 +5,12 @@
 
 #include "xe_reg_whitelist.h"
 
+#include <xe_regs/xe_engine_regs.h>
+
 #include "xe_platform_types.h"
 #include "xe_gt_types.h"
 #include "xe_rtp.h"
 
-#include "../i915/gt/intel_engine_regs.h"
 #include "../i915/gt/intel_gt_regs.h"
 
 #undef _MMIO
diff --git a/drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h b/drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h
new file mode 100644
index 000000000000..70796c8b117d
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h
@@ -0,0 +1,81 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#ifndef _XE_ENGINE_REGS_H_
+#define _XE_ENGINE_REGS_H_
+
+#include <asm/page.h>
+
+#include "i915_reg_defs.h"
+
+#define RING_TAIL(base)				_MMIO((base) + 0x30)
+#define RING_HEAD(base)				_MMIO((base) + 0x34)
+#define   HEAD_ADDR				0x001FFFFC
+#define RING_START(base)			_MMIO((base) + 0x38)
+#define RING_CTL(base)				_MMIO((base) + 0x3c)
+#define   RING_CTL_SIZE(size)			((size) - PAGE_SIZE) /* in bytes -> pages */
+#define   RING_CTL_SIZE(size)			((size) - PAGE_SIZE) /* in bytes -> pages */
+#define RING_PSMI_CTL(base)			_MMIO((base) + 0x50)
+#define   GEN8_RC_SEMA_IDLE_MSG_DISABLE			REG_BIT(12)
+#define   GEN12_WAIT_FOR_EVENT_POWER_DOWN_DISABLE	REG_BIT(7)
+#define RING_ACTHD_UDW(base)			_MMIO((base) + 0x5c)
+#define RING_DMA_FADD_UDW(base)			_MMIO((base) + 0x60) /* gen8+ */
+#define RING_IPEIR(base)			_MMIO((base) + 0x64)
+#define RING_IPEHR(base)			_MMIO((base) + 0x68)
+#define RING_ACTHD(base)			_MMIO((base) + 0x74)
+#define RING_DMA_FADD(base)			_MMIO((base) + 0x78)
+#define RING_HWS_PGA(base)			_MMIO((base) + 0x80)
+#define IPEIR(base)				_MMIO((base) + 0x88)
+#define IPEHR(base)				_MMIO((base) + 0x8c)
+#define RING_HWSTAM(base)			_MMIO((base) + 0x98)
+#define RING_MI_MODE(base)			_MMIO((base) + 0x9c)
+#define RING_NOPID(base)			_MMIO((base) + 0x94)
+#define RING_IMR(base)				_MMIO((base) + 0xa8)
+#define   RING_MAX_NONPRIV_SLOTS  12
+#define RING_EIR(base)				_MMIO((base) + 0xb0)
+#define RING_EMR(base)				_MMIO((base) + 0xb4)
+#define RING_ESR(base)				_MMIO((base) + 0xb8)
+#define RING_BBADDR(base)			_MMIO((base) + 0x140)
+#define RING_BBADDR_UDW(base)			_MMIO((base) + 0x168) /* gen8+ */
+#define RING_EXECLIST_STATUS_LO(base)		_MMIO((base) + 0x234)
+#define RING_EXECLIST_STATUS_HI(base)		_MMIO((base) + 0x234 + 4)
+#define RING_CONTEXT_CONTROL(base)		_MMIO((base) + 0x244)
+#define	  CTX_CTRL_INHIBIT_SYN_CTX_SWITCH	REG_BIT(3)
+#define	  CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT	REG_BIT(0)
+#define RING_MODE_GEN7(base)			_MMIO((base) + 0x29c)
+#define   GEN11_GFX_DISABLE_LEGACY_MODE		(1 << 3)
+#define RING_TIMESTAMP(base)			_MMIO((base) + 0x358)
+#define RING_TIMESTAMP_UDW(base)		_MMIO((base) + 0x358 + 4)
+#define   RING_VALID_MASK			0x00000001
+#define   RING_VALID				0x00000001
+#define   STOP_RING				REG_BIT(8)
+#define   TAIL_ADDR				0x001FFFF8
+#define RING_CTX_TIMESTAMP(base)		_MMIO((base) + 0x3a8) /* gen8+ */
+#define RING_FORCE_TO_NONPRIV(base, i)		_MMIO(((base) + 0x4d0) + (i) * 4)
+#define   RING_FORCE_TO_NONPRIV_DENY		REG_BIT(30)
+#define   RING_FORCE_TO_NONPRIV_ADDRESS_MASK	REG_GENMASK(25, 2)
+#define   RING_FORCE_TO_NONPRIV_ACCESS_RW	(0 << 28)    /* CFL+ & Gen11+ */
+#define   RING_FORCE_TO_NONPRIV_ACCESS_RD	(1 << 28)
+#define   RING_FORCE_TO_NONPRIV_ACCESS_WR	(2 << 28)
+#define   RING_FORCE_TO_NONPRIV_ACCESS_INVALID	(3 << 28)
+#define   RING_FORCE_TO_NONPRIV_ACCESS_MASK	(3 << 28)
+#define   RING_FORCE_TO_NONPRIV_RANGE_1		(0 << 0)     /* CFL+ & Gen11+ */
+#define   RING_FORCE_TO_NONPRIV_RANGE_4		(1 << 0)
+#define   RING_FORCE_TO_NONPRIV_RANGE_16	(2 << 0)
+#define   RING_FORCE_TO_NONPRIV_RANGE_64	(3 << 0)
+#define   RING_FORCE_TO_NONPRIV_RANGE_MASK	(3 << 0)
+#define   RING_FORCE_TO_NONPRIV_MASK_VALID	(RING_FORCE_TO_NONPRIV_RANGE_MASK | \
+						 RING_FORCE_TO_NONPRIV_ACCESS_MASK | \
+						 RING_FORCE_TO_NONPRIV_DENY)
+#define   RING_MAX_NONPRIV_SLOTS  12
+#define RING_EXECLIST_SQ_CONTENTS(base)		_MMIO((base) + 0x510)
+#define RING_EXECLIST_CONTROL(base)		_MMIO((base) + 0x550)
+#define	  EL_CTRL_LOAD				REG_BIT(0)
+#define VDBOX_CGCTL3F10(base)			_MMIO((base) + 0x3f10)
+#define   IECPUNIT_CLKGATE_DIS			REG_BIT(22)
+#define VDBOX_CGCTL3F18(base)			_MMIO((base) + 0x3f18)
+#define   ALNUNIT_CLKGATE_DIS			REG_BIT(13)
+
+#endif
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index 9d2e4555091c..915b670d31fc 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -6,6 +6,7 @@
 #include "xe_wa.h"
 
 #include <linux/compiler_types.h>
+#include <xe_regs/xe_engine_regs.h>
 
 #include "xe_device_types.h"
 #include "xe_force_wake.h"
@@ -16,7 +17,6 @@
 #include "xe_rtp.h"
 #include "xe_step.h"
 
-#include "gt/intel_engine_regs.h"
 #include "gt/intel_gt_regs.h"
 #include "i915_reg.h"
 
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h
  2023-02-14  8:33 ` [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h Lucas De Marchi
@ 2023-02-15  2:59   ` Lucas De Marchi
  2023-02-16 13:06   ` Jani Nikula
  1 sibling, 0 replies; 7+ messages in thread
From: Lucas De Marchi @ 2023-02-15  2:59 UTC (permalink / raw)
  To: intel-xe

On Tue, Feb 14, 2023 at 12:33:20AM -0800, Lucas De Marchi wrote:
>Create xe_regs/xe_engine_regs.h file with all the registers and bit

in v2 I'm rather using

	#include "regs/xe_engine_regs.h"

IMO it was odd to have xe_ in the dir name.  I finished converting the
intel_gt_regs.h -> xe_gt_regs.h and will try to tackle i915_regs.h
before sending out a new version.

Lucas De Marchi

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Intel-xe] [PATCH 1/2] drm/xe/guc: Remove i915_regs.h include
  2023-02-14  8:33 ` [Intel-xe] [PATCH 1/2] drm/xe/guc: Remove i915_regs.h include Lucas De Marchi
@ 2023-02-15 10:53   ` Matthew Auld
  0 siblings, 0 replies; 7+ messages in thread
From: Matthew Auld @ 2023-02-15 10:53 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe

On Tue, 14 Feb 2023 at 08:34, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
>
> i915_regs.h is not needed, particularly in a header file. What is needed
> is i915_reg_defs.h for use of _MMIO() and similar macros.
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h
  2023-02-14  8:33 ` [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h Lucas De Marchi
  2023-02-15  2:59   ` Lucas De Marchi
@ 2023-02-16 13:06   ` Jani Nikula
  2023-02-16 13:51     ` Lucas De Marchi
  1 sibling, 1 reply; 7+ messages in thread
From: Jani Nikula @ 2023-02-16 13:06 UTC (permalink / raw)
  To: Lucas De Marchi, intel-xe; +Cc: Lucas De Marchi

On Tue, 14 Feb 2023, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> Create xe_regs/xe_engine_regs.h file with all the registers and bit
> definitions used by the xe driver. Eventually the registers may be
> defined in a different way and since xe doesn't supported below gen12,
> the number of registers touched is much smaller, so create a new header.
>
> The definitions themselves are direct copy from the
> gt/intel_engine_regs.h file, just sorting the registers by address.
> Cleaning those up and adhering to a common coding style is left for
> later.
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_execlist.c            |  5 +-
>  drivers/gpu/drm/xe/xe_guc_ads.c             |  6 +-
>  drivers/gpu/drm/xe/xe_hw_engine.c           |  2 +-
>  drivers/gpu/drm/xe/xe_lrc.c                 |  3 +-
>  drivers/gpu/drm/xe/xe_mmio.c                |  2 +-
>  drivers/gpu/drm/xe/xe_reg_sr.c              |  2 +-
>  drivers/gpu/drm/xe/xe_reg_whitelist.c       |  3 +-
>  drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h | 81 +++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_wa.c                  |  2 +-
>  9 files changed, 96 insertions(+), 10 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h
>
> diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
> index d555d77cbf49..254e1a6688c2 100644
> --- a/drivers/gpu/drm/xe/xe_execlist.c
> +++ b/drivers/gpu/drm/xe/xe_execlist.c
> @@ -3,9 +3,11 @@
>   * Copyright © 2021 Intel Corporation
>   */
>  
> +#include "xe_execlist.h"
> +
>  #include <drm/drm_managed.h>
>  
> -#include "xe_execlist.h"
> +#include <xe_regs/xe_engine_regs.h>

Why the system include <> instead of ""?

BR,
Jani.


>  
>  #include "xe_bo.h"
>  #include "xe_device.h"
> @@ -23,7 +25,6 @@
>  #include "gt/intel_gpu_commands.h"
>  #include "gt/intel_gt_regs.h"
>  #include "gt/intel_lrc_reg.h"
> -#include "gt/intel_engine_regs.h"
>  
>  #define XE_EXECLIST_HANG_LIMIT 1
>  
> diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
> index 0c08cecaca40..51d383e97ce2 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ads.c
> +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
> @@ -3,12 +3,14 @@
>   * Copyright © 2022 Intel Corporation
>   */
>  
> +#include "xe_guc_ads.h"
> +
>  #include <drm/drm_managed.h>
> +#include <xe_regs/xe_engine_regs.h>
>  
>  #include "xe_bo.h"
>  #include "xe_gt.h"
>  #include "xe_guc.h"
> -#include "xe_guc_ads.h"
>  #include "xe_guc_reg.h"
>  #include "xe_hw_engine.h"
>  #include "xe_lrc.h"
> @@ -16,7 +18,7 @@
>  #include "xe_mmio.h"
>  #include "xe_platform_types.h"
>  #include "gt/intel_gt_regs.h"
> -#include "gt/intel_engine_regs.h"
> +
>  
>  /* Slack of a few additional entries per engine */
>  #define ADS_REGSET_EXTRA_MAX	8
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
> index fd89dd90131c..85eda0cdc29c 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> @@ -6,6 +6,7 @@
>  #include "xe_hw_engine.h"
>  
>  #include <drm/drm_managed.h>
> +#include <xe_regs/xe_engine_regs.h>
>  
>  #include "xe_bo.h"
>  #include "xe_device.h"
> @@ -21,7 +22,6 @@
>  #include "xe_sched_job.h"
>  #include "xe_wa.h"
>  
> -#include "gt/intel_engine_regs.h"
>  #include "i915_reg.h"
>  #include "gt/intel_gt_regs.h"
>  
> diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
> index 347ff9b34494..0cd6e0b72101 100644
> --- a/drivers/gpu/drm/xe/xe_lrc.c
> +++ b/drivers/gpu/drm/xe/xe_lrc.c
> @@ -5,6 +5,8 @@
>  
>  #include "xe_lrc.h"
>  
> +#include <xe_regs/xe_engine_regs.h>
> +
>  #include "xe_bo.h"
>  #include "xe_device.h"
>  #include "xe_engine_types.h"
> @@ -17,7 +19,6 @@
>  #include "gt/intel_gpu_commands.h"
>  #include "gt/intel_gt_regs.h"
>  #include "gt/intel_lrc_reg.h"
> -#include "gt/intel_engine_regs.h"
>  
>  #define GEN8_CTX_VALID				(1 << 0)
>  #define GEN8_CTX_L3LLC_COHERENT			(1 << 5)
> diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
> index 8a953df2b468..ced757ba9ccb 100644
> --- a/drivers/gpu/drm/xe/xe_mmio.c
> +++ b/drivers/gpu/drm/xe/xe_mmio.c
> @@ -7,6 +7,7 @@
>  
>  #include <drm/drm_managed.h>
>  #include <drm/xe_drm.h>
> +#include <xe_regs/xe_engine_regs.h>
>  
>  #include "xe_device.h"
>  #include "xe_gt.h"
> @@ -15,7 +16,6 @@
>  #include "xe_module.h"
>  
>  #include "i915_reg.h"
> -#include "gt/intel_engine_regs.h"
>  #include "gt/intel_gt_regs.h"
>  
>  #define XEHP_MTCFG_ADDR		_MMIO(0x101800)
> diff --git a/drivers/gpu/drm/xe/xe_reg_sr.c b/drivers/gpu/drm/xe/xe_reg_sr.c
> index f7eceb84e647..5d53379341b8 100644
> --- a/drivers/gpu/drm/xe/xe_reg_sr.c
> +++ b/drivers/gpu/drm/xe/xe_reg_sr.c
> @@ -11,6 +11,7 @@
>  
>  #include <drm/drm_print.h>
>  #include <drm/drm_managed.h>
> +#include <xe_regs/xe_engine_regs.h>
>  
>  #include "xe_rtp_types.h"
>  #include "xe_device_types.h"
> @@ -20,7 +21,6 @@
>  #include "xe_macros.h"
>  #include "xe_mmio.h"
>  
> -#include "gt/intel_engine_regs.h"
>  #include "gt/intel_gt_regs.h"
>  
>  #define XE_REG_SR_GROW_STEP_DEFAULT	16
> diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> index a34617a642ec..42554870f3ba 100644
> --- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
> +++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> @@ -5,11 +5,12 @@
>  
>  #include "xe_reg_whitelist.h"
>  
> +#include <xe_regs/xe_engine_regs.h>
> +
>  #include "xe_platform_types.h"
>  #include "xe_gt_types.h"
>  #include "xe_rtp.h"
>  
> -#include "../i915/gt/intel_engine_regs.h"
>  #include "../i915/gt/intel_gt_regs.h"
>  
>  #undef _MMIO
> diff --git a/drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h b/drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h
> new file mode 100644
> index 000000000000..70796c8b117d
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h
> @@ -0,0 +1,81 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2023 Intel Corporation
> + */
> +
> +#ifndef _XE_ENGINE_REGS_H_
> +#define _XE_ENGINE_REGS_H_
> +
> +#include <asm/page.h>
> +
> +#include "i915_reg_defs.h"
> +
> +#define RING_TAIL(base)				_MMIO((base) + 0x30)
> +#define RING_HEAD(base)				_MMIO((base) + 0x34)
> +#define   HEAD_ADDR				0x001FFFFC
> +#define RING_START(base)			_MMIO((base) + 0x38)
> +#define RING_CTL(base)				_MMIO((base) + 0x3c)
> +#define   RING_CTL_SIZE(size)			((size) - PAGE_SIZE) /* in bytes -> pages */
> +#define   RING_CTL_SIZE(size)			((size) - PAGE_SIZE) /* in bytes -> pages */
> +#define RING_PSMI_CTL(base)			_MMIO((base) + 0x50)
> +#define   GEN8_RC_SEMA_IDLE_MSG_DISABLE			REG_BIT(12)
> +#define   GEN12_WAIT_FOR_EVENT_POWER_DOWN_DISABLE	REG_BIT(7)
> +#define RING_ACTHD_UDW(base)			_MMIO((base) + 0x5c)
> +#define RING_DMA_FADD_UDW(base)			_MMIO((base) + 0x60) /* gen8+ */
> +#define RING_IPEIR(base)			_MMIO((base) + 0x64)
> +#define RING_IPEHR(base)			_MMIO((base) + 0x68)
> +#define RING_ACTHD(base)			_MMIO((base) + 0x74)
> +#define RING_DMA_FADD(base)			_MMIO((base) + 0x78)
> +#define RING_HWS_PGA(base)			_MMIO((base) + 0x80)
> +#define IPEIR(base)				_MMIO((base) + 0x88)
> +#define IPEHR(base)				_MMIO((base) + 0x8c)
> +#define RING_HWSTAM(base)			_MMIO((base) + 0x98)
> +#define RING_MI_MODE(base)			_MMIO((base) + 0x9c)
> +#define RING_NOPID(base)			_MMIO((base) + 0x94)
> +#define RING_IMR(base)				_MMIO((base) + 0xa8)
> +#define   RING_MAX_NONPRIV_SLOTS  12
> +#define RING_EIR(base)				_MMIO((base) + 0xb0)
> +#define RING_EMR(base)				_MMIO((base) + 0xb4)
> +#define RING_ESR(base)				_MMIO((base) + 0xb8)
> +#define RING_BBADDR(base)			_MMIO((base) + 0x140)
> +#define RING_BBADDR_UDW(base)			_MMIO((base) + 0x168) /* gen8+ */
> +#define RING_EXECLIST_STATUS_LO(base)		_MMIO((base) + 0x234)
> +#define RING_EXECLIST_STATUS_HI(base)		_MMIO((base) + 0x234 + 4)
> +#define RING_CONTEXT_CONTROL(base)		_MMIO((base) + 0x244)
> +#define	  CTX_CTRL_INHIBIT_SYN_CTX_SWITCH	REG_BIT(3)
> +#define	  CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT	REG_BIT(0)
> +#define RING_MODE_GEN7(base)			_MMIO((base) + 0x29c)
> +#define   GEN11_GFX_DISABLE_LEGACY_MODE		(1 << 3)
> +#define RING_TIMESTAMP(base)			_MMIO((base) + 0x358)
> +#define RING_TIMESTAMP_UDW(base)		_MMIO((base) + 0x358 + 4)
> +#define   RING_VALID_MASK			0x00000001
> +#define   RING_VALID				0x00000001
> +#define   STOP_RING				REG_BIT(8)
> +#define   TAIL_ADDR				0x001FFFF8
> +#define RING_CTX_TIMESTAMP(base)		_MMIO((base) + 0x3a8) /* gen8+ */
> +#define RING_FORCE_TO_NONPRIV(base, i)		_MMIO(((base) + 0x4d0) + (i) * 4)
> +#define   RING_FORCE_TO_NONPRIV_DENY		REG_BIT(30)
> +#define   RING_FORCE_TO_NONPRIV_ADDRESS_MASK	REG_GENMASK(25, 2)
> +#define   RING_FORCE_TO_NONPRIV_ACCESS_RW	(0 << 28)    /* CFL+ & Gen11+ */
> +#define   RING_FORCE_TO_NONPRIV_ACCESS_RD	(1 << 28)
> +#define   RING_FORCE_TO_NONPRIV_ACCESS_WR	(2 << 28)
> +#define   RING_FORCE_TO_NONPRIV_ACCESS_INVALID	(3 << 28)
> +#define   RING_FORCE_TO_NONPRIV_ACCESS_MASK	(3 << 28)
> +#define   RING_FORCE_TO_NONPRIV_RANGE_1		(0 << 0)     /* CFL+ & Gen11+ */
> +#define   RING_FORCE_TO_NONPRIV_RANGE_4		(1 << 0)
> +#define   RING_FORCE_TO_NONPRIV_RANGE_16	(2 << 0)
> +#define   RING_FORCE_TO_NONPRIV_RANGE_64	(3 << 0)
> +#define   RING_FORCE_TO_NONPRIV_RANGE_MASK	(3 << 0)
> +#define   RING_FORCE_TO_NONPRIV_MASK_VALID	(RING_FORCE_TO_NONPRIV_RANGE_MASK | \
> +						 RING_FORCE_TO_NONPRIV_ACCESS_MASK | \
> +						 RING_FORCE_TO_NONPRIV_DENY)
> +#define   RING_MAX_NONPRIV_SLOTS  12
> +#define RING_EXECLIST_SQ_CONTENTS(base)		_MMIO((base) + 0x510)
> +#define RING_EXECLIST_CONTROL(base)		_MMIO((base) + 0x550)
> +#define	  EL_CTRL_LOAD				REG_BIT(0)
> +#define VDBOX_CGCTL3F10(base)			_MMIO((base) + 0x3f10)
> +#define   IECPUNIT_CLKGATE_DIS			REG_BIT(22)
> +#define VDBOX_CGCTL3F18(base)			_MMIO((base) + 0x3f18)
> +#define   ALNUNIT_CLKGATE_DIS			REG_BIT(13)
> +
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index 9d2e4555091c..915b670d31fc 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -6,6 +6,7 @@
>  #include "xe_wa.h"
>  
>  #include <linux/compiler_types.h>
> +#include <xe_regs/xe_engine_regs.h>
>  
>  #include "xe_device_types.h"
>  #include "xe_force_wake.h"
> @@ -16,7 +17,6 @@
>  #include "xe_rtp.h"
>  #include "xe_step.h"
>  
> -#include "gt/intel_engine_regs.h"
>  #include "gt/intel_gt_regs.h"
>  #include "i915_reg.h"

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h
  2023-02-16 13:06   ` Jani Nikula
@ 2023-02-16 13:51     ` Lucas De Marchi
  0 siblings, 0 replies; 7+ messages in thread
From: Lucas De Marchi @ 2023-02-16 13:51 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-xe

On Thu, Feb 16, 2023 at 03:06:25PM +0200, Jani Nikula wrote:
>On Tue, 14 Feb 2023, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
>> Create xe_regs/xe_engine_regs.h file with all the registers and bit
>> definitions used by the xe driver. Eventually the registers may be
>> defined in a different way and since xe doesn't supported below gen12,
>> the number of registers touched is much smaller, so create a new header.
>>
>> The definitions themselves are direct copy from the
>> gt/intel_engine_regs.h file, just sorting the registers by address.
>> Cleaning those up and adhering to a common coding style is left for
>> later.
>>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>> ---
>>  drivers/gpu/drm/xe/xe_execlist.c            |  5 +-
>>  drivers/gpu/drm/xe/xe_guc_ads.c             |  6 +-
>>  drivers/gpu/drm/xe/xe_hw_engine.c           |  2 +-
>>  drivers/gpu/drm/xe/xe_lrc.c                 |  3 +-
>>  drivers/gpu/drm/xe/xe_mmio.c                |  2 +-
>>  drivers/gpu/drm/xe/xe_reg_sr.c              |  2 +-
>>  drivers/gpu/drm/xe/xe_reg_whitelist.c       |  3 +-
>>  drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h | 81 +++++++++++++++++++++
>>  drivers/gpu/drm/xe/xe_wa.c                  |  2 +-
>>  9 files changed, 96 insertions(+), 10 deletions(-)
>>  create mode 100644 drivers/gpu/drm/xe/xe_regs/xe_engine_regs.h
>>
>> diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
>> index d555d77cbf49..254e1a6688c2 100644
>> --- a/drivers/gpu/drm/xe/xe_execlist.c
>> +++ b/drivers/gpu/drm/xe/xe_execlist.c
>> @@ -3,9 +3,11 @@
>>   * Copyright © 2021 Intel Corporation
>>   */
>>
>> +#include "xe_execlist.h"
>> +
>>  #include <drm/drm_managed.h>
>>
>> -#include "xe_execlist.h"
>> +#include <xe_regs/xe_engine_regs.h>
>
>Why the system include <> instead of ""?

At the time I thought "if this is included from another dir, then it's
not relative".

But... We are using "  for all xe includes: I already changed this to
`#include "regs/xe_engine_regs.h"` in the next version (not sent yet
though)

Lucas De Marchi

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-02-16 13:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-14  8:33 [Intel-xe] [PATCH 0/2] Start register cleanup Lucas De Marchi
2023-02-14  8:33 ` [Intel-xe] [PATCH 1/2] drm/xe/guc: Remove i915_regs.h include Lucas De Marchi
2023-02-15 10:53   ` Matthew Auld
2023-02-14  8:33 ` [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h Lucas De Marchi
2023-02-15  2:59   ` Lucas De Marchi
2023-02-16 13:06   ` Jani Nikula
2023-02-16 13:51     ` Lucas De Marchi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.