Lines Matching refs:pe
233 static inline void pasid_clear_entry(struct pasid_entry *pe)
235 WRITE_ONCE(pe->val[0], 0);
236 WRITE_ONCE(pe->val[1], 0);
237 WRITE_ONCE(pe->val[2], 0);
238 WRITE_ONCE(pe->val[3], 0);
239 WRITE_ONCE(pe->val[4], 0);
240 WRITE_ONCE(pe->val[5], 0);
241 WRITE_ONCE(pe->val[6], 0);
242 WRITE_ONCE(pe->val[7], 0);
245 static inline void pasid_clear_entry_with_fpd(struct pasid_entry *pe)
247 WRITE_ONCE(pe->val[0], PASID_PTE_FPD);
248 WRITE_ONCE(pe->val[1], 0);
249 WRITE_ONCE(pe->val[2], 0);
250 WRITE_ONCE(pe->val[3], 0);
251 WRITE_ONCE(pe->val[4], 0);
252 WRITE_ONCE(pe->val[5], 0);
253 WRITE_ONCE(pe->val[6], 0);
254 WRITE_ONCE(pe->val[7], 0);
260 struct pasid_entry *pe;
262 pe = intel_pasid_get_entry(dev, pasid);
263 if (WARN_ON(!pe))
266 if (fault_ignore && pasid_pte_is_present(pe))
267 pasid_clear_entry_with_fpd(pe);
269 pasid_clear_entry(pe);
285 pasid_set_domain_id(struct pasid_entry *pe, u64 value)
287 pasid_set_bits(&pe->val[1], GENMASK_ULL(15, 0), value);
294 pasid_get_domain_id(struct pasid_entry *pe)
296 return (u16)(READ_ONCE(pe->val[1]) & GENMASK_ULL(15, 0));
304 pasid_set_slptr(struct pasid_entry *pe, u64 value)
306 pasid_set_bits(&pe->val[0], VTD_PAGE_MASK, value);
314 pasid_set_address_width(struct pasid_entry *pe, u64 value)
316 pasid_set_bits(&pe->val[0], GENMASK_ULL(4, 2), value << 2);
324 pasid_set_translation_type(struct pasid_entry *pe, u64 value)
326 pasid_set_bits(&pe->val[0], GENMASK_ULL(8, 6), value << 6);
333 static inline void pasid_set_fault_enable(struct pasid_entry *pe)
335 pasid_set_bits(&pe->val[0], 1 << 1, 0);
342 static inline void pasid_set_wpe(struct pasid_entry *pe)
344 pasid_set_bits(&pe->val[2], 1 << 4, 1 << 4);
351 static inline void pasid_set_present(struct pasid_entry *pe)
353 pasid_set_bits(&pe->val[0], 1 << 0, 1);
360 static inline void pasid_set_page_snoop(struct pasid_entry *pe, bool value)
362 pasid_set_bits(&pe->val[1], 1 << 23, value << 23);
370 static inline void pasid_set_nxe(struct pasid_entry *pe)
372 pasid_set_bits(&pe->val[2], 1 << 5, 1 << 5);
380 pasid_set_pgsnp(struct pasid_entry *pe)
382 pasid_set_bits(&pe->val[1], 1ULL << 24, 1ULL << 24);
390 pasid_set_flptr(struct pasid_entry *pe, u64 value)
392 pasid_set_bits(&pe->val[2], VTD_PAGE_MASK, value);
400 pasid_set_flpm(struct pasid_entry *pe, u64 value)
402 pasid_set_bits(&pe->val[2], GENMASK_ULL(3, 2), value << 2);