[PATCH v9 0/3] Refactor GVT-g MMIO tracking table and handlers

From: Zhi Wang
Date: Thu Apr 07 2022 - 03:19:56 EST


To support the new mdev interfaces and the re-factor patches from
Christoph, which moves the GVT-g code into a dedicated module, the GVT-g
initialization path has to be separated into two phases:

a) Early initialization.

The early initialization of GVT requires to be done when loading i915.
Mostly it's because the initial clean HW state needs to be saved before
i915 touches the HW.

b) Late initalization.

This phases of initalization will setup the rest components of GVT-g,
which can be done later when the dedicated module is being loaded.

To initialize the GVT-g MMIO tracking table in the early initalization
stage, which will be done in i915, the GVT-g MMIO tracking table needs
to be sperated accordingly and moved into i915.

v9:
- Fix a problem might casue kernel panic.

v8:
- Use SPDX header in the intel_gvt_mmio_table.c
- Reference the gvt.h with path. (Jani)
- Add a missing fix on mmio emulation path during my debug.
- Fix a building problem on refreshed gvt-staging branch. (Christoph)


v7:
- Keep the marcos of device generation in GVT-g. (Christoph, Jani)

v6:
- Move the mmio_table.c into i915. (Christoph)
- Keep init_device_info and related structures in GVT-g. (Christoph)
- Refine the callbacks of the iterator. (Christoph)
- Move the flags of MMIO register defination to GVT-g. (Chrsitoph)
- Move the mmio block handling to GVT-g.

v5:
- Re-design the mmio table framework. (Christoph)

v4:
- Fix the errors of patch checking scripts.

v3:
- Fix the errors when CONFIG_DRM_I915_WERROR is turned on. (Jani)

v2:
- Implement a mmio table instead of generating it by marco in i915. (Jani)

Zhi Wang (3):
i915/gvt: Separate the MMIO tracking table from GVT-g
i915/gvt: Save the initial HW state snapshot in i915
i915/gvt: Use the initial HW state snapshot saved in i915

drivers/gpu/drm/i915/Makefile | 2 +-
drivers/gpu/drm/i915/gvt/firmware.c | 25 +-
drivers/gpu/drm/i915/gvt/gvt.h | 3 +-
drivers/gpu/drm/i915/gvt/handlers.c | 1033 ++-------------
drivers/gpu/drm/i915/gvt/mmio.h | 1 -
drivers/gpu/drm/i915/gvt/reg.h | 9 +-
drivers/gpu/drm/i915/i915_drv.h | 2 +
drivers/gpu/drm/i915/intel_gvt.c | 92 +-
drivers/gpu/drm/i915/intel_gvt.h | 21 +
drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 1290 +++++++++++++++++++
10 files changed, 1561 insertions(+), 917 deletions(-)
create mode 100644 drivers/gpu/drm/i915/intel_gvt_mmio_table.c

--
2.25.1