On Fri, Apr 12, 2019 at 05:33:38PM +0200, Jacopo Mondi wrote: > 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: > > > > <URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=fwnode-linear> > > > > Compared to the above tree I see one missing patch: > "device property: Add fwnode_graph_get_endpoint_by_id" > > Is this intentional? Yes. That patch will be merged through the ACPI tree (I hope). I guess it's time to ping. :-) > > 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 > > -- Sakari Ailus sakari.ailus@xxxxxxxxxxxxxxx