This series moves the Surface Aggregator client device hubs from the Surface Aggregator registry to their own modules. While, at the moment, client device hubs are exclusively instantiated by the registry platform hub driver, this will change in the future. In particular, with the introduction of DT/OF support, which is required for the Surface Pro X. Therefore, this series also slightly restructures the functions used for software-node-based device instantiation, essentially acting as preparation for that. In addition, this series follows-up "platform/surface: aggregator: Add support for client hot-removal" and further removes some code duplication by consolidating more parts of the hub drivers. While at it, also ensure proper handling of firmware node lifetimes and update the copyright year of various files. Maximilian Luz (3): platform/surface: aggregator: Move device registry helper functions to core module platform/surface: aggregator: Move subsystem hub drivers to their own module platform/surface: Update copyright year of various drivers MAINTAINERS | 6 + drivers/platform/surface/Kconfig | 35 +- drivers/platform/surface/Makefile | 1 + drivers/platform/surface/aggregator/Kconfig | 2 +- drivers/platform/surface/aggregator/Makefile | 2 +- drivers/platform/surface/aggregator/bus.c | 151 +++++- drivers/platform/surface/aggregator/bus.h | 2 +- .../platform/surface/aggregator/controller.c | 2 +- .../platform/surface/aggregator/controller.h | 2 +- drivers/platform/surface/aggregator/core.c | 2 +- .../platform/surface/aggregator/ssh_msgb.h | 2 +- .../surface/aggregator/ssh_packet_layer.c | 2 +- .../surface/aggregator/ssh_packet_layer.h | 2 +- .../platform/surface/aggregator/ssh_parser.c | 2 +- .../platform/surface/aggregator/ssh_parser.h | 2 +- .../surface/aggregator/ssh_request_layer.c | 2 +- .../surface/aggregator/ssh_request_layer.h | 2 +- drivers/platform/surface/aggregator/trace.h | 2 +- .../platform/surface/surface_acpi_notify.c | 2 +- .../surface/surface_aggregator_cdev.c | 2 +- .../platform/surface/surface_aggregator_hub.c | 371 +++++++++++++++ .../surface/surface_aggregator_registry.c | 446 +----------------- drivers/platform/surface/surface_dtx.c | 2 +- drivers/platform/surface/surface_gpe.c | 2 +- drivers/platform/surface/surface_hotplug.c | 2 +- .../surface/surface_platform_profile.c | 2 +- include/linux/surface_aggregator/device.h | 52 ++ 27 files changed, 618 insertions(+), 484 deletions(-) create mode 100644 drivers/platform/surface/surface_aggregator_hub.c -- 2.36.1