From: Jani Nikula <jani.nikula@linux.intel.com>
To: Lucas De Marchi <lucas.demarchi@intel.com>,
intel-xe@lists.freedesktop.org
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Subject: Re: [Intel-xe] [PATCH 2/2] drm/xe: Remove dependency on intel_engine_regs.h
Date: Thu, 16 Feb 2023 15:06:25 +0200 [thread overview]
Message-ID: <87fsb5220e.fsf@intel.com> (raw)
In-Reply-To: <20230214083320.2199178-3-lucas.demarchi@intel.com>
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
next prev parent reply other threads:[~2023-02-16 13:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2023-02-16 13:51 ` Lucas De Marchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fsb5220e.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=lucas.demarchi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.