The patch series added a new bus type vchiq_bus_type and registers child devices in order to move them away from using platform device/driver. Tested on RPi-3-b with media tree master branch. Patch 1/5 and 2/5 adds a new bus_type and registers them to vchiq interface Patch 3/5 and 4/5 moves the bcm2835-camera and bcm2835-audio to the new bus respectively Patch 5/5 removes a platform registeration helper which is no longer required. Changes in v10: - fix dma_attr WARN issue with bcm2835-audio module loading - Unregister bus on parent platform device fails to register - Reword commit to highlight bcm2835_audio to bcm2835-audio name change Changes in v9: - Fix module autoloading - Implement bus_type's probe() callback to load drivers - Implement bus_type's uevent() to make sure appropriate drivers are loaded when device are registed from vchiq. Changes in v8: - Drop dual licensing. Instead use GPL-2.0 only for patch 1/5 Changes in v7: (5 out of 6 patches from v6 merged) - Split the main patch (6/6) as requested. - Use struct vchiq_device * instead of struct device * in all bus functions. - Drop additional name attribute displayed in sysfs (redundant info) - Document vchiq_interface doesn't enumerate device discovery - remove EXPORT_SYMBOL_GPL(vchiq_bus_type) Changes in v6: - Split struct device and struct driver wrappers in vchiq_device.[ch] - Move vchiq_bus_type definition to vchiq_device.[ch] as well - return error on bus_register() failure - drop dma_set_mask_and_coherent - trivial variable name change Changes in v5: - Fixup missing "staging: " in commits' subject line - No code changes from v4 Changes in v4: - Introduce patches to drop include directives from Makefile Changes in v3: - Rework entirely to replace platform devices/driver model -v2: https://lore.kernel.org/all/20221222191500.515795-1-umang.jain@xxxxxxxxxxxxxxxx/ -v1: https://lore.kernel.org/all/20221220084404.19280-1-umang.jain@xxxxxxxxxxxxxxxx/ Umang Jain (5): staging: vc04_services: vchiq_arm: Add new bus type and device type staging: vc04_services: vchiq_arm: Register vchiq_bus_type staging: bcm2835-camera: Register bcm2835-camera with vchiq_bus_type staging: bcm2835-audio: Register bcm2835-audio with vchiq_bus_type staging: vc04_services: vchiq_arm: Remove vchiq_register_child() drivers/staging/vc04_services/Makefile | 1 + .../vc04_services/bcm2835-audio/bcm2835.c | 20 ++-- .../bcm2835-camera/bcm2835-camera.c | 17 +-- .../interface/vchiq_arm/vchiq_arm.c | 52 ++++---- .../interface/vchiq_arm/vchiq_device.c | 111 ++++++++++++++++++ .../interface/vchiq_arm/vchiq_device.h | 54 +++++++++ 6 files changed, 208 insertions(+), 47 deletions(-) create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_device.c create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_device.h base-commit: 9a5d660fdb25d20748d7f9e9559c86073c3bb368 -- 2.41.0