diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/acpi.h | 8 | ||||
| -rw-r--r-- | include/linux/fwnode.h | 11 | ||||
| -rw-r--r-- | include/linux/irqdomain.h | 4 | ||||
| -rw-r--r-- | include/linux/of.h | 3 |
4 files changed, 6 insertions, 20 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index c749eef1daa1..71b763f0bee9 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
| @@ -57,9 +57,6 @@ static inline acpi_handle acpi_device_handle(struct acpi_device *adev) | |||
| 57 | acpi_fwnode_handle(adev) : NULL) | 57 | acpi_fwnode_handle(adev) : NULL) |
| 58 | #define ACPI_HANDLE(dev) acpi_device_handle(ACPI_COMPANION(dev)) | 58 | #define ACPI_HANDLE(dev) acpi_device_handle(ACPI_COMPANION(dev)) |
| 59 | 59 | ||
| 60 | |||
| 61 | extern const struct fwnode_operations acpi_fwnode_ops; | ||
| 62 | |||
| 63 | static inline struct fwnode_handle *acpi_alloc_fwnode_static(void) | 60 | static inline struct fwnode_handle *acpi_alloc_fwnode_static(void) |
| 64 | { | 61 | { |
| 65 | struct fwnode_handle *fwnode; | 62 | struct fwnode_handle *fwnode; |
| @@ -68,15 +65,14 @@ static inline struct fwnode_handle *acpi_alloc_fwnode_static(void) | |||
| 68 | if (!fwnode) | 65 | if (!fwnode) |
| 69 | return NULL; | 66 | return NULL; |
| 70 | 67 | ||
| 71 | fwnode->type = FWNODE_ACPI_STATIC; | 68 | fwnode->ops = &acpi_static_fwnode_ops; |
| 72 | fwnode->ops = &acpi_fwnode_ops; | ||
| 73 | 69 | ||
| 74 | return fwnode; | 70 | return fwnode; |
| 75 | } | 71 | } |
| 76 | 72 | ||
| 77 | static inline void acpi_free_fwnode_static(struct fwnode_handle *fwnode) | 73 | static inline void acpi_free_fwnode_static(struct fwnode_handle *fwnode) |
| 78 | { | 74 | { |
| 79 | if (WARN_ON(!fwnode || fwnode->type != FWNODE_ACPI_STATIC)) | 75 | if (WARN_ON(!is_acpi_static_node(fwnode))) |
| 80 | return; | 76 | return; |
| 81 | 77 | ||
| 82 | kfree(fwnode); | 78 | kfree(fwnode); |
diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index 50893a1646cf..c5dbc48b55dd 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h | |||
| @@ -14,20 +14,9 @@ | |||
| 14 | 14 | ||
| 15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
| 16 | 16 | ||
| 17 | enum fwnode_type { | ||
| 18 | FWNODE_INVALID = 0, | ||
| 19 | FWNODE_OF, | ||
| 20 | FWNODE_ACPI, | ||
| 21 | FWNODE_ACPI_DATA, | ||
| 22 | FWNODE_ACPI_STATIC, | ||
| 23 | FWNODE_PDATA, | ||
| 24 | FWNODE_IRQCHIP | ||
| 25 | }; | ||
| 26 | |||
| 27 | struct fwnode_operations; | 17 | struct fwnode_operations; |
| 28 | 18 | ||
| 29 | struct fwnode_handle { | 19 | struct fwnode_handle { |
| 30 | enum fwnode_type type; | ||
| 31 | struct fwnode_handle *secondary; | 20 | struct fwnode_handle *secondary; |
| 32 | const struct fwnode_operations *ops; | 21 | const struct fwnode_operations *ops; |
| 33 | }; | 22 | }; |
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index cac77a5c5555..d24273840b79 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h | |||
| @@ -265,9 +265,11 @@ static inline struct fwnode_handle *of_node_to_fwnode(struct device_node *node) | |||
| 265 | return node ? &node->fwnode : NULL; | 265 | return node ? &node->fwnode : NULL; |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | extern const struct fwnode_operations irqchip_fwnode_ops; | ||
| 269 | |||
| 268 | static inline bool is_fwnode_irqchip(struct fwnode_handle *fwnode) | 270 | static inline bool is_fwnode_irqchip(struct fwnode_handle *fwnode) |
| 269 | { | 271 | { |
| 270 | return fwnode && fwnode->type == FWNODE_IRQCHIP; | 272 | return fwnode && fwnode->ops == &irqchip_fwnode_ops; |
| 271 | } | 273 | } |
| 272 | 274 | ||
| 273 | extern void irq_domain_update_bus_token(struct irq_domain *domain, | 275 | extern void irq_domain_update_bus_token(struct irq_domain *domain, |
diff --git a/include/linux/of.h b/include/linux/of.h index 4a8a70916237..cfc34117fc92 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
| @@ -104,7 +104,6 @@ extern const struct fwnode_operations of_fwnode_ops; | |||
| 104 | static inline void of_node_init(struct device_node *node) | 104 | static inline void of_node_init(struct device_node *node) |
| 105 | { | 105 | { |
| 106 | kobject_init(&node->kobj, &of_node_ktype); | 106 | kobject_init(&node->kobj, &of_node_ktype); |
| 107 | node->fwnode.type = FWNODE_OF; | ||
| 108 | node->fwnode.ops = &of_fwnode_ops; | 107 | node->fwnode.ops = &of_fwnode_ops; |
| 109 | } | 108 | } |
| 110 | 109 | ||
| @@ -152,7 +151,7 @@ void of_core_init(void); | |||
| 152 | 151 | ||
| 153 | static inline bool is_of_node(const struct fwnode_handle *fwnode) | 152 | static inline bool is_of_node(const struct fwnode_handle *fwnode) |
| 154 | { | 153 | { |
| 155 | return !IS_ERR_OR_NULL(fwnode) && fwnode->type == FWNODE_OF; | 154 | return !IS_ERR_OR_NULL(fwnode) && fwnode->ops == &of_fwnode_ops; |
| 156 | } | 155 | } |
| 157 | 156 | ||
| 158 | #define to_of_node(__fwnode) \ | 157 | #define to_of_node(__fwnode) \ |
