Lines Matching refs:wopcm
72 static inline struct xe_gt *wopcm_to_gt(struct xe_wopcm *wopcm) in wopcm_to_gt() argument
74 return container_of(wopcm, struct xe_gt, uc.wopcm); in wopcm_to_gt()
77 static inline struct xe_device *wopcm_to_xe(struct xe_wopcm *wopcm) in wopcm_to_xe() argument
79 return gt_to_xe(wopcm_to_gt(wopcm)); in wopcm_to_xe()
139 struct xe_wopcm *wopcm) in __wopcm_init_regs() argument
141 u32 base = wopcm->guc.base; in __wopcm_init_regs()
142 u32 size = wopcm->guc.size; in __wopcm_init_regs()
197 int xe_wopcm_init(struct xe_wopcm *wopcm) in xe_wopcm_init() argument
199 struct xe_device *xe = wopcm_to_xe(wopcm); in xe_wopcm_init()
200 struct xe_gt *gt = wopcm_to_gt(wopcm); in xe_wopcm_init()
212 wopcm->size = xe_wopcm_size(xe); in xe_wopcm_init()
213 drm_dbg(&xe->drm, "WOPCM: %uK\n", wopcm->size / SZ_1K); in xe_wopcm_init()
216 XE_WARN_ON(guc_fw_size >= wopcm->size); in xe_wopcm_init()
217 XE_WARN_ON(huc_fw_size >= wopcm->size); in xe_wopcm_init()
218 XE_WARN_ON(ctx_rsvd + WOPCM_RESERVED_SIZE >= wopcm->size); in xe_wopcm_init()
229 wopcm->size = MAX_WOPCM_SIZE; in xe_wopcm_init()
245 guc_wopcm_base = min(guc_wopcm_base, wopcm->size - ctx_rsvd); in xe_wopcm_init()
248 guc_wopcm_size = wopcm->size - ctx_rsvd - guc_wopcm_base; in xe_wopcm_init()
255 if (__check_layout(xe, wopcm->size, guc_wopcm_base, guc_wopcm_size, in xe_wopcm_init()
257 wopcm->guc.base = guc_wopcm_base; in xe_wopcm_init()
258 wopcm->guc.size = guc_wopcm_size; in xe_wopcm_init()
259 XE_WARN_ON(!wopcm->guc.base); in xe_wopcm_init()
260 XE_WARN_ON(!wopcm->guc.size); in xe_wopcm_init()
267 ret = __wopcm_init_regs(xe, gt, wopcm); in xe_wopcm_init()