Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb1ddc00 authored by Stefano Stabellini's avatar Stefano Stabellini
Browse files

swiotlb-xen: introduce xen_swiotlb_set_dma_mask



Implement xen_swiotlb_set_dma_mask, use it for set_dma_mask on arm.

Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
parent 83862ccf
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -51,6 +51,7 @@ static struct dma_map_ops xen_swiotlb_dma_ops = {
	.map_page = xen_swiotlb_map_page,
	.map_page = xen_swiotlb_map_page,
	.unmap_page = xen_swiotlb_unmap_page,
	.unmap_page = xen_swiotlb_unmap_page,
	.dma_supported = xen_swiotlb_dma_supported,
	.dma_supported = xen_swiotlb_dma_supported,
	.set_dma_mask = xen_swiotlb_set_dma_mask,
};
};


int __init xen_mm_init(void)
int __init xen_mm_init(void)
+12 −0
Original line number Original line Diff line number Diff line
@@ -608,3 +608,15 @@ xen_swiotlb_dma_supported(struct device *hwdev, u64 mask)
	return xen_virt_to_bus(xen_io_tlb_end - 1) <= mask;
	return xen_virt_to_bus(xen_io_tlb_end - 1) <= mask;
}
}
EXPORT_SYMBOL_GPL(xen_swiotlb_dma_supported);
EXPORT_SYMBOL_GPL(xen_swiotlb_dma_supported);

int
xen_swiotlb_set_dma_mask(struct device *dev, u64 dma_mask)
{
	if (!dev->dma_mask || !xen_swiotlb_dma_supported(dev, dma_mask))
		return -EIO;

	*dev->dma_mask = dma_mask;

	return 0;
}
EXPORT_SYMBOL_GPL(xen_swiotlb_set_dma_mask);
+2 −0
Original line number Original line Diff line number Diff line
@@ -55,4 +55,6 @@ xen_swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr);
extern int
extern int
xen_swiotlb_dma_supported(struct device *hwdev, u64 mask);
xen_swiotlb_dma_supported(struct device *hwdev, u64 mask);


extern int
xen_swiotlb_set_dma_mask(struct device *dev, u64 dma_mask);
#endif /* __LINUX_SWIOTLB_XEN_H */
#endif /* __LINUX_SWIOTLB_XEN_H */