[PATCH 2/3] drm/xe: Move SR-IOV probe to xe_device_probe_early()

Matt Roper matthew.d.roper at intel.com
Wed Mar 27 22:57:13 UTC 2024


On Wed, Mar 27, 2024 at 07:27:39PM +0100, Michal Wajdeczko wrote:
> SR-IOV mode detection requires access to the MMIO register and
> this can be done now in xe_device_probe_early().
> 
> We can also drop explicit has_sriov parameter as this flag is now
> already available from xe->info.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_device.c | 2 ++
>  drivers/gpu/drm/xe/xe_pci.c    | 2 --
>  drivers/gpu/drm/xe/xe_sriov.c  | 4 ++--
>  drivers/gpu/drm/xe/xe_sriov.h  | 2 +-
>  4 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 286ebccc3fc8..01bd5ccf05ca 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -424,6 +424,8 @@ int xe_device_probe_early(struct xe_device *xe)
>  	if (err)
>  		return err;
>  
> +	xe_sriov_probe_early(xe);
> +
>  	err = xe_mmio_verify_vram(xe);
>  	if (err)
>  		return err;
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 3c94154051a8..c47ab4b67467 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -740,8 +740,6 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	if (err)
>  		return err;
>  
> -	xe_sriov_probe_early(xe, desc->has_sriov);
> -
>  	err = xe_device_probe_early(xe);
>  	if (err)
>  		return err;
> diff --git a/drivers/gpu/drm/xe/xe_sriov.c b/drivers/gpu/drm/xe/xe_sriov.c
> index f295d91886b1..2bcef998c8a9 100644
> --- a/drivers/gpu/drm/xe/xe_sriov.c
> +++ b/drivers/gpu/drm/xe/xe_sriov.c
> @@ -31,7 +31,6 @@ const char *xe_sriov_mode_to_string(enum xe_sriov_mode mode)
>  /**
>   * xe_sriov_probe_early - Probe a SR-IOV mode.
>   * @xe: the &xe_device to probe mode on
> - * @has_sriov: flag indicating hardware support for SR-IOV
>   *
>   * This function should be called only once and as soon as possible during
>   * driver probe to detect whether we are running a SR-IOV Physical Function
> @@ -40,9 +39,10 @@ const char *xe_sriov_mode_to_string(enum xe_sriov_mode mode)
>   * SR-IOV PF mode detection is based on PCI @dev_is_pf() function.
>   * SR-IOV VF mode detection is based on dedicated MMIO register read.
>   */
> -void xe_sriov_probe_early(struct xe_device *xe, bool has_sriov)
> +void xe_sriov_probe_early(struct xe_device *xe)
>  {
>  	enum xe_sriov_mode mode = XE_SRIOV_MODE_NONE;
> +	bool has_sriov = xe->info.has_sriov;
>  
>  	/* TODO: replace with proper mode detection */
>  	xe_assert(xe, !has_sriov);
> diff --git a/drivers/gpu/drm/xe/xe_sriov.h b/drivers/gpu/drm/xe/xe_sriov.h
> index 1545552162c9..9e3f58874e98 100644
> --- a/drivers/gpu/drm/xe/xe_sriov.h
> +++ b/drivers/gpu/drm/xe/xe_sriov.h
> @@ -12,7 +12,7 @@
>  
>  const char *xe_sriov_mode_to_string(enum xe_sriov_mode mode);
>  
> -void xe_sriov_probe_early(struct xe_device *xe, bool has_sriov);
> +void xe_sriov_probe_early(struct xe_device *xe);
>  int xe_sriov_init(struct xe_device *xe);
>  
>  static inline enum xe_sriov_mode xe_device_sriov_mode(struct xe_device *xe)
> -- 
> 2.43.0
> 
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list