GVT currently relies on display internals through register macros and helpers
like for_each_pipe(). This tight coupling makes modularization difficult
because GVT should not access struct intel_display directly.
Add an API for GVT code to expose DISPLAY_RUNTIME_INFO()->pipe_mask.
This series introduces changes to make GVT independent of display internals
while keeping existing macros usable:
- Abstract offset calculations in display using
INTEL_DISPLAY_DEVICE_*_OFFSET() macros.
- Add APIs for GVT to compute offsets and pipe mask via functions.
- Update GVT to use these APIs by overriding helper macros and
for_each_pipe().
Ankit Nautiyal (5):
drm/i915/display: Abstract pipe/trans/cursor offset calculation
drm/i915/display: Add APIs to be used by gvt to get the register
offsets
drm/i915/gvt: Add header to use display offset functions in macros
drm/i915/gvt: Change for_each_pipe to use pipe_mask API
drm/i915/gvt/display_helpers: Cast argument to enum pipe for
pipe-offset macro
drivers/gpu/drm/i915/Makefile | 1 +
.../drm/i915/display/intel_display_device.h | 17 +++++++
.../drm/i915/display/intel_display_limits.c | 0
.../drm/i915/display/intel_display_reg_defs.h | 15 ++----
drivers/gpu/drm/i915/display/intel_gvt_api.c | 40 ++++++++++++++++
drivers/gpu/drm/i915/display/intel_gvt_api.h | 21 +++++++++
drivers/gpu/drm/i915/gvt/cmd_parser.c | 2 +
drivers/gpu/drm/i915/gvt/display.c | 2 +
drivers/gpu/drm/i915/gvt/display_helpers.h | 46 +++++++++++++++++++
drivers/gpu/drm/i915/gvt/fb_decoder.c | 2 +
drivers/gpu/drm/i915/gvt/handlers.c | 2 +
11 files changed, 137 insertions(+), 11 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_display_limits.c
create mode 100644 drivers/gpu/drm/i915/display/intel_gvt_api.c
create mode 100644 drivers/gpu/drm/i915/display/intel_gvt_api.h
create mode 100644 drivers/gpu/drm/i915/gvt/display_helpers.h
--
2.45.2