Lines Matching refs:viommu
48 struct viot_iommu *viommu;
77 static int __init viot_get_pci_iommu_fwnode(struct viot_iommu *viommu,
103 viommu->fwnode = dev_fwnode(&pdev->dev);
108 static int __init viot_get_mmio_iommu_fwnode(struct viot_iommu *viommu,
123 viommu->fwnode = &adev->fwnode;
130 struct viot_iommu *viommu;
138 list_for_each_entry(viommu, &viot_iommus, list)
139 if (viommu->offset == offset)
140 return viommu;
145 viommu = kzalloc(sizeof(*viommu), GFP_KERNEL);
146 if (!viommu)
149 viommu->offset = offset;
155 ret = viot_get_pci_iommu_fwnode(viommu, node->pci.segment,
162 ret = viot_get_mmio_iommu_fwnode(viommu,
171 list_add(&viommu->list, &viot_iommus);
172 return viommu;
175 kfree(viommu);
212 ep->viommu = viot_get_iommu(node->pci.output_node);
223 ep->viommu = viot_get_iommu(node->mmio.output_node);
232 if (!ep->viommu) {
307 static int viot_dev_iommu_init(struct device *dev, struct viot_iommu *viommu,
312 if (!viommu)
316 if (device_match_fwnode(dev, viommu->fwnode))
319 ops = iommu_ops_from_fwnode(viommu->fwnode);
324 return acpi_iommu_fwspec_init(dev, epid, viommu->fwnode, ops);
342 return viot_dev_iommu_init(aliased_dev, ep->viommu,
360 return viot_dev_iommu_init(&pdev->dev, ep->viommu,