Lines Matching full:unit

114 	struct amdiommu_unit *unit;  in amdiommu_map_msi_intr()  local
136 unit = CTX2AMD(ctx); in amdiommu_map_msi_intr()
137 if (!unit->irte_enabled || cookie == -1) in amdiommu_map_msi_intr()
139 if (cookie >= unit->irte_nentries) { in amdiommu_map_msi_intr()
141 unit->iommu.unit, cookie, unit->irte_nentries); in amdiommu_map_msi_intr()
145 if (unit->irte_x2apic) { in amdiommu_map_msi_intr()
181 if (unit->irte_x2apic) in amdiommu_map_msi_intr()
187 AMDIOMMU_LOCK(unit); in amdiommu_map_msi_intr()
188 amdiommu_qi_invalidate_ir_locked(unit, rid); in amdiommu_map_msi_intr()
189 AMDIOMMU_UNLOCK(unit); in amdiommu_map_msi_intr()
226 struct amdiommu_unit *unit; in amdiommu_ir_find() local
251 error = amdiommu_find_unit_for_hpet(src, &unit, &rid, &dte, in amdiommu_ir_find()
255 error = amdiommu_find_unit(src, &unit, &rid, &dte, &edte, in amdiommu_ir_find()
258 ioctx = iommu_instantiate_ctx(AMD2IOMMU(unit), src, false); in amdiommu_ir_find()
272 struct amdiommu_unit *unit; in amdiommu_ir_free_irte() local
278 unit = CTX2AMD(ctx); in amdiommu_ir_free_irte()
280 KASSERT(unit->irte_enabled, in amdiommu_ir_free_irte()
281 ("unmap: cookie %d ctx %p unit %p", cookie, ctx, unit)); in amdiommu_ir_free_irte()
282 KASSERT(cookie < unit->irte_nentries, in amdiommu_ir_free_irte()
283 ("bad cookie %u %u", cookie, unit->irte_nentries)); in amdiommu_ir_free_irte()
285 if (unit->irte_x2apic) { in amdiommu_ir_free_irte()
302 AMDIOMMU_LOCK(unit); in amdiommu_ir_free_irte()
303 amdiommu_qi_invalidate_ir_locked(unit, rid); in amdiommu_ir_free_irte()
304 AMDIOMMU_UNLOCK(unit); in amdiommu_ir_free_irte()
310 struct amdiommu_unit *unit; in amdiommu_ctx_init_irte() local
315 unit = CTX2AMD(ctx); in amdiommu_ctx_init_irte()
316 if (!unit->irte_enabled) in amdiommu_ctx_init_irte()
319 KASSERT(unit->irte_nentries > 0 && in amdiommu_ctx_init_irte()
320 unit->irte_nentries <= 2048 && in amdiommu_ctx_init_irte()
321 powerof2(unit->irte_nentries), in amdiommu_ctx_init_irte()
322 ("amdiommu%d: unit %p irte_nentries %u", unit->iommu.unit, in amdiommu_ctx_init_irte()
323 unit, unit->irte_nentries)); in amdiommu_ctx_init_irte()
325 if (bus_get_domain(unit->iommu.dev, &dom) != 0) in amdiommu_ctx_init_irte()
327 sz = unit->irte_nentries; in amdiommu_ctx_init_irte()
328 sz *= unit->irte_x2apic ? sizeof(struct amdiommu_irte_basic_vapic_x2) : in amdiommu_ctx_init_irte()
338 if (unit->irte_x2apic) in amdiommu_ctx_init_irte()
342 ctx->irtids = vmem_create("amdirt", 0, unit->irte_nentries, 1, 0, in amdiommu_ctx_init_irte()
353 struct amdiommu_unit *unit; in amdiommu_ctx_fini_irte() local
355 unit = CTX2AMD(ctx); in amdiommu_ctx_fini_irte()
356 if (!unit->irte_enabled) in amdiommu_ctx_fini_irte()
358 if (unit->irte_x2apic) in amdiommu_ctx_fini_irte()
366 amdiommu_init_irt(struct amdiommu_unit *unit) in amdiommu_init_irt() argument
370 SYSCTL_ADD_INT(&unit->iommu.sysctl_ctx, in amdiommu_init_irt()
371 SYSCTL_CHILDREN(device_get_sysctl_tree(unit->iommu.dev)), in amdiommu_init_irt()
372 OID_AUTO, "ir", CTLFLAG_RD, &unit->irte_enabled, 0, in amdiommu_init_irt()
378 unit->irte_enabled = enabled != 0; in amdiommu_init_irt()
379 if (!unit->irte_enabled) in amdiommu_init_irt()
389 unit->irte_nentries = nentries; in amdiommu_init_irt()
391 unit->irte_x2apic = x2apic_mode; in amdiommu_init_irt()
396 amdiommu_fini_irt(struct amdiommu_unit *unit) in amdiommu_fini_irt() argument