]> git.ipfire.org Git - people/ms/linux.git/blobdiff - drivers/gpu/drm/vc4/vc4_drv.c
Backmerge tag 'v5.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds...
[people/ms/linux.git] / drivers / gpu / drm / vc4 / vc4_drv.c
index 0f0f0263e744ccc6338f7ec9172be7efef1af104..292d1b6a01b6fcb54f453ca18c0efbb2f3773ec7 100644 (file)
@@ -267,6 +267,15 @@ static void vc4_match_add_drivers(struct device *dev,
        }
 }
 
+static const struct of_device_id vc4_dma_range_matches[] = {
+       { .compatible = "brcm,bcm2711-hvs" },
+       { .compatible = "brcm,bcm2835-hvs" },
+       { .compatible = "brcm,bcm2835-v3d" },
+       { .compatible = "brcm,cygnus-v3d" },
+       { .compatible = "brcm,vc4-v3d" },
+       {}
+};
+
 static int vc4_drm_bind(struct device *dev)
 {
        struct platform_device *pdev = to_platform_device(dev);
@@ -287,6 +296,16 @@ static int vc4_drm_bind(struct device *dev)
        else
                driver = &vc4_drm_driver;
 
+       node = of_find_matching_node_and_match(NULL, vc4_dma_range_matches,
+                                              NULL);
+       if (node) {
+               ret = of_dma_configure(dev, node, true);
+               of_node_put(node);
+
+               if (ret)
+                       return ret;
+       }
+
        vc4 = devm_drm_dev_alloc(dev, driver, struct vc4_dev, base);
        if (IS_ERR(vc4))
                return PTR_ERR(vc4);