Lines Matching defs:host
104 static unsigned int pin_job(struct host1x *host, struct host1x_job *job)
217 if (!iommu_get_domain_for_dev(host->dev))
222 sgt = host1x_bo_pin(host->dev, g->bo, phys);
228 if (host->domain) {
231 gather_size = iova_align(&host->iova, gather_size);
233 shift = iova_shift(&host->iova);
234 alloc = alloc_iova(&host->iova, gather_size >> shift,
235 host->iova_end >> shift, true);
241 err = iommu_map_sgtable(host->domain,
242 iova_dma_addr(&host->iova, alloc),
245 __free_iova(&host->iova, alloc);
251 phys_addr = iova_dma_addr(&host->iova, alloc);
253 err = dma_map_sgtable(host->dev, sgt, DMA_TO_DEVICE, 0);
258 job->unpins[job->num_unpins].dev = host->dev;
524 static inline int copy_gathers(struct device *host, struct host1x_job *job,
548 job->gather_copy_mapped = dma_alloc_wc(host, size, &job->gather_copy,
553 job->gather_copy_mapped = dma_alloc_wc(host, size,
593 struct host1x *host = dev_get_drvdata(dev->parent);
596 err = pin_job(host, job);
601 err = copy_gathers(host->dev, job, dev);
641 struct host1x *host = dev_get_drvdata(job->channel->dev->parent);
646 struct device *dev = unpin->dev ?: host->dev;
650 unpin->size && host->domain) {
651 iommu_unmap(host->domain, job->addr_phys[i],
653 free_iova(&host->iova,
654 iova_pfn(&host->iova, job->addr_phys[i]));
667 dma_free_wc(host->dev, job->gather_copy_size,