diff options
| author | Will Deacon <will.deacon@arm.com> | 2014-08-27 11:20:32 -0400 |
|---|---|---|
| committer | Will Deacon <will.deacon@arm.com> | 2014-12-01 11:50:38 -0500 |
| commit | 7eba1d51485197fa77c43c42eae3ce04b4b1c1c0 (patch) | |
| tree | ace7a25c7d2aaf0e6250d60db0ee08faf55bf201 /include/linux | |
| parent | d0f60a44f5120a8e1c48995285c7d8d1e4915b35 (diff) | |
iommu: provide helper function to configure an IOMMU for an of master
The generic IOMMU device-tree bindings can be used to add arbitrary OF
masters to an IOMMU with a compliant binding.
This patch introduces of_iommu_configure, which does exactly that.
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Joerg Roedel <jroedel@suse.de>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/of_iommu.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/of_iommu.h b/include/linux/of_iommu.h index 5762cdc8effe..d03abbb11c34 100644 --- a/include/linux/of_iommu.h +++ b/include/linux/of_iommu.h | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef __OF_IOMMU_H | 1 | #ifndef __OF_IOMMU_H |
| 2 | #define __OF_IOMMU_H | 2 | #define __OF_IOMMU_H |
| 3 | 3 | ||
| 4 | #include <linux/device.h> | ||
| 4 | #include <linux/iommu.h> | 5 | #include <linux/iommu.h> |
| 5 | #include <linux/of.h> | 6 | #include <linux/of.h> |
| 6 | 7 | ||
| @@ -11,6 +12,7 @@ extern int of_get_dma_window(struct device_node *dn, const char *prefix, | |||
| 11 | size_t *size); | 12 | size_t *size); |
| 12 | 13 | ||
| 13 | extern void of_iommu_init(void); | 14 | extern void of_iommu_init(void); |
| 15 | extern struct iommu_ops *of_iommu_configure(struct device *dev); | ||
| 14 | 16 | ||
| 15 | #else | 17 | #else |
| 16 | 18 | ||
| @@ -22,6 +24,10 @@ static inline int of_get_dma_window(struct device_node *dn, const char *prefix, | |||
| 22 | } | 24 | } |
| 23 | 25 | ||
| 24 | static inline void of_iommu_init(void) { } | 26 | static inline void of_iommu_init(void) { } |
| 27 | static inline struct iommu_ops *of_iommu_configure(struct device *dev) | ||
| 28 | { | ||
| 29 | return NULL; | ||
| 30 | } | ||
| 25 | 31 | ||
| 26 | #endif /* CONFIG_OF_IOMMU */ | 32 | #endif /* CONFIG_OF_IOMMU */ |
| 27 | 33 | ||
