Hi All, While working on adding (proper) VCM support to the atomisp code I found myself copying yet more code from drivers/media/pci/intel/ipu3/cio2-bridge.c into the atomisp code. So I decided that it really was time to factor out the common code (most of the code) from intel/ipu3/cio2-bridge.c into its own helper library and then share it between the atomisp and IPU3 code. This will hopefully also be useful for the ongoing work to upstream IPU6 input system support which also needs this functionality and currently contains a 3th copy of this code in the out of tree driver. This set consists of the following parts: Patch 1 A bugfix for a recent change to the cio2-bridge code Patches 2-8 Cleanup / preparation patches Patch 9 Move the main body of the cio2-bridge.c code into a new shared intel-cio2-bridge module Patch 10 Drop cio2-bridge code copy from atomisp, switching to the shared intel-cio2-bridge module Patch 11 Rework how VCM client instantiation is done so that a device-link can be added from VCM to sensor to fix issues with the VCM power-state being tied to the sensor power state Patch 12 Example patch to show how patch 11 avoids the need for hacks in VCM drivers caused by the shared power state (not intended for merging) Regards, Hans Hans de Goede (12): media: ipu3-cio2: Do not use on stack memory for software_node.name field media: ipu3-cio2: Move initialization of node_names.vcm to cio2_bridge_init_swnode_names() media: ipu3-cio2: Make cio2_bridge_init() take a regular struct device as argument media: ipu3-cio2: Store dev pointer in struct cio2_bridge media: ipu3-cio2: Only keep PLD around while parsing media: ipu3-cio2: Add a cio2_bridge_parse_sensor_fwnode() helper function media: ipu3-cio2: Add a parse_sensor_fwnode callback to cio2_bridge_init() media: ipu3-cio2: Add supported_sensors parameter to cio2_bridge_init() media: ipu3-cio2: Move cio2_bridge_init() code into a new shared intel-cio2-bridge.ko media: atomisp: csi2-bridge: Switch to new common cio2_bridge_init() media: intel-cio2-bridge: Add a runtime-pm device-link between VCM and sensor [RFC] media: dw9719: Drop hack to enable "vsio" regulator MAINTAINERS | 9 + drivers/media/common/Kconfig | 4 + drivers/media/common/Makefile | 1 + drivers/media/common/intel-cio2-bridge.c | 464 ++++++++++++++++++ drivers/media/i2c/dw9719.c | 27 +- drivers/media/pci/intel/ipu3/Kconfig | 1 + drivers/media/pci/intel/ipu3/cio2-bridge.c | 464 +++--------------- drivers/media/pci/intel/ipu3/cio2-bridge.h | 146 ------ drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 7 +- drivers/media/pci/intel/ipu3/ipu3-cio2.h | 7 +- drivers/staging/media/atomisp/Kconfig | 2 + .../staging/media/atomisp/pci/atomisp_csi2.h | 67 --- .../media/atomisp/pci/atomisp_csi2_bridge.c | 307 ++---------- include/media/intel-cio2-bridge.h | 105 ++++ 14 files changed, 723 insertions(+), 888 deletions(-) create mode 100644 drivers/media/common/intel-cio2-bridge.c delete mode 100644 drivers/media/pci/intel/ipu3/cio2-bridge.h create mode 100644 include/media/intel-cio2-bridge.h -- 2.41.0