[PATCH v2 00/12] Add functionality to ipu3-cio2 driver allowing software_node connections to sensors on platforms designed for Windows

From: Daniel Scally
Date: Thu Dec 17 2020 - 18:44:35 EST


Hello all

Previous version:
https://lore.kernel.org/linux-media/20201130133129.1024662-1-djrscally@xxxxxxxxx/T/#m91934e12e3d033da2e768e952ea3b4a125ee3e67
The RFC version before that:
https://lore.kernel.org/linux-media/20201019225903.14276-1-djrscally@xxxxxxxxx/

This series is to start adding support for webcams on laptops with ACPI tables
designed for use with CIO2 on Windows. This problem has two main parts; the
first part, which is handled in this series, is extending the ipu3-cio2
driver to allow for patching the firmware via software_nodes if endpoints
aren't defined by ACPI. The second is adding a new driver to handle power,
clocks and GPIO pins defined in DSDT tables in an awkward way. I decided to
split that second part out from this series, and instead give it its own
series (a v2 of which should land "soon"). The reasons for that are:

1. It's a logically separate change anyway
2. The recipients list was getting really long and
3. That probably meant that handling merge for all of this in one go was
going to be impractically awkward.

Given how few comments the remaining patches of this series received in the
last posting, I'm hopeful that most or all of it could get picked up for 5.12.
We touch a few different areas:

lib (with an ack already)
lib/test_printf.c: Use helper function to unwind array of
software_nodes

drivers/base
software_node: Fix refcounts in software_node_get_next_child()
property: Return true in fwnode_device_is_available for NULL ops
property: Call fwnode_graph_get_endpoint_by_id() for fwnode->secondary
software_node: Enforce parent before child ordering of nodes arrays
software_node: unregister software_nodes in reverse order

drivers/acpi
acpi: Add acpi_dev_get_next_match_dev() and helper macro

drivers/media
media: v4l2-core: v4l2-async: Check sd->fwnode->secondary in
match_fwnode()
ipu3-cio2: Add T: entry to MAINTAINERS
ipu3-cio2: Rename ipu3-cio2.c
ipu3-cio2: Add cio2-bridge to ipu3-cio2 driver

Given that, it feels sensible to me to try and merge them all through a single
tree; I was hoping the other maintainers would be amenable to having everything
merged through the media tree. Mauro; if that plan is ok (and of course assuming
that the rest of the patches are acked by their respective maintainers too),
could we get a dedicated feature branch just in case the following series ends
up being ready in time too?

Series-level changelog:
- Squashed the patches enforcing ordering in register/unregister_nodes()

More details of changes on each patch.

Comments as always very welcome - and thanks to everyone for all your help on
this so far, hope I've addressed everything from last time.

Dan

Daniel Scally (11):
software_node: Fix refcounts in software_node_get_next_child()
property: Return true in fwnode_device_is_available for NULL ops
property: Call fwnode_graph_get_endpoint_by_id() for fwnode->secondary
software_node: Enforce parent before child ordering of nodes arrays
software_node: unregister software_nodes in reverse order
lib/test_printf.c: Use helper function to unwind array of
software_nodes
ipu3-cio2: Add T: entry to MAINTAINERS
ipu3-cio2: Rename ipu3-cio2.c
media: v4l2-core: v4l2-async: Check sd->fwnode->secondary in
match_fwnode()
acpi: Add acpi_dev_get_next_match_dev() and helper macro
ipu3-cio2: Add cio2-bridge to ipu3-cio2 driver

Heikki Krogerus (1):
software_node: Add support for fwnode_graph*() family of functions

MAINTAINERS | 2 +
drivers/acpi/utils.c | 30 +-
drivers/base/property.c | 15 +-
drivers/base/swnode.c | 173 +++++++++--
drivers/media/pci/intel/ipu3/Kconfig | 18 ++
drivers/media/pci/intel/ipu3/Makefile | 3 +
drivers/media/pci/intel/ipu3/cio2-bridge.c | 274 ++++++++++++++++++
drivers/media/pci/intel/ipu3/cio2-bridge.h | 122 ++++++++
.../ipu3/{ipu3-cio2.c => ipu3-cio2-main.c} | 34 +++
drivers/media/pci/intel/ipu3/ipu3-cio2.h | 6 +
drivers/media/v4l2-core/v4l2-async.c | 8 +
include/acpi/acpi_bus.h | 7 +
lib/test_printf.c | 4 +-
13 files changed, 669 insertions(+), 27 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.25.1