From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
To: intel-gfx@lists.freedesktop.org,
intel-gvt-dev@lists.freedesktop.org,
intel-xe@lists.freedesktop.org
Cc: jani.nikula@linux.intel.com,
Ankit Nautiyal <ankit.k.nautiyal@intel.com>,
Jani Nikula <jani.nikula@intel.com>
Subject: [PATCH 1/7] drm/i915/display: Abstract pipe/trans/cursor offset calculation
Date: Thu, 18 Dec 2025 13:52:54 +0530 [thread overview]
Message-ID: <20251218082302.2327243-2-ankit.k.nautiyal@intel.com> (raw)
In-Reply-To: <20251218082302.2327243-1-ankit.k.nautiyal@intel.com>
Introduce INTEL_DISPLAY_DEVICE_*_OFFSET() macros to compute absolute
MMIO offsets for pipe, transcoder, and cursor registers.
Update _MMIO_PIPE2/_MMIO_TRANS2/_MMIO_CURSOR2 to use these macros
for cleaner abstraction and to prepare for external API usage (e.g. GVT).
Also move DISPLAY_MMIO_BASE() to intel_display_device.h so it can be
abstracted in GVT, allowing register macros to resolve via
exported helpers rather than peeking into struct intel_display.
v2: Wrap the macro argument usages in parenthesis. (Jani)
Suggested-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
.../gpu/drm/i915/display/intel_display_device.h | 17 +++++++++++++++++
.../drm/i915/display/intel_display_reg_defs.h | 15 ++++-----------
2 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h
index 50b2e9ae2c18..13b6616bc496 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.h
+++ b/drivers/gpu/drm/i915/display/intel_display_device.h
@@ -260,6 +260,23 @@ struct intel_display_platforms {
((id) == ARLS_HOST_BRIDGE_PCI_ID3) || \
((id) == ARLS_HOST_BRIDGE_PCI_ID4))
+#define INTEL_DISPLAY_DEVICE_PIPE_OFFSET(display, pipe) \
+ (DISPLAY_INFO((display))->pipe_offsets[(pipe)] - \
+ DISPLAY_INFO((display))->pipe_offsets[PIPE_A] + \
+ DISPLAY_MMIO_BASE((display)))
+
+#define INTEL_DISPLAY_DEVICE_TRANS_OFFSET(display, trans) \
+ (DISPLAY_INFO((display))->trans_offsets[(trans)] - \
+ DISPLAY_INFO((display))->trans_offsets[TRANSCODER_A] + \
+ DISPLAY_MMIO_BASE((display)))
+
+#define INTEL_DISPLAY_DEVICE_CURSOR_OFFSET(display, pipe) \
+ (DISPLAY_INFO((display))->cursor_offsets[(pipe)] - \
+ DISPLAY_INFO((display))->cursor_offsets[PIPE_A] + \
+ DISPLAY_MMIO_BASE((display)))
+
+#define DISPLAY_MMIO_BASE(display) (DISPLAY_INFO((display))->mmio_offset)
+
struct intel_display_runtime_info {
struct intel_display_ip_ver {
u16 ver;
diff --git a/drivers/gpu/drm/i915/display/intel_display_reg_defs.h b/drivers/gpu/drm/i915/display/intel_display_reg_defs.h
index b83ad06f2ea7..175334b41bba 100644
--- a/drivers/gpu/drm/i915/display/intel_display_reg_defs.h
+++ b/drivers/gpu/drm/i915/display/intel_display_reg_defs.h
@@ -8,8 +8,6 @@
#include "i915_reg_defs.h"
-#define DISPLAY_MMIO_BASE(dev_priv) (DISPLAY_INFO(dev_priv)->mmio_offset)
-
#define VLV_DISPLAY_BASE 0x180000
/*
@@ -36,14 +34,9 @@
* Device info offset array based helpers for groups of registers with unevenly
* spaced base offsets.
*/
-#define _MMIO_PIPE2(display, pipe, reg) _MMIO(DISPLAY_INFO(display)->pipe_offsets[(pipe)] - \
- DISPLAY_INFO(display)->pipe_offsets[PIPE_A] + \
- DISPLAY_MMIO_BASE(display) + (reg))
-#define _MMIO_TRANS2(display, tran, reg) _MMIO(DISPLAY_INFO(display)->trans_offsets[(tran)] - \
- DISPLAY_INFO(display)->trans_offsets[TRANSCODER_A] + \
- DISPLAY_MMIO_BASE(display) + (reg))
-#define _MMIO_CURSOR2(display, pipe, reg) _MMIO(DISPLAY_INFO(display)->cursor_offsets[(pipe)] - \
- DISPLAY_INFO(display)->cursor_offsets[PIPE_A] + \
- DISPLAY_MMIO_BASE(display) + (reg))
+
+#define _MMIO_PIPE2(display, pipe, reg) _MMIO(INTEL_DISPLAY_DEVICE_PIPE_OFFSET((display), (pipe)) + (reg))
+#define _MMIO_TRANS2(display, trans, reg) _MMIO(INTEL_DISPLAY_DEVICE_TRANS_OFFSET((display), (trans)) + (reg))
+#define _MMIO_CURSOR2(display, pipe, reg) _MMIO(INTEL_DISPLAY_DEVICE_CURSOR_OFFSET((display), (pipe)) + (reg))
#endif /* __INTEL_DISPLAY_REG_DEFS_H__ */
--
2.45.2
next prev parent reply other threads:[~2025-12-18 8:35 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-18 8:22 [PATCH 0/7] Prepare GVT for display modularization Ankit Nautiyal
2025-12-18 8:22 ` Ankit Nautiyal [this message]
2025-12-18 8:22 ` [PATCH 2/7] drm/i915/display: Add APIs to be used by gvt to get the register offsets Ankit Nautiyal
2025-12-18 10:32 ` Jani Nikula
2025-12-18 12:09 ` Nautiyal, Ankit K
2025-12-18 8:22 ` [PATCH 3/7] drm/i915/gvt: Add header to use display offset functions in macros Ankit Nautiyal
2025-12-18 10:26 ` Jani Nikula
2025-12-18 8:22 ` [PATCH 4/7] drm/i915/gvt/display_helpers: Cast argument to enum pipe for pipe-offset macro Ankit Nautiyal
2025-12-18 10:25 ` Jani Nikula
2025-12-18 12:06 ` Nautiyal, Ankit K
2025-12-18 8:22 ` [PATCH 5/7] drm/i915/gvt: Change for_each_pipe to use pipe_valid API Ankit Nautiyal
2025-12-18 10:36 ` Jani Nikula
2025-12-18 11:57 ` Nautiyal, Ankit K
2025-12-18 8:22 ` [PATCH 6/7] drm/i915/gvt: Use the appropriate header for the DPLL macro Ankit Nautiyal
2025-12-18 10:36 ` Jani Nikula
2025-12-18 8:23 ` [PATCH 7/7] drm/i915/gvt/display_helper: Get rid of #ifdef/#undefs Ankit Nautiyal
2025-12-18 10:37 ` Jani Nikula
2025-12-18 8:43 ` ✗ CI.checkpatch: warning for Prepare GVT for display modularization (rev2) Patchwork
2025-12-18 8:44 ` ✓ CI.KUnit: success " Patchwork
2025-12-18 9:00 ` ✗ CI.checksparse: warning " Patchwork
2025-12-18 9:38 ` ✓ Xe.CI.BAT: success " Patchwork
2025-12-18 10:36 ` ✓ i915.CI.BAT: " Patchwork
2025-12-18 10:57 ` [PATCH 0/7] Prepare GVT for display modularization Jani Nikula
2025-12-18 12:05 ` Nautiyal, Ankit K
2025-12-18 13:51 ` ✓ i915.CI.Full: success for Prepare GVT for display modularization (rev2) Patchwork
2025-12-19 4:17 ` ✗ Xe.CI.Full: failure " Patchwork
2025-12-29 12:47 ` [PATCH 0/7] Prepare GVT for display modularization Nautiyal, Ankit K
2025-12-31 10:35 ` Jani Nikula
2026-01-02 6:15 ` Nautiyal, Ankit K
2026-01-02 11:24 ` Jani Nikula
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=20251218082302.2327243-2-ankit.k.nautiyal@intel.com \
--to=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-gvt-dev@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=jani.nikula@linux.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.