This allows aggregate driver writers to use the device passed to their probe/remove/shutdown functions properly instead of treating it as an opaque pointer. Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> Cc: "Rafael J. Wysocki" <rafael@xxxxxxxxxx> Cc: Rob Clark <robdclark@xxxxxxxxx> Cc: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> Cc: Saravana Kannan <saravanak@xxxxxxxxxx> Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> --- drivers/base/component.c | 13 ------------- include/linux/component.h | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/drivers/base/component.c b/drivers/base/component.c index 155aab7eefa6..1b4c84453319 100644 --- a/drivers/base/component.c +++ b/drivers/base/component.c @@ -62,19 +62,6 @@ struct component_match { struct component_match_array *compare; }; -struct aggregate_device { - const struct component_master_ops *ops; - struct device dev; - struct component_match *match; - - int id; -}; - -static inline struct aggregate_device *to_aggregate_device(struct device *d) -{ - return container_of(d, struct aggregate_device, dev); -} - struct component { struct list_head node; struct aggregate_device *adev; diff --git a/include/linux/component.h b/include/linux/component.h index bc71d34a3416..d19cc3418d12 100644 --- a/include/linux/component.h +++ b/include/linux/component.h @@ -39,7 +39,7 @@ void component_del(struct device *, const struct component_ops *); int component_bind_all(struct device *master, void *master_data); void component_unbind_all(struct device *master, void *master_data); -struct aggregate_device; +struct component_match; /** * struct component_master_ops - callback for the aggregate driver @@ -80,7 +80,18 @@ struct component_master_ops { void (*unbind)(struct device *master); }; -struct component_match; +struct aggregate_device { + const struct component_master_ops *ops; + struct device dev; + struct component_match *match; + + int id; +}; + +static inline struct aggregate_device *to_aggregate_device(struct device *d) +{ + return container_of(d, struct aggregate_device, dev); +} /** * struct aggregate_driver - Aggregate driver (made up of other drivers) -- https://chromeos.dev