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

Commit 30945fdf authored by FUJITA Tomonori's avatar FUJITA Tomonori
Browse files

powerpc: remove unncesary swiotlb_arch_address_needs_mapping



swiotlb doesn't use swiotlb_arch_address_needs_mapping(); it uses
dma_capalbe(). We can remove unnecessary
swiotlb_arch_address_needs_mapping().

We can remove swiotlb_addr_needs_map() and is_buffer_dma_capable() in
swiotlb_pci_addr_needs_map() too; dma_capable() handles the features
that both provide.

Signed-off-by: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: default avatarBecky Bruce <beckyb@kernel.crashing.org>
parent b9394647
Loading
Loading
Loading
Loading
+1 −26
Original line number Diff line number Diff line
@@ -35,29 +35,12 @@ phys_addr_t swiotlb_bus_to_phys(struct device *hwdev, dma_addr_t baddr)
	return baddr - get_dma_direct_offset(hwdev);
}

/*
 * Determine if an address needs bounce buffering via swiotlb.
 * Going forward I expect the swiotlb code to generalize on using
 * a dma_ops->addr_needs_map, and this function will move from here to the
 * generic swiotlb code.
 */
int
swiotlb_arch_address_needs_mapping(struct device *hwdev, dma_addr_t addr,
				   size_t size)
{
	struct dma_mapping_ops *dma_ops = get_dma_ops(hwdev);

	BUG_ON(!dma_ops);
	return dma_ops->addr_needs_map(hwdev, addr, size);
}

/*
 * Determine if an address is reachable by a pci device, or if we must bounce.
 */
static int
swiotlb_pci_addr_needs_map(struct device *hwdev, dma_addr_t addr, size_t size)
{
	u64 mask = dma_get_mask(hwdev);
	dma_addr_t max;
	struct pci_controller *hose;
	struct pci_dev *pdev = to_pci_dev(hwdev);
@@ -69,16 +52,9 @@ swiotlb_pci_addr_needs_map(struct device *hwdev, dma_addr_t addr, size_t size)
	if ((addr + size > max) | (addr < hose->dma_window_base_cur))
		return 1;

	return !is_buffer_dma_capable(mask, addr, size);
}

static int
swiotlb_addr_needs_map(struct device *hwdev, dma_addr_t addr, size_t size)
{
	return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size);
	return 0;
}


/*
 * At the moment, all platforms that use this code only require
 * swiotlb to be used if we're operating on HIGHMEM.  Since
@@ -94,7 +70,6 @@ struct dma_mapping_ops swiotlb_dma_ops = {
	.dma_supported = swiotlb_dma_supported,
	.map_page = swiotlb_map_page,
	.unmap_page = swiotlb_unmap_page,
	.addr_needs_map = swiotlb_addr_needs_map,
	.sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu,
	.sync_single_range_for_device = swiotlb_sync_single_range_for_device,
	.sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,