The suggestion for this change was initially discussed here: [1] This patchset adds and use a helper to create a simple auxiliary device. The goal is to remove boilerplate code that tends to get repeated for simple cases.
Only the last change was tested on actual HW. The other usage of the helper have only been compile tested with x64_64 allmodconfig. There are many other simple cases of auxiliary device creation but those tend to use the 'container_of' trick to allocate the auxiliary device. It is possible to convert these drivers to use the provided helper but the conversion is slightly more complex. NOTE: This series is based on -rc1. Only the first change is meant to applied. The reset will likely wait for the helper to land in mainline. Rebase on the corresponding subsystem will be done when/if necessary. [1]: https://lore.kernel.org/linux-clk/df0a53ee859e450d84e81547099f5f36.sb...@kernel.org Changes in v4: - Added eyeq reset patch from Theo (Thanks) - Changed returned value to 'valid or NULL'. Consumers should return -ENODEV if translation to int is necessary. - Export the non-managed function helpers - Default id to 0 for the simpler devm_auxiliary_device_create() as suggested by Conor - Fix clk-imx8mp-audiomix config problem reported by Ira - Rebased on drm-next for ti-sn65dsi86 - Link to v3: https://lore.kernel.org/r/20250211-aux-device-create-helper-v3-0-7edb50524...@baylibre.com Changes in v3: - Implement Ira's suggestion to use KBUILD_MODNAME by default, same as auxiliary_driver_register() - Link to v2: https://lore.kernel.org/r/20250206-aux-device-create-helper-v2-0-fa6a0f326...@baylibre.com Changes in v2: - Add usage examples, as requested. - Add 'id' as function parameter: Adding the example usage showed that handling IDA allocation was not appropriate and making the usage more complex for simple use case. - Also add 'modname' as parameter: Most driver have been using KBUILD_MODNAME and this actually rarely align with the driver name. - Link to v1: https://lore.kernel.org/r/20241210-aux-device-create-helper-v1-1-5887f4d89...@baylibre.com Signed-off-by: Jerome Brunet <jbru...@baylibre.com> --- Jerome Brunet (7): driver core: auxiliary bus: add device creation helpers reset: mpfs: use the auxiliary device creation drm/bridge: ti-sn65dsi86: use the auxiliary device platform: arm64: lenovo-yoga-c630: use the auxiliary device creation helper clk: eyeq: use the auxiliary device creation helper clk: clk-imx8mp-audiomix: use the auxiliary device creation helper clk: amlogic: axg-audio: use the auxiliary reset driver - take 2 Théo Lebrun (1): reset: eyeq: drop device_set_of_node_from_dev() done by parent drivers/base/auxiliary.c | 108 ++++++++++++++++++++++++++++ drivers/clk/clk-eyeq.c | 57 ++++----------- drivers/clk/imx/clk-imx8mp-audiomix.c | 49 +++---------- drivers/clk/meson/Kconfig | 2 +- drivers/clk/meson/axg-audio.c | 114 ++++-------------------------- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 49 ++----------- drivers/platform/arm64/lenovo-yoga-c630.c | 40 +---------- drivers/reset/reset-eyeq.c | 13 +--- drivers/reset/reset-mpfs.c | 56 ++------------- include/linux/auxiliary_bus.h | 17 +++++ 10 files changed, 176 insertions(+), 329 deletions(-) --- base-commit: 0ed1356af8f629ae807963b7db4e501e3b580bc2 change-id: 20241210-aux-device-create-helper-93141524e523 Best regards, -- Jerome