mirror of
https://github.com/torvalds/linux.git
synced 2024-12-17 00:21:32 +00:00
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: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Acked-by: Becky Bruce <beckyb@kernel.crashing.org>
This commit is contained in:
parent
b9394647ac
commit
30945fdf6a
@ -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);
|
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.
|
* Determine if an address is reachable by a pci device, or if we must bounce.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
swiotlb_pci_addr_needs_map(struct device *hwdev, dma_addr_t addr, size_t size)
|
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;
|
dma_addr_t max;
|
||||||
struct pci_controller *hose;
|
struct pci_controller *hose;
|
||||||
struct pci_dev *pdev = to_pci_dev(hwdev);
|
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))
|
if ((addr + size > max) | (addr < hose->dma_window_base_cur))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return !is_buffer_dma_capable(mask, addr, size);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* At the moment, all platforms that use this code only require
|
* At the moment, all platforms that use this code only require
|
||||||
* swiotlb to be used if we're operating on HIGHMEM. Since
|
* 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,
|
.dma_supported = swiotlb_dma_supported,
|
||||||
.map_page = swiotlb_map_page,
|
.map_page = swiotlb_map_page,
|
||||||
.unmap_page = swiotlb_unmap_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_cpu = swiotlb_sync_single_range_for_cpu,
|
||||||
.sync_single_range_for_device = swiotlb_sync_single_range_for_device,
|
.sync_single_range_for_device = swiotlb_sync_single_range_for_device,
|
||||||
.sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,
|
.sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,
|
||||||
|
Loading…
Reference in New Issue
Block a user