Commit 2b815342 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge branch 'dt/property-move' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull DT-related device properties changes from Rob Herring.

* 'dt/property-move' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  of: Support const and non-const use for to_of_node()
  of: Make of_fwnode_handle() safer
  of: Move OF property and graph API from base.c to property.c
parents 41f1830f d20dc149
obj-y = base.o device.o platform.o obj-y = base.o device.o platform.o property.o
obj-$(CONFIG_OF_DYNAMIC) += dynamic.o obj-$(CONFIG_OF_DYNAMIC) += dynamic.o
obj-$(CONFIG_OF_FLATTREE) += fdt.o obj-$(CONFIG_OF_FLATTREE) += fdt.o
obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o obj-$(CONFIG_OF_EARLY_FLATTREE) += fdt_address.o
......
This diff is collapsed.
This diff is collapsed.
...@@ -148,18 +148,28 @@ extern raw_spinlock_t devtree_lock; ...@@ -148,18 +148,28 @@ extern raw_spinlock_t devtree_lock;
#ifdef CONFIG_OF #ifdef CONFIG_OF
void of_core_init(void); void of_core_init(void);
static inline bool is_of_node(struct fwnode_handle *fwnode) static inline bool is_of_node(const struct fwnode_handle *fwnode)
{ {
return !IS_ERR_OR_NULL(fwnode) && fwnode->type == FWNODE_OF; return !IS_ERR_OR_NULL(fwnode) && fwnode->type == FWNODE_OF;
} }
static inline struct device_node *to_of_node(struct fwnode_handle *fwnode) #define to_of_node(__fwnode) \
{ ({ \
return is_of_node(fwnode) ? typeof(__fwnode) __to_of_node_fwnode = (__fwnode); \
container_of(fwnode, struct device_node, fwnode) : NULL; \
} is_of_node(__to_of_node_fwnode) ? \
container_of(__to_of_node_fwnode, \
#define of_fwnode_handle(node) (&(node)->fwnode) struct device_node, fwnode) : \
NULL; \
})
#define of_fwnode_handle(node) \
({ \
typeof(node) __of_fwnode_handle_node = (node); \
\
__of_fwnode_handle_node ? \
&__of_fwnode_handle_node->fwnode : NULL; \
})
static inline bool of_have_populated_dt(void) static inline bool of_have_populated_dt(void)
{ {
...@@ -533,12 +543,12 @@ static inline void of_core_init(void) ...@@ -533,12 +543,12 @@ static inline void of_core_init(void)
{ {
} }
static inline bool is_of_node(struct fwnode_handle *fwnode) static inline bool is_of_node(const struct fwnode_handle *fwnode)
{ {
return false; return false;
} }
static inline struct device_node *to_of_node(struct fwnode_handle *fwnode) static inline struct device_node *to_of_node(const struct fwnode_handle *fwnode)
{ {
return NULL; return NULL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment