[PATCH] usb: host: xhci-plat: Remove useless DMA-32 fallback configuration

From: Christophe JAILLET
Date: Sat Jan 15 2022 - 03:07:23 EST


As stated in [1], dma_set_mask() with a 64-bit mask never fails 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://lore.kernel.org/linux-kernel/YL3vSPK5DXTNvgdx@xxxxxxxxxxxxx/#t

Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
---
The "if (ret)" is also useless because
dma_coerce_mask_and_coherent(..., 64) + dma_set_mask_and_coherent(..., 64)
can't fail according to [1].
However, I've left it as-is because it is a common pattern.
It could be replaced by a comment explaining why, but looks like an
overkill to me.
---
drivers/usb/host/xhci-plat.c | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index c1edcc9b13ce..93b321682b35 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -226,20 +226,13 @@ static int xhci_plat_probe(struct platform_device *pdev)
if (!sysdev)
sysdev = &pdev->dev;

- /* Try to set 64-bit DMA first */
if (WARN_ON(!sysdev->dma_mask))
/* Platform did not initialize dma_mask */
- ret = dma_coerce_mask_and_coherent(sysdev,
- DMA_BIT_MASK(64));
+ ret = dma_coerce_mask_and_coherent(sysdev, DMA_BIT_MASK(64));
else
ret = dma_set_mask_and_coherent(sysdev, DMA_BIT_MASK(64));
-
- /* If seting 64-bit DMA mask fails, fall back to 32-bit DMA mask */
- if (ret) {
- ret = dma_set_mask_and_coherent(sysdev, DMA_BIT_MASK(32));
- if (ret)
- return ret;
- }
+ if (ret)
+ return ret;

pm_runtime_set_active(&pdev->dev);
pm_runtime_enable(&pdev->dev);
--
2.32.0