mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-08 14:02:37 -04:00
drm/xe: Move SR-IOV probe to xe_device_probe_early()
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@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240327182740.407-3-michal.wajdeczko@intel.com
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -738,8 +738,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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user