Lines Matching refs:tlb_invalidation

79 					tlb_invalidation.fence_tdr.work);  in xe_gt_tlb_fence_timeout()
85 spin_lock_irq(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_fence_timeout()
87 &gt->tlb_invalidation.pending_fences, link) { in xe_gt_tlb_fence_timeout()
96 fence->seqno, gt->tlb_invalidation.seqno_recv); in xe_gt_tlb_fence_timeout()
101 if (!list_empty(&gt->tlb_invalidation.pending_fences)) in xe_gt_tlb_fence_timeout()
103 &gt->tlb_invalidation.fence_tdr, in xe_gt_tlb_fence_timeout()
105 spin_unlock_irq(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_fence_timeout()
119 gt->tlb_invalidation.seqno = 1; in xe_gt_tlb_invalidation_init_early()
120 INIT_LIST_HEAD(&gt->tlb_invalidation.pending_fences); in xe_gt_tlb_invalidation_init_early()
121 spin_lock_init(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_init_early()
122 spin_lock_init(&gt->tlb_invalidation.lock); in xe_gt_tlb_invalidation_init_early()
123 INIT_DELAYED_WORK(&gt->tlb_invalidation.fence_tdr, in xe_gt_tlb_invalidation_init_early()
154 spin_lock_irq(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_reset()
155 cancel_delayed_work(&gt->tlb_invalidation.fence_tdr); in xe_gt_tlb_invalidation_reset()
163 if (gt->tlb_invalidation.seqno == 1) in xe_gt_tlb_invalidation_reset()
166 pending_seqno = gt->tlb_invalidation.seqno - 1; in xe_gt_tlb_invalidation_reset()
167 WRITE_ONCE(gt->tlb_invalidation.seqno_recv, pending_seqno); in xe_gt_tlb_invalidation_reset()
170 &gt->tlb_invalidation.pending_fences, link) in xe_gt_tlb_invalidation_reset()
172 spin_unlock_irq(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_reset()
178 int seqno_recv = READ_ONCE(gt->tlb_invalidation.seqno_recv); in tlb_invalidation_seqno_past()
207 seqno = gt->tlb_invalidation.seqno; in send_tlb_invalidation()
214 spin_lock_irq(&gt->tlb_invalidation.pending_lock); in send_tlb_invalidation()
226 &gt->tlb_invalidation.pending_fences); in send_tlb_invalidation()
228 if (list_is_singular(&gt->tlb_invalidation.pending_fences)) in send_tlb_invalidation()
230 &gt->tlb_invalidation.fence_tdr, in send_tlb_invalidation()
233 spin_unlock_irq(&gt->tlb_invalidation.pending_lock); in send_tlb_invalidation()
238 gt->tlb_invalidation.seqno = (gt->tlb_invalidation.seqno + 1) % in send_tlb_invalidation()
240 if (!gt->tlb_invalidation.seqno) in send_tlb_invalidation()
241 gt->tlb_invalidation.seqno = 1; in send_tlb_invalidation()
522 spin_lock_irqsave(&gt->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
524 spin_unlock_irqrestore(&gt->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
528 WRITE_ONCE(gt->tlb_invalidation.seqno_recv, msg[0]); in xe_guc_tlb_invalidation_done_handler()
531 &gt->tlb_invalidation.pending_fences, link) { in xe_guc_tlb_invalidation_done_handler()
540 if (!list_empty(&gt->tlb_invalidation.pending_fences)) in xe_guc_tlb_invalidation_done_handler()
542 &gt->tlb_invalidation.fence_tdr, in xe_guc_tlb_invalidation_done_handler()
545 cancel_delayed_work(&gt->tlb_invalidation.fence_tdr); in xe_guc_tlb_invalidation_done_handler()
547 spin_unlock_irqrestore(&gt->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
585 spin_lock_irq(&gt->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()
587 &gt->tlb_invalidation.lock, in xe_gt_tlb_invalidation_fence_init()
589 spin_unlock_irq(&gt->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()