]> Git Repo - linux.git/blobdiff - drivers/acpi/scan.c
iptables: use match, target and data copy_to_user helpers
[linux.git] / drivers / acpi / scan.c
index 07aa2e649eb137b7fb451dee230bb325ece03016..45dec874ea55b820281457a3ae5de2fe1f12403c 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/slab.h>
 #include <linux/kernel.h>
 #include <linux/acpi.h>
+#include <linux/acpi_iort.h>
 #include <linux/signal.h>
 #include <linux/kthread.h>
 #include <linux/dmi.h>
@@ -1367,6 +1368,38 @@ enum dev_dma_attr acpi_get_dma_attr(struct acpi_device *adev)
                return DEV_DMA_NON_COHERENT;
 }
 
+/**
+ * acpi_dma_configure - Set-up DMA configuration for the device.
+ * @dev: The pointer to the device
+ * @attr: device dma attributes
+ */
+void acpi_dma_configure(struct device *dev, enum dev_dma_attr attr)
+{
+       const struct iommu_ops *iommu;
+
+       iort_set_dma_mask(dev);
+
+       iommu = iort_iommu_configure(dev);
+
+       /*
+        * Assume dma valid range starts at 0 and covers the whole
+        * coherent_dma_mask.
+        */
+       arch_setup_dma_ops(dev, 0, dev->coherent_dma_mask + 1, iommu,
+                          attr == DEV_DMA_COHERENT);
+}
+EXPORT_SYMBOL_GPL(acpi_dma_configure);
+
+/**
+ * acpi_dma_deconfigure - Tear-down DMA configuration for the device.
+ * @dev: The pointer to the device
+ */
+void acpi_dma_deconfigure(struct device *dev)
+{
+       arch_teardown_dma_ops(dev);
+}
+EXPORT_SYMBOL_GPL(acpi_dma_deconfigure);
+
 static void acpi_init_coherency(struct acpi_device *adev)
 {
        unsigned long long cca = 0;
This page took 0.034467 seconds and 4 git commands to generate.