staging: vc04_services: bcm2835-camera: Explicitly set DMA mask
authorUmang Jain <umang.jain@ideasonboard.com>
Sat, 23 Sep 2023 14:31:55 +0000 (20:01 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Oct 2023 08:04:44 +0000 (10:04 +0200)
In the following patches, vchiq_arm will be migrated to create and use
its own bus and all the vchiq drivers (bcm2835-camera, bcm2835-audio)
will be registered to it. Since the platform driver/device model
internally sets the DMA mask for its registered devices, we would have
to do it ourself when we remove the platform driver/device registration
for vchiq devices.

This patch explicitly sets the DMA mask to bcm2835-camera so as not
to introduce a regression when we move away from platform
device/driver model.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Link: https://lore.kernel.org/r/20230923143200.268063-2-umang.jain@ideasonboard.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c

index 346d00df815a6e34c7b13f59bc608f8df3e8e650..fcad5118f3e890042070a8852b79832ef9f0807d 100644 (file)
@@ -1852,6 +1852,12 @@ static int bcm2835_mmal_probe(struct platform_device *pdev)
        unsigned int resolutions[MAX_BCM2835_CAMERAS][2];
        int i;
 
+       ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+       if (ret) {
+               dev_err(&pdev->dev, "dma_set_mask_and_coherent failed: %d\n", ret);
+               return ret;
+       }
+
        ret = vchiq_mmal_init(&instance);
        if (ret < 0)
                return ret;