On Thu, 18 Dec 2025, Ankit Nautiyal <[email protected]> wrote: > 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().
Oh, this doesn't handle intel_gvt_mmio_table.c, which is part of i915. That can be a follow-up, I guess, but still needs to be addressed. BR, Jani. > > Rev2: > - Remove conflicting headers and get rid of #ifdefs/#undefs in last > patch. > - Wrap macro arguments in paranthesis. > - Rename for_each_pipe to gvt_for_each_pipe. > > PS: I have not yet addressed the question about whether we need to start > using _MMIO_TRANS2() instead of_MMIO_PIPE2() in TRANSCONF() macro. > That likely needs a separate patch and discussion. > For now, I have kept the patch#4 to deal with the > -Werror=enum-conversion: > - drm/i915/gvt/display_helpers: Cast argument to enum pipe for > pipe-offset macro > > Ankit Nautiyal (7): > 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/display_helpers: Cast argument to enum pipe for > pipe-offset macro > drm/i915/gvt: Change for_each_pipe to use pipe_valid API > drm/i915/gvt: Use the appropriate header for the DPLL macro > drm/i915/gvt/display_helper: Get rid of #ifdef/#undefs > > 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 | 45 +++++++++++++++++++ > 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 | 9 ++-- > drivers/gpu/drm/i915/gvt/display_helpers.h | 27 +++++++++++ > drivers/gpu/drm/i915/gvt/fb_decoder.c | 2 +- > drivers/gpu/drm/i915/gvt/handlers.c | 2 +- > 11 files changed, 123 insertions(+), 18 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 -- Jani Nikula, Intel
