Commit 69f07be6 authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

mips/loongson64: implement ->dma_supported instead of ->set_dma_mask



Same behavior, less code duplication.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 447d899b
Loading
Loading
Loading
Loading
+5 −14
Original line number Diff line number Diff line
@@ -75,19 +75,11 @@ static void loongson_dma_sync_sg_for_device(struct device *dev,
	mb();
}

static int loongson_dma_set_mask(struct device *dev, u64 mask)
static int loongson_dma_supported(struct device *dev, u64 mask)
{
	if (!dev->dma_mask || !dma_supported(dev, mask))
		return -EIO;

	if (mask > DMA_BIT_MASK(loongson_sysconf.dma_mask_bits)) {
		*dev->dma_mask = DMA_BIT_MASK(loongson_sysconf.dma_mask_bits);
		return -EIO;
	}

	*dev->dma_mask = mask;

	if (mask > DMA_BIT_MASK(loongson_sysconf.dma_mask_bits))
		return 0;
	return swiotlb_dma_supported(dev, mask);
}

dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr)
@@ -126,8 +118,7 @@ static const struct dma_map_ops loongson_dma_map_ops = {
	.sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,
	.sync_sg_for_device = loongson_dma_sync_sg_for_device,
	.mapping_error = swiotlb_dma_mapping_error,
	.dma_supported = swiotlb_dma_supported,
	.set_dma_mask = loongson_dma_set_mask
	.dma_supported = loongson_dma_supported,
};

void __init plat_swiotlb_setup(void)