[PATCH 02/43] drm/xe: Create dedicated xe_mmio structure

Michal Wajdeczko michal.wajdeczko at intel.com
Fri Sep 6 13:49:52 UTC 2024



On 04.09.2024 02:21, Matt Roper wrote:
> Pull the 'mmio' substructure from xe_device 

hmm, actually it seems that you moved out the 'mmio' from the xe_tile,
not the xe_device, where is another identical one struct, that maybe
also deserves some unification

> out into a dedicated type.
> Future patches will expand this structure and then eventually move MMIO
> read/write operations over to using this type.
> 
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_device_types.h | 24 +++++++++++++++++-------
>  1 file changed, 17 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index ec7eb7811126..a02e5dfcc6a7 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -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;
> +
> +	/** @map_size: Size of the map. */

@size

> +	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.


More information about the Intel-xe mailing list