]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/radeon: simplify and cleanup setting the dma mask
authorChristoph Hellwig <hch@lst.de>
Thu, 15 Aug 2019 07:27:02 +0000 (09:27 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Aug 2019 15:51:00 +0000 (10:51 -0500)
Use dma_set_mask_and_coherent to set both masks in one go, and remove
the no longer required fallback, as the kernel now always accepts
larger than required DMA masks.  Fail the driver probe if we can't
set the DMA mask, as that means the system can only support a larger
mask.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_device.c

index b8cc058266672144d36f7330a9ba79f66cebc83c..88eb7cb522bb7dedbad56a28f2e6176d72e31e93 100644 (file)
@@ -1382,15 +1382,10 @@ int radeon_device_init(struct radeon_device *rdev,
                dma_bits = 32;
 #endif
 
-       r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
+       r = dma_set_mask_and_coherent(&rdev->pdev->dev, DMA_BIT_MASK(dma_bits));
        if (r) {
-               dma_bits = 32;
                pr_warn("radeon: No suitable DMA available\n");
-       }
-       r = pci_set_consistent_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
-       if (r) {
-               pci_set_consistent_dma_mask(rdev->pdev, DMA_BIT_MASK(32));
-               pr_warn("radeon: No coherent DMA available\n");
+               return r;
        }
        rdev->need_swiotlb = drm_need_swiotlb(dma_bits);