[Intel-xe] [PATCH 08/12] drm/xe: Split xe_info_init

Matthew Brost matthew.brost at intel.com
Wed Nov 8 10:21:11 UTC 2023


On Wed, Nov 08, 2023 at 01:33:40AM +0100, Michał Winiarski wrote:
> Parts of xe_info_init are only dealing with processing driver_data.
> Extract it into xe_info_init_early to be able to use it earlier duing
> probe.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski at intel.com>

Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_pci.c | 32 ++++++++++++++++++++------------
>  1 file changed, 20 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index f6f7ac390164c..2aa74eab08232 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -531,6 +531,24 @@ static void handle_gmdid(struct xe_device *xe,
>  	}
>  }
>  
> +static void xe_info_init_early(struct xe_device *xe,
> +			       const struct xe_device_desc *desc,
> +			       const struct xe_subplatform_desc *subplatform_desc)
> +{
> +	xe->info.platform = desc->platform;
> +	xe->info.subplatform = subplatform_desc ?
> +		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
> +
> +	xe->info.is_dgfx = desc->is_dgfx;
> +	xe->info.has_heci_gscfi = desc->has_heci_gscfi;
> +	xe->info.has_llc = desc->has_llc;
> +	xe->info.bypass_mtcfg = desc->bypass_mtcfg;
> +	xe->info.supports_mmio_ext = desc->supports_mmio_ext;
> +
> +	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
> +				  enable_display &&
> +				  desc->has_display;
> +}
>  
>  static int xe_info_init(struct xe_device *xe,
>  			const struct xe_device_desc *desc,
> @@ -543,10 +561,6 @@ static int xe_info_init(struct xe_device *xe,
>  	struct xe_gt *gt;
>  	u8 id;
>  
> -	xe->info.platform = desc->platform;
> -	xe->info.subplatform = subplatform_desc ?
> -		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
> -
>  	/*
>  	 * If this platform supports GMD_ID, we'll detect the proper IP
>  	 * descriptor to use from hardware registers. desc->graphics will only
> @@ -572,13 +586,8 @@ static int xe_info_init(struct xe_device *xe,
>  	if (!graphics_desc)
>  		return -ENODEV;
>  
> -	xe->info.is_dgfx = desc->is_dgfx;
> -	xe->info.has_heci_gscfi = desc->has_heci_gscfi;
>  	xe->info.graphics_name = graphics_desc->name;
>  	xe->info.media_name = media_desc ? media_desc->name : "none";
> -	xe->info.has_llc = desc->has_llc;
> -	xe->info.bypass_mtcfg = desc->bypass_mtcfg;
> -	xe->info.supports_mmio_ext = desc->supports_mmio_ext;
>  	xe->info.tile_mmio_ext_size = graphics_desc->tile_mmio_ext_size;
>  
>  	xe->info.dma_mask_size = graphics_desc->dma_mask_size;
> @@ -590,9 +599,6 @@ static int xe_info_init(struct xe_device *xe,
>  	xe->info.has_flat_ccs = graphics_desc->has_flat_ccs;
>  	xe->info.has_range_tlb_invalidation = graphics_desc->has_range_tlb_invalidation;
>  
> -	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
> -				  enable_display &&
> -				  desc->has_display;
>  	/*
>  	 * All platforms have at least one primary GT.  Any platform with media
>  	 * version 13 or higher has an additional dedicated media GT.  And
> @@ -711,6 +717,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	pci_set_master(pdev);
>  	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
>  
> +	xe_info_init_early(xe, desc, subplatform_desc);
> +
>  	err = xe_info_init(xe, desc, subplatform_desc);
>  	if (err)
>  		return err;
> -- 
> 2.42.0
> 


More information about the Intel-xe mailing list