Merge tag 'pm-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
[linux-2.6-microblaze.git] / drivers / base / platform.c
index 9460139..dff82a3 100644 (file)
@@ -1129,6 +1129,22 @@ int platform_pm_restore(struct device *dev)
 
 #endif /* CONFIG_HIBERNATE_CALLBACKS */
 
+int platform_dma_configure(struct device *dev)
+{
+       enum dev_dma_attr attr;
+       int ret = 0;
+
+       if (dev->of_node) {
+               ret = of_dma_configure(dev, dev->of_node, true);
+       } else if (has_acpi_companion(dev)) {
+               attr = acpi_get_dma_attr(to_acpi_device_node(dev->fwnode));
+               if (attr != DEV_DMA_NOT_SUPPORTED)
+                       ret = acpi_dma_configure(dev, attr);
+       }
+
+       return ret;
+}
+
 static const struct dev_pm_ops platform_dev_pm_ops = {
        .runtime_suspend = pm_generic_runtime_suspend,
        .runtime_resume = pm_generic_runtime_resume,
@@ -1140,8 +1156,8 @@ struct bus_type platform_bus_type = {
        .dev_groups     = platform_dev_groups,
        .match          = platform_match,
        .uevent         = platform_uevent,
+       .dma_configure  = platform_dma_configure,
        .pm             = &platform_dev_pm_ops,
-       .force_dma      = true,
 };
 EXPORT_SYMBOL_GPL(platform_bus_type);