diff options
Diffstat (limited to 'include/linux/of_reserved_mem.h')
-rw-r--r-- | include/linux/of_reserved_mem.h | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/include/linux/of_reserved_mem.h b/include/linux/of_reserved_mem.h index c201060e0c6d..f8e1992d6423 100644 --- a/include/linux/of_reserved_mem.h +++ b/include/linux/of_reserved_mem.h | |||
@@ -1,7 +1,8 @@ | |||
1 | #ifndef __OF_RESERVED_MEM_H | 1 | #ifndef __OF_RESERVED_MEM_H |
2 | #define __OF_RESERVED_MEM_H | 2 | #define __OF_RESERVED_MEM_H |
3 | 3 | ||
4 | struct device; | 4 | #include <linux/device.h> |
5 | |||
5 | struct of_phandle_args; | 6 | struct of_phandle_args; |
6 | struct reserved_mem_ops; | 7 | struct reserved_mem_ops; |
7 | 8 | ||
@@ -28,7 +29,9 @@ typedef int (*reservedmem_of_init_fn)(struct reserved_mem *rmem); | |||
28 | _OF_DECLARE(reservedmem, name, compat, init, reservedmem_of_init_fn) | 29 | _OF_DECLARE(reservedmem, name, compat, init, reservedmem_of_init_fn) |
29 | 30 | ||
30 | #ifdef CONFIG_OF_RESERVED_MEM | 31 | #ifdef CONFIG_OF_RESERVED_MEM |
31 | int of_reserved_mem_device_init(struct device *dev); | 32 | |
33 | int of_reserved_mem_device_init_by_idx(struct device *dev, | ||
34 | struct device_node *np, int idx); | ||
32 | void of_reserved_mem_device_release(struct device *dev); | 35 | void of_reserved_mem_device_release(struct device *dev); |
33 | 36 | ||
34 | int early_init_dt_alloc_reserved_memory_arch(phys_addr_t size, | 37 | int early_init_dt_alloc_reserved_memory_arch(phys_addr_t size, |
@@ -42,7 +45,8 @@ void fdt_init_reserved_mem(void); | |||
42 | void fdt_reserved_mem_save_node(unsigned long node, const char *uname, | 45 | void fdt_reserved_mem_save_node(unsigned long node, const char *uname, |
43 | phys_addr_t base, phys_addr_t size); | 46 | phys_addr_t base, phys_addr_t size); |
44 | #else | 47 | #else |
45 | static inline int of_reserved_mem_device_init(struct device *dev) | 48 | static inline int of_reserved_mem_device_init_by_idx(struct device *dev, |
49 | struct device_node *np, int idx) | ||
46 | { | 50 | { |
47 | return -ENOSYS; | 51 | return -ENOSYS; |
48 | } | 52 | } |
@@ -53,4 +57,19 @@ static inline void fdt_reserved_mem_save_node(unsigned long node, | |||
53 | const char *uname, phys_addr_t base, phys_addr_t size) { } | 57 | const char *uname, phys_addr_t base, phys_addr_t size) { } |
54 | #endif | 58 | #endif |
55 | 59 | ||
60 | /** | ||
61 | * of_reserved_mem_device_init() - assign reserved memory region to given device | ||
62 | * @dev: Pointer to the device to configure | ||
63 | * | ||
64 | * This function assigns respective DMA-mapping operations based on the first | ||
65 | * reserved memory region specified by 'memory-region' property in device tree | ||
66 | * node of the given device. | ||
67 | * | ||
68 | * Returns error code or zero on success. | ||
69 | */ | ||
70 | static inline int of_reserved_mem_device_init(struct device *dev) | ||
71 | { | ||
72 | return of_reserved_mem_device_init_by_idx(dev, dev->of_node, 0); | ||
73 | } | ||
74 | |||
56 | #endif /* __OF_RESERVED_MEM_H */ | 75 | #endif /* __OF_RESERVED_MEM_H */ |