Lines Matching refs:dev
120 #define request_irq(irq, func, flags, name, dev) request_irq(irq, flags, func, name, dev) argument
133 #define dev_print(dev, lvl, fmt, ...) \ argument
134 printk(lvl "smmu: %s: " fmt, dt_node_full_name(dev_to_dt(dev)), ## __VA_ARGS__)
136 #define dev_dbg(dev, fmt, ...) dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__) argument
137 #define dev_notice(dev, fmt, ...) dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__) argument
138 #define dev_warn(dev, fmt, ...) dev_print(dev, XENLOG_WARNING, fmt, ## __VA_ARGS__) argument
139 #define dev_err(dev, fmt, ...) dev_print(dev, XENLOG_ERR, fmt, ## __VA_ARGS__) argument
141 #define dev_err_ratelimited(dev, fmt, ...) \ argument
142 dev_print(dev, XENLOG_ERR, fmt, ## __VA_ARGS__)
144 #define dev_name(dev) dt_node_full_name(dev_to_dt(dev)) argument
150 #define devm_kzalloc(dev, size, flags) _xzalloc(size, sizeof(void *)) argument
153 static void __iomem *devm_ioremap_resource(struct device *dev, in devm_ioremap_resource() argument
159 dev_err(dev, "Invalid resource\n"); in devm_ioremap_resource()
165 dev_err(dev, in devm_ioremap_resource()
184 #define to_pci_dev(dev) (NULL) argument
240 #define dev_archdata(dev) ((struct arm_smmu_xen_device *)dev->archdata.iommu) argument
241 #define dev_iommu_domain(dev) (dev_archdata(dev)->domain) argument
242 #define dev_iommu_group(dev) (dev_archdata(dev)->group) argument
282 struct device *dev) in iommu_group_add_device() argument
284 dev_iommu_group(dev) = group; in iommu_group_add_device()
291 static struct iommu_group *iommu_group_get(struct device *dev) in iommu_group_get() argument
293 struct iommu_group *group = dev_iommu_group(dev); in iommu_group_get()
612 struct device *dev; member
694 if (of_property_read_bool(smmu->dev->of_node, in parse_driver_options()
697 dev_notice(smmu->dev, "option %s\n", in parse_driver_options()
703 static struct device_node *dev_get_dev_node(struct device *dev) in dev_get_dev_node() argument
706 if (dev_is_pci(dev)) { in dev_get_dev_node()
707 struct pci_bus *bus = to_pci_dev(dev)->bus; in dev_get_dev_node()
715 return dev->of_node; in dev_get_dev_node()
740 find_smmu_master_cfg(struct device *dev) in find_smmu_master_cfg() argument
743 struct iommu_group *group = iommu_group_get(dev); in find_smmu_master_cfg()
779 struct device *dev, in register_smmu_master() argument
787 dev_err(dev, in register_smmu_master()
794 dev_err(dev, in register_smmu_master()
800 master = devm_kzalloc(dev, sizeof(*master), GFP_KERNEL); in register_smmu_master()
815 dev_err(dev, in register_smmu_master()
825 static struct arm_smmu_device *find_smmu_for_device(struct device *dev) in find_smmu_for_device() argument
829 struct device_node *dev_node = dev_get_dev_node(dev); in find_smmu_for_device()
871 dev_err_ratelimited(smmu->dev, in arm_smmu_tlb_sync()
899 static irqreturn_t arm_smmu_context_fault(int irq, void *dev) in arm_smmu_context_fault() argument
904 struct iommu_domain *domain = dev; in arm_smmu_context_fault()
917 dev_err_ratelimited(smmu->dev, in arm_smmu_context_fault()
931 if (!report_iommu_fault(domain, smmu->dev, iova, flags)) { in arm_smmu_context_fault()
935 dev_err_ratelimited(smmu->dev, in arm_smmu_context_fault()
952 static irqreturn_t arm_smmu_global_fault(int irq, void *dev) in arm_smmu_global_fault() argument
955 struct arm_smmu_device *smmu = dev; in arm_smmu_global_fault()
966 dev_err_ratelimited(smmu->dev, in arm_smmu_global_fault()
968 dev_err_ratelimited(smmu->dev, in arm_smmu_global_fault()
977 static void arm_smmu_context_fault_xen(int irq, void *dev, in arm_smmu_context_fault_xen() argument
980 arm_smmu_context_fault(irq, dev); in arm_smmu_context_fault_xen()
985 static void arm_smmu_global_fault_xen(int irq, void *dev, in arm_smmu_global_fault_xen() argument
988 arm_smmu_global_fault(irq, dev); in arm_smmu_global_fault_xen()
1011 dma_map_page(smmu->dev, virt_to_page(addr), offset, size,
1112 dev_notice(smmu->dev, "d%u: p2maddr 0x%"PRIpaddr"\n", in arm_smmu_init_context_bank()
1268 dev_err(smmu->dev, "failed to request context IRQ %d (%u)\n", in arm_smmu_init_domain_context()
1414 dev_err(smmu->dev, "failed to allocate %d SMRs\n", in arm_smmu_master_configure_smrs()
1424 dev_err(smmu->dev, "failed to allocate free SMR\n"); in arm_smmu_master_configure_smrs()
1524 static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev) in arm_smmu_attach_dev() argument
1531 smmu = find_smmu_for_device(dev); in arm_smmu_attach_dev()
1533 dev_err(dev, "cannot attach to SMMU, is it on the same bus?\n"); in arm_smmu_attach_dev()
1537 if (dev_iommu_domain(dev)) { in arm_smmu_attach_dev()
1538 dev_err(dev, "already attached to IOMMU domain\n"); in arm_smmu_attach_dev()
1557 dev_err(dev, in arm_smmu_attach_dev()
1559 dev_name(smmu_domain->smmu->dev), dev_name(smmu->dev)); in arm_smmu_attach_dev()
1564 cfg = find_smmu_master_cfg(dev); in arm_smmu_attach_dev()
1571 dev_iommu_domain(dev) = domain; in arm_smmu_attach_dev()
1575 static void arm_smmu_detach_dev(struct iommu_domain *domain, struct device *dev) in arm_smmu_detach_dev() argument
1580 cfg = find_smmu_master_cfg(dev); in arm_smmu_detach_dev()
1584 dev_iommu_domain(dev) = NULL; in arm_smmu_detach_dev()
1913 static int arm_smmu_add_device(struct device *dev) in arm_smmu_add_device() argument
1921 smmu = find_smmu_for_device(dev); in arm_smmu_add_device()
1927 dev_err(dev, "Failed to allocate IOMMU group\n"); in arm_smmu_add_device()
1931 if (dev_is_pci(dev)) { in arm_smmu_add_device()
1932 struct pci_dev *pdev = to_pci_dev(dev); in arm_smmu_add_device()
1951 master = find_smmu_master(smmu, dev->of_node); in arm_smmu_add_device()
1961 ret = iommu_group_add_device(group, dev); in arm_smmu_add_device()
1969 static void arm_smmu_remove_device(struct device *dev)
1971 iommu_group_remove_device(dev);
2111 dev_notice(smmu->dev, "probing hardware configuration...\n"); in arm_smmu_device_cfg_probe()
2112 dev_notice(smmu->dev, "SMMUv%d with:\n", smmu->version); in arm_smmu_device_cfg_probe()
2118 dev_err(smmu->dev, "\tno v7 descriptor support!\n"); in arm_smmu_device_cfg_probe()
2131 dev_notice(smmu->dev, "\tstage 1 translation\n"); in arm_smmu_device_cfg_probe()
2136 dev_notice(smmu->dev, "\tstage 2 translation\n"); in arm_smmu_device_cfg_probe()
2141 dev_notice(smmu->dev, "\tnested translation\n"); in arm_smmu_device_cfg_probe()
2146 dev_err(smmu->dev, "\tno translation support!\n"); in arm_smmu_device_cfg_probe()
2152 dev_notice(smmu->dev, "\tcoherent table walk\n"); in arm_smmu_device_cfg_probe()
2162 dev_err(smmu->dev, in arm_smmu_device_cfg_probe()
2175 dev_err(smmu->dev, in arm_smmu_device_cfg_probe()
2181 dev_notice(smmu->dev, in arm_smmu_device_cfg_probe()
2198 dev_warn(smmu->dev, in arm_smmu_device_cfg_probe()
2206 dev_err(smmu->dev, "impossible number of S2 context banks!\n"); in arm_smmu_device_cfg_probe()
2209 dev_notice(smmu->dev, "\t%u context banks (%u stage-2 only)\n", in arm_smmu_device_cfg_probe()
2219 dev_err(smmu->dev, in arm_smmu_device_cfg_probe()
2252 dev_err(smmu->dev, "CPU page size 0x%lx unsupported\n", in arm_smmu_device_cfg_probe()
2259 dev_notice(smmu->dev, "\tStage-1: %lu-bit VA -> %lu-bit IPA\n", in arm_smmu_device_cfg_probe()
2263 dev_notice(smmu->dev, "\tStage-2: %lu-bit IPA -> %lu-bit PA\n", in arm_smmu_device_cfg_probe()
2288 struct device *dev = &pdev->dev; in arm_smmu_device_dt_probe() local
2293 smmu = devm_kzalloc(dev, sizeof(*smmu), GFP_KERNEL); in arm_smmu_device_dt_probe()
2295 dev_err(dev, "failed to allocate arm_smmu_device\n"); in arm_smmu_device_dt_probe()
2298 smmu->dev = dev; in arm_smmu_device_dt_probe()
2300 of_id = of_match_node(arm_smmu_of_match, dev->of_node); in arm_smmu_device_dt_probe()
2304 smmu->base = devm_ioremap_resource(dev, res); in arm_smmu_device_dt_probe()
2311 if (of_property_read_u32(dev->of_node, "#global-interrupts", in arm_smmu_device_dt_probe()
2313 dev_err(dev, "missing #global-interrupts property\n"); in arm_smmu_device_dt_probe()
2326 dev_err(dev, "found %d interrupts but expected at least %d\n", in arm_smmu_device_dt_probe()
2332 smmu->irqs = devm_kzalloc(dev, sizeof(*smmu->irqs) * num_irqs, in arm_smmu_device_dt_probe()
2335 dev_err(dev, "failed to allocate %d irqs\n", num_irqs); in arm_smmu_device_dt_probe()
2344 dev_err(dev, "failed to get irq index %d\n", i); in arm_smmu_device_dt_probe()
2357 while (!of_parse_phandle_with_args(dev->of_node, "mmu-masters", in arm_smmu_device_dt_probe()
2360 err = register_smmu_master(smmu, dev, &masterspec); in arm_smmu_device_dt_probe()
2362 dev_err(dev, "failed to add master %s\n", in arm_smmu_device_dt_probe()
2369 dev_notice(dev, "registered %d master devices\n", i); in arm_smmu_device_dt_probe()
2375 dev_err(dev, in arm_smmu_device_dt_probe()
2389 dev_err(dev, "failed to request global IRQ %d (%u)\n", in arm_smmu_device_dt_probe()
2427 struct device *dev = &pdev->dev;
2433 if (curr->dev == dev) {
2451 dev_err(dev, "removing device with active domains!\n");
2562 struct device *dev) in arm_smmu_get_domain() argument
2570 smmu = find_smmu_for_device(dev); in arm_smmu_get_domain()
2595 struct device *dev, u32 flag) in arm_smmu_assign_dev() argument
2603 if (!dev->archdata.iommu) { in arm_smmu_assign_dev()
2604 dev->archdata.iommu = xzalloc(struct arm_smmu_xen_device); in arm_smmu_assign_dev()
2605 if (!dev->archdata.iommu) in arm_smmu_assign_dev()
2609 if (!dev_iommu_group(dev)) { in arm_smmu_assign_dev()
2610 ret = arm_smmu_add_device(dev); in arm_smmu_assign_dev()
2621 domain = arm_smmu_get_domain(d, dev); in arm_smmu_assign_dev()
2643 ret = arm_smmu_attach_dev(domain, dev); in arm_smmu_assign_dev()
2657 static int arm_smmu_deassign_dev(struct domain *d, struct device *dev) in arm_smmu_deassign_dev() argument
2659 struct iommu_domain *domain = dev_iommu_domain(dev); in arm_smmu_deassign_dev()
2665 dev_err(dev, " not attached to domain %d\n", d->domain_id); in arm_smmu_deassign_dev()
2671 arm_smmu_detach_dev(domain, dev); in arm_smmu_deassign_dev()
2683 u8 devfn, struct device *dev) in arm_smmu_reassign_dev() argument
2694 ret = arm_smmu_deassign_dev(s, dev); in arm_smmu_reassign_dev()
2700 ret = arm_smmu_assign_dev(t, devfn, dev, 0); in arm_smmu_reassign_dev()
2793 static __init const struct arm_smmu_device *find_smmu(const struct device *dev) in find_smmu() argument
2800 if (smmu->dev == dev) { in find_smmu()
2810 static __init int arm_smmu_dt_init(struct dt_device_node *dev, in arm_smmu_dt_init() argument
2820 dt_device_set_used_by(dev, DOMID_XEN); in arm_smmu_dt_init()
2822 rc = arm_smmu_device_dt_probe(dev); in arm_smmu_dt_init()
2829 smmu = find_smmu(dt_to_dev(dev)); in arm_smmu_dt_init()