OMAP3 ISP: Set DMA segment size
Commit Message
When utilizing userptr buffers for output from the CCDC, the
DMA subsystem maps buffers into the virtual address space.
However, the DMA subsystem also has a configurable parameter
for what the largest segment to allocate is out of the virtual
address space as well.
Since we need contiguous buffers for the memory space from the
OMAP3 ISP's vantage point, we need to configure the segments
to be at least as large as the largest buffer we expect.
Signed-off-by: Tim Nordell <tim.nordell@logicpd.com>
---
drivers/media/platform/omap3isp/isp.c | 8 ++++++++
1 file changed, 8 insertions(+)
@@ -2170,6 +2170,14 @@ static int isp_attach_iommu(struct isp_device *isp)
goto error;
}
+ isp->dev->dma_parms = devm_kzalloc(isp->dev,
+ sizeof(*isp->dev->dma_parms), GFP_KERNEL);
+ ret = dma_set_max_seg_size(isp->dev, SZ_32M);
+ if (ret < 0) {
+ dev_err(isp->dev, "failed to set max segment size for dma\n");
+ goto error;
+ }
+
return 0;
error: