}
 }
 
+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);
                vc4_drm_driver.driver_features &= ~DRIVER_RENDER;
        of_node_put(node);
 
+       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, &vc4_drm_driver, struct vc4_dev, base);
        if (IS_ERR(vc4))
                return PTR_ERR(vc4);