/* SPDX-License-Identifier: MIT */ /* * Copyright(c) 2025, Intel Corporation. All rights reserved. */ #ifndef _XE_MERT_H_ #define _XE_MERT_H_ #include #include #include struct xe_device; /** * struct xe_mert - MERT related data */ struct xe_mert { /** @lock: protects the TLB invalidation status */ spinlock_t lock; /** @tlb_inv_triggered: indicates if TLB invalidation was triggered */ bool tlb_inv_triggered; /** @tlb_inv_done: completion of TLB invalidation */ struct completion tlb_inv_done; }; #ifdef CONFIG_PCI_IOV void xe_mert_init_early(struct xe_device *xe); int xe_mert_invalidate_lmtt(struct xe_device *xe); void xe_mert_irq_handler(struct xe_device *xe, u32 master_ctl); #else static inline void xe_mert_irq_handler(struct xe_device *xe, u32 master_ctl) { } #endif #endif