Commit e6997008 authored by Michal Wajdeczko's avatar Michal Wajdeczko
Browse files

drm/xe/bo: Add xe_bo_has_valid_ccs_bb helper



This will allow as to drop ugly IS_VF_CCS_BB_VALID macro.

Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarSatyanarayana K V P <satyanarayana.k.v.p@intel.com>
Link: https://lore.kernel.org/r/20250908123025.747-6-michal.wajdeczko@intel.com
parent b179dfd0
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -315,6 +315,21 @@ static inline size_t xe_bo_ccs_pages_start(struct xe_bo *bo)
	return PAGE_ALIGN(xe_bo_size(bo));
}

/**
 * xe_bo_has_valid_ccs_bb - Check if CCS's BBs were setup for the BO.
 * @bo: the &xe_bo to check
 *
 * The CCS's BBs should only be setup by the driver VF, but it is safe
 * to call this function also by non-VF driver.
 *
 * Return: true iff the CCS's BBs are setup, false otherwise.
 */
static inline bool xe_bo_has_valid_ccs_bb(struct xe_bo *bo)
{
	return bo->bb_ccs[XE_SRIOV_VF_CCS_READ_CTX] &&
	       bo->bb_ccs[XE_SRIOV_VF_CCS_WRITE_CTX];
}

static inline bool xe_bo_has_pages(struct xe_bo *bo)
{
	if ((bo->ttm.ttm && ttm_tt_is_populated(bo->ttm.ttm)) ||
+1 −1
Original line number Diff line number Diff line
@@ -363,7 +363,7 @@ int xe_sriov_vf_ccs_detach_bo(struct xe_bo *bo)

	xe_assert(xe, IS_VF_CCS_READY(xe));

	if (!IS_VF_CCS_BB_VALID(xe, bo))
	if (!xe_bo_has_valid_ccs_bb(bo))
		return 0;

	for_each_ccs_rw_ctx(ctx_id) {
+0 −8
Original line number Diff line number Diff line
@@ -15,14 +15,6 @@ enum xe_sriov_vf_ccs_rw_ctxs {
	XE_SRIOV_VF_CCS_CTX_COUNT
};

#define IS_VF_CCS_BB_VALID(xe, bo) ({ \
		struct xe_device *___xe = (xe); \
		struct xe_bo *___bo = (bo); \
		IS_SRIOV_VF(___xe) && \
		___bo->bb_ccs[XE_SRIOV_VF_CCS_READ_CTX] && \
		___bo->bb_ccs[XE_SRIOV_VF_CCS_WRITE_CTX]; \
		})

struct xe_migrate;
struct xe_sa_manager;