xref: /openbsd-src/sys/dev/pci/drm/i915/gt/intel_tlb.h (revision f005ef32267c16bdb134f0e9fa4477dbe07c263a)
1*f005ef32Sjsg /* SPDX-License-Identifier: MIT */
2*f005ef32Sjsg /*
3*f005ef32Sjsg  * Copyright © 2023 Intel Corporation
4*f005ef32Sjsg  */
5*f005ef32Sjsg 
6*f005ef32Sjsg #ifndef INTEL_TLB_H
7*f005ef32Sjsg #define INTEL_TLB_H
8*f005ef32Sjsg 
9*f005ef32Sjsg #include <linux/seqlock.h>
10*f005ef32Sjsg #include <linux/types.h>
11*f005ef32Sjsg 
12*f005ef32Sjsg #include "intel_gt_types.h"
13*f005ef32Sjsg 
14*f005ef32Sjsg void intel_gt_invalidate_tlb_full(struct intel_gt *gt, u32 seqno);
15*f005ef32Sjsg 
16*f005ef32Sjsg void intel_gt_init_tlb(struct intel_gt *gt);
17*f005ef32Sjsg void intel_gt_fini_tlb(struct intel_gt *gt);
18*f005ef32Sjsg 
intel_gt_tlb_seqno(const struct intel_gt * gt)19*f005ef32Sjsg static inline u32 intel_gt_tlb_seqno(const struct intel_gt *gt)
20*f005ef32Sjsg {
21*f005ef32Sjsg 	return seqprop_sequence(&gt->tlb.seqno);
22*f005ef32Sjsg }
23*f005ef32Sjsg 
intel_gt_next_invalidate_tlb_full(const struct intel_gt * gt)24*f005ef32Sjsg static inline u32 intel_gt_next_invalidate_tlb_full(const struct intel_gt *gt)
25*f005ef32Sjsg {
26*f005ef32Sjsg 	return intel_gt_tlb_seqno(gt) | 1;
27*f005ef32Sjsg }
28*f005ef32Sjsg 
29*f005ef32Sjsg #endif /* INTEL_TLB_H */
30