drm/xe: Create dedicated xe_mmio structure
authorMatt Roper <matthew.d.roper@intel.com>
Tue, 10 Sep 2024 23:47:22 +0000 (16:47 -0700)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 11 Sep 2024 22:17:30 +0000 (15:17 -0700)
Pull the 'mmio' substructure from xe_tile out into a dedicated type.
Future patches will expand this structure and then eventually move MMIO
read/write operations over to using this type.

v2:
 - Fix kerneldoc of 'size' field.  The rename/refocusing of this field
   got moved to the next patch of the series.  (Lucas)
 - Correct commit message; it's the tile, not the device, mmio that's
   been pulled out to a separate type.  (Michal)

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240910234719.3335472-47-matthew.d.roper@intel.com
drivers/gpu/drm/xe/xe_device_types.h

index ec7eb781112649b87dcc4541741c34faf8c5d2b5..5d5b7a9199d8ed32ab9f2c0b9f3fff4375f8989b 100644 (file)
@@ -107,6 +107,22 @@ struct xe_mem_region {
        void __iomem *mapping;
 };
 
+/**
+ * struct xe_mmio - register mmio structure
+ *
+ * Represents an MMIO region that the CPU may use to access registers.  A
+ * region may share its IO map with other regions (e.g., all GTs within a
+ * tile share the same map with their parent tile, but represent different
+ * subregions of the overall IO space).
+ */
+struct xe_mmio {
+       /** @regs: Map used to access registers. */
+       void __iomem *regs;
+
+       /** @size: Size of the map. */
+       size_t size;
+};
+
 /**
  * struct xe_tile - hardware tile structure
  *
@@ -148,13 +164,7 @@ struct xe_tile {
         * * 4MB-8MB: reserved
         * * 8MB-16MB: global GTT
         */
-       struct {
-               /** @mmio.size: size of tile's MMIO space */
-               size_t size;
-
-               /** @mmio.regs: pointer to tile's MMIO space (starting with registers) */
-               void __iomem *regs;
-       } mmio;
+       struct xe_mmio mmio;
 
        /**
         * @mmio_ext: MMIO-extension info for a tile.