Commit 10f817c2 authored by Michal Wajdeczko's avatar Michal Wajdeczko
Browse files

drm/xe/pf: Define admin_only as real flag



Instead of doing guesses each time during the runtime, set flag
admin_only once during PF's initialization.

Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: default avatarPiotr Piórkowski <piotr.piorkowski@intel.com>
Acked-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/20260127210501.794-1-michal.wajdeczko@intel.com
parent 0dfc7306
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
static void pf_set_admin_mode(struct xe_device *xe, bool enable)
{
	/* should match logic of xe_sriov_pf_admin_only() */
	xe->info.probe_display = !enable;
	xe->sriov.pf.admin_only = enable;
	KUNIT_EXPECT_EQ(kunit_get_current_test(), enable, xe_sriov_pf_admin_only(xe));
}

+6 −0
Original line number Diff line number Diff line
@@ -20,6 +20,11 @@
#include "xe_sriov_pf_sysfs.h"
#include "xe_sriov_printk.h"

static bool wanted_admin_only(struct xe_device *xe)
{
	return !xe->info.probe_display;
}

static unsigned int wanted_max_vfs(struct xe_device *xe)
{
	return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
@@ -74,6 +79,7 @@ bool xe_sriov_pf_readiness(struct xe_device *xe)

	pf_reduce_totalvfs(xe, newlimit);

	xe->sriov.pf.admin_only = wanted_admin_only(xe);
	xe->sriov.pf.device_total_vfs = totalvfs;
	xe->sriov.pf.driver_max_vfs = newlimit;

+2 −1
Original line number Diff line number Diff line
@@ -56,7 +56,8 @@ static inline unsigned int xe_sriov_pf_num_vfs(const struct xe_device *xe)
 */
static inline bool xe_sriov_pf_admin_only(const struct xe_device *xe)
{
	return !xe->info.probe_display;
	xe_assert(xe, IS_SRIOV_PF(xe));
	return xe->sriov.pf.admin_only;
}

static inline struct mutex *xe_sriov_pf_master_mutex(struct xe_device *xe)
+3 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@ struct xe_sriov_metadata {
 * @XE_SRIOV_MODE_PF mode.
 */
struct xe_device_pf {
	/** @admin_only: PF functionality focused on VFs management only. */
	bool admin_only;

	/** @device_total_vfs: Maximum number of VFs supported by the device. */
	u16 device_total_vfs;