]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/xe/bo: Add xe_bo_has_valid_ccs_bb helper
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Mon, 8 Sep 2025 12:30:22 +0000 (14:30 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 9 Sep 2025 09:27:49 +0000 (11:27 +0200)
This will allow as to drop ugly IS_VF_CCS_BB_VALID macro.

Signed-off-by: Michal 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: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Link: https://lore.kernel.org/r/20250908123025.747-6-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_bo.h
drivers/gpu/drm/xe/xe_sriov_vf_ccs.c
drivers/gpu/drm/xe/xe_sriov_vf_ccs_types.h

index cfb1ec266a6da1c1dd92e03fa62ba58dd2aec6bb..c7ee9c7605e51814720bee0f573ce31e80c143e7 100644 (file)
@@ -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)) ||
index 30aea958a3373772bf52cc56834e335d2a462cdc..eb8436e44ca4743cacc93b45d5ec50e86dd89f74 100644 (file)
@@ -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) {
index 79092e386c4a5bc784d2ab23a73b48e3047d90c4..4d3c10907135dd744ef48997b43db0c5e18eeaa0 100644 (file)
@@ -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;