Hi Sakari, On Fri, Apr 05, 2019 at 12:41:17PM +0300, Sakari Ailus wrote: > Hi folks, > > This patchset reworks V4L2 fwnode endpoint parsing. It enables the use of > endpoint configuration defaults that is available sensors and other > drivers that only use a single endpoint. Well, the functionality was > available already but no driver used it likely because of two reasons: > lack of any examples in a non-trivial problem area as well as lack of a > needed functionality to obtain through non-iterative means in the fwnode > graph API. Also the fwnode framework did not provide the most convenient > APIs to perform this for drivers. > > Conversion from the iterative API is done for the omap3isp and ipu3-cio2 > drivers. A downside here is that this adds code: what used to be done in > the framework in a one-size-fits-all fashion is now the responsibility of > the driver. The benefits (default settings and simplicity of the > implementation from driver's point of view) are not really achievable > without some of that. > > Also baked in the set is matching devices with endpoints by endpoint node > rather than the device's node. This allows finding out more information > than just the device bound (i.e. the port --- or endpoint --- through > which it was bound). Compatibility support is provided for existing > drivers by setting the fwnode to be matched based on the available > endpoints. Drivers that use the async non-notifier API and have multiple > ports will likely need special care and this is right now missing from the > set, hence this is RFC for now. > > The set depends on a few other patches. They all can be found here: > > > Compared to the above tree I see one missing patch: "device property: Add fwnode_graph_get_endpoint_by_id" Is this intentional? Thanks j > since RFC v1: > > - Add another patch to change fwnode refcounting for > v4l2_async_notifier_add_fwnode_subdev > > - Add a patch to fix OF node refcounting and use / put order for > davinci-vpif > > - Don't take endpoint reference in v4l2_async_register_subdev; that's not > intended > > - Fix kerneldoc documentation for > v4l2_async_notifier_add_fwnode_remote_subdev > > - Fix endpoint refcounting in the patch changing fwnode parsing for the > omap3isp driver > > - Fixed a compiler error in rcar_drif.c --- thanks, Niklas! > > Sakari Ailus (9): > davinci-vpif: Don't dereference endpoint after putting it, fix > refcounting > v4l2-async: Use endpoint node, not device node, for fwnode match > v4l2-async: Get fwnode reference when putting it to the notifier's > list > v4l2-async: Add v4l2_async_notifier_add_fwnode_remote_subdev > omap3isp: Rework OF endpoint parsing > v4l2-async: Safely clean up an uninitialised notifier > ipu3-cio2: Clean up notifier's subdev list if parsing endpoints fails > ipu3-cio2: Proceed with notifier init even if there are no subdevs > ipu3-cio2: Parse information from firmware without using callbacks > > drivers/media/pci/intel/ipu3/ipu3-cio2.c | 96 ++++---- > drivers/media/platform/am437x/am437x-vpfe.c | 7 +- > drivers/media/platform/atmel/atmel-isc.c | 2 +- > drivers/media/platform/atmel/atmel-isi.c | 2 +- > drivers/media/platform/cadence/cdns-csi2rx.c | 2 +- > drivers/media/platform/davinci/vpif_capture.c | 37 +-- > drivers/media/platform/exynos4-is/media-dev.c | 14 +- > drivers/media/platform/omap3isp/isp.c | 331 +++++++++++++++----------- > drivers/media/platform/pxa_camera.c | 2 +- > drivers/media/platform/qcom/camss/camss.c | 10 +- > drivers/media/platform/rcar_drif.c | 2 +- > drivers/media/platform/renesas-ceu.c | 2 +- > drivers/media/platform/stm32/stm32-dcmi.c | 2 +- > drivers/media/platform/ti-vpe/cal.c | 2 +- > drivers/media/platform/xilinx/xilinx-vipp.c | 15 +- > drivers/media/v4l2-core/v4l2-async.c | 37 ++- > drivers/media/v4l2-core/v4l2-fwnode.c | 26 +- > drivers/staging/media/soc_camera/soc_camera.c | 14 +- > include/media/v4l2-async.h | 30 ++- > 19 files changed, 386 insertions(+), 247 deletions(-) > > -- > 2.11.0 >