Commit 334304ac authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

dma-mapping: don't return errors from dma_set_max_seg_size



A NULL dev->dma_parms indicates either a bus that is not DMA capable or
grave bug in the implementation of the bus code.

There isn't much the driver can do in terms of error handling for either
case, so just warn and continue as DMA operations will fail anyway.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org> # For MMC
parent 560a861a
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -447,9 +447,7 @@ static int init_pci(struct qaic_device *qdev, struct pci_dev *pdev)
	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
	if (ret)
		return ret;
	ret = dma_set_max_seg_size(&pdev->dev, UINT_MAX);
	if (ret)
		return ret;
	dma_set_max_seg_size(&pdev->dev, UINT_MAX);

	qdev->bar_0 = devm_ioremap_resource(&pdev->dev, &pdev->resource[0]);
	if (IS_ERR(qdev->bar_0))
+1 −3
Original line number Diff line number Diff line
@@ -598,9 +598,7 @@ static int idma64_probe(struct idma64_chip *chip)

	idma64->dma.dev = chip->sysdev;

	ret = dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK);
	if (ret)
		return ret;
	dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK);

	ret = dma_async_device_register(&idma64->dma);
	if (ret)
+1 −4
Original line number Diff line number Diff line
@@ -3163,10 +3163,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
	 * This is the limit for transfers with a buswidth of 1, larger
	 * buswidths will have larger limits.
	 */
	ret = dma_set_max_seg_size(&adev->dev, 1900800);
	if (ret)
		dev_err(&adev->dev, "unable to set the seg size\n");

	dma_set_max_seg_size(&adev->dev, 1900800);

	init_pl330_debugfs(pl330);
	dev_info(&adev->dev,
+1 −5
Original line number Diff line number Diff line
@@ -1325,11 +1325,7 @@ static int bam_dma_probe(struct platform_device *pdev)

	/* set max dma segment size */
	bdev->common.dev = bdev->dev;
	ret = dma_set_max_seg_size(bdev->common.dev, BAM_FIFO_SIZE);
	if (ret) {
		dev_err(bdev->dev, "cannot set maximum segment size\n");
		goto err_bam_channel_exit;
	}
	dma_set_max_seg_size(bdev->common.dev, BAM_FIFO_SIZE);

	platform_set_drvdata(pdev, bdev);

+1 −3
Original line number Diff line number Diff line
@@ -1868,9 +1868,7 @@ static int rcar_dmac_probe(struct platform_device *pdev)

	dmac->dev = &pdev->dev;
	platform_set_drvdata(pdev, dmac);
	ret = dma_set_max_seg_size(dmac->dev, RCAR_DMATCR_MASK);
	if (ret)
		return ret;
	dma_set_max_seg_size(dmac->dev, RCAR_DMATCR_MASK);

	ret = dma_set_mask_and_coherent(dmac->dev, DMA_BIT_MASK(40));
	if (ret)
Loading