[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 06/15] [swiotlb] In 'swiotlb_init' take advantage of the default swiotlb_engine support.
For baselevel support we define required functions and fill out variables. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> --- lib/swiotlb.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/lib/swiotlb.c b/lib/swiotlb.c index cf29f03..3c7bd4e 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -132,6 +132,11 @@ static dma_addr_t swiotlb_virt_to_bus(struct device *hwdev, return phys_to_dma(hwdev, virt_to_phys(address)); } +static void *swiotlb_bus_to_virt(struct device *hwdev, dma_addr_t dev_addr) +{ + return phys_to_virt(dma_to_phys(hwdev, dev_addr)); +}; + /* * Register a software IO TLB engine. * @@ -236,9 +241,26 @@ swiotlb_init_with_default_size(size_t default_size, int verbose) swiotlb_print_info(); } +static int swiotlb_release(struct swiotlb_engine *iotlb) +{ + swiotlb_free(); + return 0; +} + +static struct swiotlb_engine swiotlb_ops = { + .name = "software IO TLB", + .overflow = 32 * 1024, + .release = swiotlb_release, + .phys_to_bus = phys_to_dma, + .bus_to_phys = dma_to_phys, + .virt_to_bus = swiotlb_virt_to_bus, + .bus_to_virt = swiotlb_bus_to_virt, +}; + void __init swiotlb_init(int verbose) { + swiotlb_register_engine(&swiotlb_ops); swiotlb_init_with_default_size(64 * (1<<20), verbose); /* default to 64MB */ } -- 1.6.2.5 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |