dmaengine: gpi: Set dma mask to 64
GPI driver need not consider the IOVA range and size when setting the
dma mask, which otherwise could result in a too low value for the mask
on 32-bit builds. Set it to 64 unconditionally.
Change-Id: I4ec1fb60dd6b62570b2c4a2b1f30c4349871d544
Signed-off-by: Siva Kumar Akkireddi <sivaa@codeaurora.org>
diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c
index 065b765..fff2ae9 100644
--- a/drivers/dma/qcom/gpi.c
+++ b/drivers/dma/qcom/gpi.c
@@ -2564,22 +2564,6 @@
return arm_iommu_create_mapping(&platform_bus_type, base, size);
}
-static int gpi_dma_mask(struct gpi_dev *gpi_dev)
-{
- int mask = 64;
-
- if (gpi_dev->smmu_cfg && !(gpi_dev->smmu_cfg & GPI_SMMU_S1_BYPASS)) {
- unsigned long addr;
-
- addr = gpi_dev->iova_base + gpi_dev->iova_size + 1;
- mask = find_last_bit(&addr, 64);
- }
-
- GPI_LOG(gpi_dev, "Setting dma mask to %d\n", mask);
-
- return dma_set_mask(gpi_dev->dev, DMA_BIT_MASK(mask));
-}
-
static int gpi_smmu_init(struct gpi_dev *gpi_dev)
{
struct dma_iommu_mapping *mapping = NULL;
@@ -2643,9 +2627,10 @@
}
}
- ret = gpi_dma_mask(gpi_dev);
+ GPI_LOG(gpi_dev, "Setting dma mask to 64\n");
+ ret = dma_set_mask(gpi_dev->dev, DMA_BIT_MASK(64));
if (ret) {
- GPI_ERR(gpi_dev, "Error setting dma_mask, ret:%d\n", ret);
+ GPI_ERR(gpi_dev, "Error setting dma_mask to 64, ret:%d\n", ret);
goto error_set_mask;
}