Commit f0ed939b authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Hans Verkuil
Browse files

media: pt3: Use dma_set_mask_and_coherent() and simplify code

Use dma_set_mask_and_coherent() instead of unrolling it with some
dma_set_mask()+dma_set_coherent_mask().

Moreover, as stated in [1], dma_set_mask() with a 64-bit mask will never
fail if dev->dma_mask is non-NULL.
So, if it fails, the 32 bits case will also fail for the same reason.

Simplify code and remove some dead code accordingly.

[1]: https://lkml.org/lkml/2021/6/7/398



Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: default avatarAkihiro Tsukada <tskd08@gmail.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent 6e616668
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -707,19 +707,11 @@ static int pt3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
	if (ret < 0)
		return ret;

	ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
	if (ret == 0)
		dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
	else {
		ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
		if (ret == 0)
			dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
		else {
	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
	if (ret) {
		dev_err(&pdev->dev, "Failed to set DMA mask\n");
		return ret;
	}
		dev_info(&pdev->dev, "Use 32bit DMA\n");
	}

	pt3 = devm_kzalloc(&pdev->dev, sizeof(*pt3), GFP_KERNEL);
	if (!pt3)