Hello all This series adds support to the ipu3-cio2 driver for fwnode connections between cio2 and sensors to be defined via software_nodes. The final patch in the series deals wholly with those changes - the preceding patches are either supporting changes to accommodate that or incidental fixes along the way: 1/9 adds a function to drivers/base/swnode.c unwinding arrays of software nodes in reverse order 2/9 uses that function in lib/test_printf.c 3/9 fixes what seems to me to be a bug in the existing swnode.c code in that software_node_get_next_child() does not increase the refcount of the returned node (in contrast to, for example, of_get_next_child_node() which does increase the count) 4/9 adds the fwnode_graph*() family of functions to the software_node implementation 5/9 adds a T: entry to MAINTAINERS for the ipu3-cio2 driver 6/9 renames the ipu3-cio2.c file to ipu3-cio2-main.c and fixes Makefile to accommodate that change 7/9 alters the ipu3-cio2 driver to check if the pci_dev's fwnode is a software_node and pass flags to fwnode_graph_get_endpoint_by_id() if so 8/9 alters match_fwnode() in v4l2-async.c to additionally try to match on a fwnode_handle's secondary if the primary doesn't match 9/9 alters the ipu3-cio2 driver to do the actual building of software_node connections between the sensor devices and the cio2 device. This is still not ready for integration - hence the RFC label - as there is ongoing work to extend the ipu3-cio2 driver further to parse ACPI to discover resources such as regulators and GPIOs that are defined there in unusual ways and map them to the sensor devices so that their drivers can consume them transparently through the usual frameworks. Given this has changed quite extensively from v2 though, I wanted to submit it for feedback at this point in case it needs further large scale change. Thanks Dan Daniel Scally (8): software_node: Add helper function to unregister arrays of software_nodes ordered parent to child lib/test_printf.c: Use helper function to unwind array of software_nodes software_node: Fix failure to hold refcount in software_node_get_next_child ipu3-cio2: Add T: entry to MAINTAINERS ipu3-cio2: Rename ipu3-cio2.c to allow module to be built from multiple sources files retaining ipu3-cio2 name ipu3-cio2: Check if pci_dev->dev's fwnode is a software_node in cio2_parse_firmware() and set FWNODE_GRAPH_DEVICE_DISABLED if so media: v4l2-core: v4l2-async: Check possible match in match_fwnode based on sd->fwnode->secondary ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows Heikki Krogerus (1): software_node: Add support for fwnode_graph*() family of functions MAINTAINERS | 2 + drivers/base/swnode.c | 143 +++++++- drivers/media/pci/intel/ipu3/Kconfig | 18 + drivers/media/pci/intel/ipu3/Makefile | 3 + drivers/media/pci/intel/ipu3/cio2-bridge.c | 327 ++++++++++++++++++ drivers/media/pci/intel/ipu3/cio2-bridge.h | 94 +++++ .../ipu3/{ipu3-cio2.c => ipu3-cio2-main.c} | 30 +- drivers/media/pci/intel/ipu3/ipu3-cio2.h | 9 + drivers/media/v4l2-core/v4l2-async.c | 8 + include/linux/property.h | 1 + lib/test_printf.c | 4 +- 11 files changed, 632 insertions(+), 7 deletions(-) create mode 100644 drivers/media/pci/intel/ipu3/cio2-bridge.c create mode 100644 drivers/media/pci/intel/ipu3/cio2-bridge.h rename drivers/media/pci/intel/ipu3/{ipu3-cio2.c => ipu3-cio2-main.c} (98%) -- 2.17.1