Lines Matching refs:pe
294 static inline void pasid_clear_entry(struct pasid_entry *pe)
296 WRITE_ONCE(pe->val[0], 0);
297 WRITE_ONCE(pe->val[1], 0);
298 WRITE_ONCE(pe->val[2], 0);
299 WRITE_ONCE(pe->val[3], 0);
300 WRITE_ONCE(pe->val[4], 0);
301 WRITE_ONCE(pe->val[5], 0);
302 WRITE_ONCE(pe->val[6], 0);
303 WRITE_ONCE(pe->val[7], 0);
306 static inline void pasid_clear_entry_with_fpd(struct pasid_entry *pe)
308 WRITE_ONCE(pe->val[0], PASID_PTE_FPD);
309 WRITE_ONCE(pe->val[1], 0);
310 WRITE_ONCE(pe->val[2], 0);
311 WRITE_ONCE(pe->val[3], 0);
312 WRITE_ONCE(pe->val[4], 0);
313 WRITE_ONCE(pe->val[5], 0);
314 WRITE_ONCE(pe->val[6], 0);
315 WRITE_ONCE(pe->val[7], 0);
321 struct pasid_entry *pe;
323 pe = intel_pasid_get_entry(dev, pasid);
324 if (WARN_ON(!pe))
327 if (fault_ignore && pasid_pte_is_present(pe))
328 pasid_clear_entry_with_fpd(pe);
330 pasid_clear_entry(pe);
346 pasid_set_domain_id(struct pasid_entry *pe, u64 value)
348 pasid_set_bits(&pe->val[1], GENMASK_ULL(15, 0), value);
355 pasid_get_domain_id(struct pasid_entry *pe)
357 return (u16)(READ_ONCE(pe->val[1]) & GENMASK_ULL(15, 0));
365 pasid_set_slptr(struct pasid_entry *pe, u64 value)
367 pasid_set_bits(&pe->val[0], VTD_PAGE_MASK, value);
375 pasid_set_address_width(struct pasid_entry *pe, u64 value)
377 pasid_set_bits(&pe->val[0], GENMASK_ULL(4, 2), value << 2);
385 pasid_set_translation_type(struct pasid_entry *pe, u64 value)
387 pasid_set_bits(&pe->val[0], GENMASK_ULL(8, 6), value << 6);
394 static inline void pasid_set_fault_enable(struct pasid_entry *pe)
396 pasid_set_bits(&pe->val[0], 1 << 1, 0);
403 static inline void pasid_set_sre(struct pasid_entry *pe)
405 pasid_set_bits(&pe->val[2], 1 << 0, 1);
412 static inline void pasid_set_present(struct pasid_entry *pe)
414 pasid_set_bits(&pe->val[0], 1 << 0, 1);
421 static inline void pasid_set_page_snoop(struct pasid_entry *pe, bool value)
423 pasid_set_bits(&pe->val[1], 1 << 23, value << 23);
431 pasid_set_pgsnp(struct pasid_entry *pe)
433 pasid_set_bits(&pe->val[1], 1ULL << 24, 1ULL << 24);
441 pasid_set_flptr(struct pasid_entry *pe, u64 value)
443 pasid_set_bits(&pe->val[2], VTD_PAGE_MASK, value);
451 pasid_set_flpm(struct pasid_entry *pe, u64 value)
453 pasid_set_bits(&pe->val[2], GENMASK_ULL(3, 2), value << 2);
461 pasid_set_eafe(struct pasid_entry *pe)
463 pasid_set_bits(&pe->val[2], 1 << 7, 1 << 7);