Lines Matching full:grant
3 * Xen grant DMA-mapping layer - contains special DMA-mapping routines
4 * for providing grant references as DMA addresses to be used by frontends
33 static inline dma_addr_t grant_to_dma(grant_ref_t grant) in grant_to_dma() argument
35 return XEN_GRANT_DMA_ADDR_OFF | ((dma_addr_t)grant << XEN_PAGE_SHIFT); in grant_to_dma()
74 * Such a DMA address is formed by using the grant reference as a frame
85 grant_ref_t grant; in xen_grant_dma_alloc() local
101 if (gnttab_alloc_grant_reference_seq(n_pages, &grant)) { in xen_grant_dma_alloc()
107 gnttab_grant_foreign_access_ref(grant + i, data->backend_domid, in xen_grant_dma_alloc()
111 *dma_handle = grant_to_dma(grant); in xen_grant_dma_alloc()
121 grant_ref_t grant; in xen_grant_dma_free() local
130 grant = dma_to_grant(dma_handle); in xen_grant_dma_free()
133 if (unlikely(!gnttab_end_foreign_access_ref(grant + i))) { in xen_grant_dma_free()
134 dev_alert(dev, "Grant still in use by backend domain, disabled for further use\n"); in xen_grant_dma_free()
140 gnttab_free_grant_reference_seq(grant, n_pages); in xen_grant_dma_free()
175 grant_ref_t grant; in xen_grant_dma_map_page() local
188 if (gnttab_alloc_grant_reference_seq(n_pages, &grant)) in xen_grant_dma_map_page()
192 gnttab_grant_foreign_access_ref(grant + i, data->backend_domid, in xen_grant_dma_map_page()
197 dma_handle = grant_to_dma(grant) + dma_offset; in xen_grant_dma_map_page()
209 grant_ref_t grant; in xen_grant_dma_unmap_page() local
221 grant = dma_to_grant(dma_handle); in xen_grant_dma_unmap_page()
224 if (unlikely(!gnttab_end_foreign_access_ref(grant + i))) { in xen_grant_dma_unmap_page()
225 dev_alert(dev, "Grant still in use by backend domain, disabled for further use\n"); in xen_grant_dma_unmap_page()
231 gnttab_free_grant_reference_seq(grant, n_pages); in xen_grant_dma_unmap_page()
337 if (!of_device_is_compatible(iommu_spec.np, "xen,grant-dma") || in xen_dt_grant_init_backend_domid()
380 dev_err(dev, "Xen grant DMA data is already created\n"); in xen_grant_setup_dma_ops()
391 dev_err(dev, "Cannot store Xen grant DMA data\n"); in xen_grant_setup_dma_ops()
401 dev_err(dev, "Cannot set up Xen grant DMA ops, retain platform DMA ops\n"); in xen_grant_setup_dma_ops()
416 MODULE_DESCRIPTION("Xen grant DMA-mapping layer");