aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/platform.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r--drivers/base/platform.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 9460139d9b02..dff82a3c2caa 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -1129,6 +1129,22 @@ int platform_pm_restore(struct device *dev)
1129 1129
1130#endif /* CONFIG_HIBERNATE_CALLBACKS */ 1130#endif /* CONFIG_HIBERNATE_CALLBACKS */
1131 1131
1132int platform_dma_configure(struct device *dev)
1133{
1134 enum dev_dma_attr attr;
1135 int ret = 0;
1136
1137 if (dev->of_node) {
1138 ret = of_dma_configure(dev, dev->of_node, true);
1139 } else if (has_acpi_companion(dev)) {
1140 attr = acpi_get_dma_attr(to_acpi_device_node(dev->fwnode));
1141 if (attr != DEV_DMA_NOT_SUPPORTED)
1142 ret = acpi_dma_configure(dev, attr);
1143 }
1144
1145 return ret;
1146}
1147
1132static const struct dev_pm_ops platform_dev_pm_ops = { 1148static const struct dev_pm_ops platform_dev_pm_ops = {
1133 .runtime_suspend = pm_generic_runtime_suspend, 1149 .runtime_suspend = pm_generic_runtime_suspend,
1134 .runtime_resume = pm_generic_runtime_resume, 1150 .runtime_resume = pm_generic_runtime_resume,
@@ -1140,8 +1156,8 @@ struct bus_type platform_bus_type = {
1140 .dev_groups = platform_dev_groups, 1156 .dev_groups = platform_dev_groups,
1141 .match = platform_match, 1157 .match = platform_match,
1142 .uevent = platform_uevent, 1158 .uevent = platform_uevent,
1159 .dma_configure = platform_dma_configure,
1143 .pm = &platform_dev_pm_ops, 1160 .pm = &platform_dev_pm_ops,
1144 .force_dma = true,
1145}; 1161};
1146EXPORT_SYMBOL_GPL(platform_bus_type); 1162EXPORT_SYMBOL_GPL(platform_bus_type);
1147 1163