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

Commit b96710e5 authored by Per Forlin's avatar Per Forlin Committed by Fabio Baltieri
Browse files

dmaengine: ste_dma40: set dma max seg size



Maximum DMA seg size is (0xffff x data_width).  If max seg
size is not set it deafults to 64k.  This results in failure
if transferring 64k in byte mode.
Large seg sizes may be supported by splitting large transfer.

Signed-off-by: default avatarPer Forlin <per.forlin@stericsson.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Acked-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarFabio Baltieri <fabio.baltieri@linaro.org>
parent 8a5d2039
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -344,6 +344,7 @@ struct d40_base {
	int				  irq;
	int				  num_phy_chans;
	int				  num_log_chans;
	struct device_dma_parameters	  dma_parms;
	struct dma_device		  dma_both;
	struct dma_device		  dma_slave;
	struct dma_device		  dma_memcpy;
@@ -3362,6 +3363,13 @@ static int __init d40_probe(struct platform_device *pdev)
	if (err)
		goto failure;

	base->dev->dma_parms = &base->dma_parms;
	err = dma_set_max_seg_size(base->dev, STEDMA40_MAX_SEG_SIZE);
	if (err) {
		d40_err(&pdev->dev, "Failed to set dma max seg size\n");
		goto failure;
	}

	d40_hw_init(base);

	dev_info(base->dev, "initialized\n");