Lines Matching defs:iommu
7 #define pr_fmt(fmt) "iommu: " fmt
17 #include <linux/iommu.h>
26 #include <trace/events/iommu.h>
153 int iommu_device_register(struct iommu_device *iommu)
156 list_add_tail(&iommu->list, &iommu_device_list);
162 void iommu_device_unregister(struct iommu_device *iommu)
165 list_del(&iommu->list);
172 struct dev_iommu *param = dev->iommu;
182 dev->iommu = param;
188 struct dev_iommu *param = dev->iommu;
190 dev->iommu = NULL;
222 dev->iommu->iommu_dev = iommu_dev;
301 if (!dev->iommu)
304 iommu_device_unlink(dev->iommu->iommu_dev, dev);
329 early_param("iommu.passthrough", iommu_set_def_domain_type);
335 early_param("iommu.strict", iommu_dma_setup);
563 * This function is called by an iommu driver to allocate a new iommu
564 * group. The iommu group represents the minimum granularity of the iommu.
662 * iommu drivers can store data in the group for use when doing iommu
678 * iommu drivers can store data in the group for use when doing iommu
695 * Allow iommu driver to set a name for a group. When set it will
790 * iommu_group_add_device - add a device to an iommu group
794 * This function is called by an iommu driver to add a device into a
853 dev_info(dev, "Adding to iommu group %d\n", group->id);
870 dev_err(dev, "Failed to add to iommu group %d: %d\n", group->id, ret);
879 * This function is called by an iommu driver to remove the device from
880 * it's current group. This decrements the iommu group reference count.
890 dev_info(dev, "Removing from iommu group %d\n", group->id);
975 * This function is called by iommu drivers and users to get the group
994 * This function is called by iommu drivers to take additional references on an
1008 * This function is called by iommu drivers and users to release the
1009 * iommu group. Once the reference count is zero, the group is released.
1023 * This function allows iommu group users to track changes in a group.
1024 * See include/linux/iommu.h for actions sent via this notifier. Caller
1070 struct dev_iommu *param = dev->iommu;
1113 struct dev_iommu *param = dev->iommu;
1153 struct dev_iommu *param = dev->iommu;
1202 struct dev_iommu *param = dev->iommu;
1381 * iommu-group per device.
1607 * ADD/DEL call into iommu driver ops if provided, which may
1667 dev_warn(dev, "Device needs domain type %s, but device %s in the same iommu group requires type %s - using default\n",
1757 * creating the iommu group, so do it after the groups are
1827 * bus_set_iommu - set iommu-callbacks for the bus
1829 * @ops: the callbacks provided by the iommu-driver
1831 * This function is called by an iommu driver to set the iommu methods
1833 * the iommu-api after these ops are registered.
1835 * the bus itself, so the iommu drivers are not initialized when the bus
1836 * is set up. With this function the iommu-driver can set the iommu-ops
1878 * iommu_set_fault_handler() - set a fault handler for an iommu domain
1879 * @domain: iommu domain
2617 * @domain: the iommu domain where the fault has happened
2793 struct iommu_device *iommu;
2796 list_for_each_entry(iommu, &iommu_device_list, list)
2797 if (iommu->fwnode == fwnode) {
2798 ops = iommu->ops;
2883 if (dev->iommu && dev->iommu->iommu_dev) {
2884 const struct iommu_ops *ops = dev->iommu->iommu_dev->ops;
2901 if (dev->iommu && dev->iommu->iommu_dev) {
2902 const struct iommu_ops *ops = dev->iommu->iommu_dev->ops;
2914 if (dev->iommu && dev->iommu->iommu_dev) {
2915 const struct iommu_ops *ops = dev->iommu->iommu_dev->ops;