drm/v3d: Set dma_mask as well as coherent_dma_mask
authorPhil Elwell <phil@raspberrypi.org>
Wed, 23 Dec 2020 20:35:12 +0000 (21:35 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 6 Jan 2021 17:38:57 +0000 (18:38 +0100)
Both coherent_dma_mask and dma_mask act as constraints on allocations
and bounce buffer usage, so be sure to set dma_mask to the appropriate
value otherwise the effective mask could be incorrect.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/1608755714-18233-3-git-send-email-stefan.wahren@i2se.com
drivers/gpu/drm/v3d/v3d_drv.c

index 42d401fd244e38a248e8281816d032e5302d88fa..99e22beea90b1dedecdda0e78112ced6f3c285d7 100644 (file)
@@ -232,8 +232,8 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
                return ret;
 
        mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
-       dev->coherent_dma_mask =
-               DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH));
+       dma_set_mask_and_coherent(dev,
+               DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH)));
        v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
 
        ident1 = V3D_READ(V3D_HUB_IDENT1);