From: "Niklas Söderlund" <niklas.soderlund@ragnatech.se>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, maxime.ripard@free-electrons.com,
hverkuil@xs4all.nl, laurent.pinchart@ideasonboard.com,
pavel@ucw.cz, sre@kernel.org, linux-acpi@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v16 17/32] v4l: async: Prepare for async sub-device notifiers
Date: Fri, 27 Oct 2017 10:10:02 +0200 [thread overview]
Message-ID: <20171027081002.GL2297@bigcity.dyn.berto.se> (raw)
In-Reply-To: <20171026221051.GK2297@bigcity.dyn.berto.se>
Hi Sakari,
On 2017-10-27 00:10:51 +0200, Niklas Söderlund wrote:
> On 2017-10-26 10:53:27 +0300, Sakari Ailus wrote:
> > Refactor the V4L2 async framework a little in preparation for async
> > sub-device notifiers. This avoids making some structural changes in the
> > patch actually implementing sub-device notifiers, making that patch easier
> > to review.
> >
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
>
> Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
I'm sorry I acted to soon, I think I found a small issue with this
patch, see bellow. With that fixed feel free to attach my ack.
>
> > ---
> > drivers/media/v4l2-core/v4l2-async.c | 71 ++++++++++++++++++++++++++----------
> > 1 file changed, 52 insertions(+), 19 deletions(-)
> >
> > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
> > index 1b536d68cedf..eb31d96254d1 100644
> > --- a/drivers/media/v4l2-core/v4l2-async.c
> > +++ b/drivers/media/v4l2-core/v4l2-async.c
> > @@ -125,12 +125,13 @@ static struct v4l2_async_subdev *v4l2_async_find_match(
> > }
> >
> > static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier,
> > + struct v4l2_device *v4l2_dev,
> > struct v4l2_subdev *sd,
> > struct v4l2_async_subdev *asd)
> > {
> > int ret;
> >
> > - ret = v4l2_device_register_subdev(notifier->v4l2_dev, sd);
> > + ret = v4l2_device_register_subdev(v4l2_dev, sd);
> > if (ret < 0)
> > return ret;
> >
> > @@ -151,6 +152,31 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier,
> > return 0;
> > }
> >
> > +/* Test all async sub-devices in a notifier for a match. */
> > +static int v4l2_async_notifier_try_all_subdevs(
> > + struct v4l2_async_notifier *notifier)
> > +{
> > + struct v4l2_device *v4l2_dev = notifier->v4l2_dev;
> > + struct v4l2_subdev *sd, *tmp;
> > +
> > + list_for_each_entry_safe(sd, tmp, &subdev_list, async_list) {
> > + struct v4l2_async_subdev *asd;
> > + int ret;
> > +
> > + asd = v4l2_async_find_match(notifier, sd);
> > + if (!asd)
> > + continue;
> > +
> > + ret = v4l2_async_match_notify(notifier, v4l2_dev, sd, asd);
> > + if (ret < 0) {
> > + mutex_unlock(&list_lock);
The mutex should not be unlocked here, as the caller will also unlock it
if ret is none zero. You fix this in 18/32 so the end result is OK but I
think its better to fix this in this patch.
> > + return ret;
> > + }
> > + }
> > +
> > + return 0;
> > +}
> > +
> > static void v4l2_async_cleanup(struct v4l2_subdev *sd)
> > {
> > v4l2_device_unregister_subdev(sd);
> > @@ -172,18 +198,15 @@ static void v4l2_async_notifier_unbind_all_subdevs(
> > }
> > }
> >
> > -int v4l2_async_notifier_register(struct v4l2_device *v4l2_dev,
> > - struct v4l2_async_notifier *notifier)
> > +static int __v4l2_async_notifier_register(struct v4l2_async_notifier *notifier)
> > {
> > - struct v4l2_subdev *sd, *tmp;
> > struct v4l2_async_subdev *asd;
> > int ret;
> > int i;
> >
> > - if (!v4l2_dev || notifier->num_subdevs > V4L2_MAX_SUBDEVS)
> > + if (notifier->num_subdevs > V4L2_MAX_SUBDEVS)
> > return -EINVAL;
> >
> > - notifier->v4l2_dev = v4l2_dev;
> > INIT_LIST_HEAD(¬ifier->waiting);
> > INIT_LIST_HEAD(¬ifier->done);
> >
> > @@ -216,18 +239,10 @@ int v4l2_async_notifier_register(struct v4l2_device *v4l2_dev,
> >
> > mutex_lock(&list_lock);
> >
> > - list_for_each_entry_safe(sd, tmp, &subdev_list, async_list) {
> > - int ret;
> > -
> > - asd = v4l2_async_find_match(notifier, sd);
> > - if (!asd)
> > - continue;
> > -
> > - ret = v4l2_async_match_notify(notifier, sd, asd);
> > - if (ret < 0) {
> > - mutex_unlock(&list_lock);
> > - return ret;
> > - }
> > + ret = v4l2_async_notifier_try_all_subdevs(notifier);
> > + if (ret) {
> > + mutex_unlock(&list_lock);
> > + return ret;
> > }
> >
> > if (list_empty(¬ifier->waiting)) {
> > @@ -250,6 +265,23 @@ int v4l2_async_notifier_register(struct v4l2_device *v4l2_dev,
> >
> > return ret;
> > }
> > +
> > +int v4l2_async_notifier_register(struct v4l2_device *v4l2_dev,
> > + struct v4l2_async_notifier *notifier)
> > +{
> > + int ret;
> > +
> > + if (WARN_ON(!v4l2_dev))
> > + return -EINVAL;
> > +
> > + notifier->v4l2_dev = v4l2_dev;
> > +
> > + ret = __v4l2_async_notifier_register(notifier);
> > + if (ret)
> > + notifier->v4l2_dev = NULL;
> > +
> > + return ret;
> > +}
> > EXPORT_SYMBOL(v4l2_async_notifier_register);
> >
> > void v4l2_async_notifier_unregister(struct v4l2_async_notifier *notifier)
> > @@ -324,7 +356,8 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
> > if (!asd)
> > continue;
> >
> > - ret = v4l2_async_match_notify(notifier, sd, asd);
> > + ret = v4l2_async_match_notify(notifier, notifier->v4l2_dev, sd,
> > + asd);
> > if (ret)
> > goto err_unlock;
> >
> > --
> > 2.11.0
> >
>
> --
> Regards,
> Niklas Söderlund
--
Regards,
Niklas Söderlund
next prev parent reply other threads:[~2017-10-27 8:10 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-26 7:53 [PATCH v16 00/32] Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS Sakari Ailus
2017-10-26 7:53 ` Sakari Ailus
2017-10-26 7:53 ` [PATCH v16 01/32] v4l: async: Remove re-probing support Sakari Ailus
2017-10-26 15:20 ` Niklas Söderlund
2017-10-26 7:53 ` [PATCH v16 02/32] v4l: async: Don't set sd->dev NULL in v4l2_async_cleanup Sakari Ailus
[not found] ` <20171026075342.5760-3-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-26 15:23 ` Niklas Söderlund
2017-10-26 15:23 ` Niklas Söderlund
2017-10-26 7:53 ` [PATCH v16 03/32] v4l: async: fix unbind error in v4l2_async_notifier_unregister() Sakari Ailus
2017-10-26 7:53 ` [PATCH v16 05/32] v4l: async: Correctly serialise async sub-device unregistration Sakari Ailus
[not found] ` <20171026075342.5760-6-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-26 15:38 ` Niklas Söderlund
2017-10-26 15:38 ` Niklas Söderlund
2017-10-26 7:53 ` [PATCH v16 07/32] v4l: async: Add V4L2 async documentation to the documentation build Sakari Ailus
2017-10-26 7:53 ` [PATCH v16 08/32] v4l: fwnode: Support generic parsing of graph endpoints in a device Sakari Ailus
2017-10-26 21:35 ` Niklas Söderlund
2017-10-26 7:53 ` [PATCH v16 09/32] omap3isp: Use generic parser for parsing fwnode endpoints Sakari Ailus
[not found] ` <20171026075342.5760-10-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-27 14:46 ` Sebastian Reichel
2017-10-27 14:46 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 10/32] rcar-vin: " Sakari Ailus
2017-10-26 7:53 ` [PATCH v16 11/32] omap3isp: Fix check for our own sub-devices Sakari Ailus
2017-10-27 14:47 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 12/32] omap3isp: Print the name of the entity where no source pads could be found Sakari Ailus
2017-10-27 14:47 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 13/32] v4l: async: Move async subdev notifier operations to a separate structure Sakari Ailus
2017-10-26 21:44 ` Niklas Söderlund
2017-10-27 14:47 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 14/32] v4l: async: Introduce helpers for calling async ops callbacks Sakari Ailus
2017-10-26 21:46 ` Niklas Söderlund
2017-10-27 14:48 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 15/32] v4l: async: Register sub-devices before calling bound callback Sakari Ailus
[not found] ` <20171026075342.5760-16-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-26 21:52 ` Niklas Söderlund
2017-10-26 21:52 ` Niklas Söderlund
2017-10-27 14:49 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 16/32] v4l: async: Allow async notifier register call succeed with no subdevs Sakari Ailus
[not found] ` <20171026075342.5760-17-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-26 22:00 ` Niklas Söderlund
2017-10-26 22:00 ` Niklas Söderlund
2017-10-27 14:49 ` Sebastian Reichel
2017-10-27 14:49 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 17/32] v4l: async: Prepare for async sub-device notifiers Sakari Ailus
2017-10-26 22:10 ` Niklas Söderlund
2017-10-27 8:10 ` Niklas Söderlund [this message]
2017-10-27 8:30 ` Sakari Ailus
2017-10-27 8:26 ` [PATCH v16.1 " Sakari Ailus
2017-10-27 8:36 ` Niklas Söderlund
2017-10-27 14:50 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 18/32] v4l: async: Allow binding notifiers to sub-devices Sakari Ailus
2017-10-27 8:27 ` [PATCH v16.1 " Sakari Ailus
2017-10-27 8:44 ` Niklas Söderlund
2017-10-29 22:19 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 19/32] v4l: async: Ensure only unique fwnodes are registered to notifiers Sakari Ailus
2017-10-27 9:52 ` Niklas Söderlund
[not found] ` <20171027095227.GA8854-ofJ5d6taAgIKcZgyrm77+z0dHWC0CY5B@public.gmane.org>
2017-10-27 10:06 ` Sakari Ailus
2017-10-27 10:06 ` Sakari Ailus
2017-10-27 10:26 ` Niklas Söderlund
2017-10-27 10:53 ` [PATCH v16.1 " Sakari Ailus
2017-10-29 22:25 ` Sebastian Reichel
2017-10-30 13:05 ` Sakari Ailus
2017-10-30 13:09 ` [PATCH v16.2 " Sakari Ailus
2017-10-26 7:53 ` [PATCH v16 20/32] dt: bindings: Add a binding for flash LED devices associated to a sensor Sakari Ailus
[not found] ` <20171026075342.5760-21-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-29 22:26 ` Sebastian Reichel
2017-10-29 22:26 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 21/32] dt: bindings: Add lens-focus binding for image sensors Sakari Ailus
2017-10-26 7:53 ` [PATCH v16 22/32] v4l: fwnode: Move KernelDoc documentation to the header Sakari Ailus
2017-10-29 22:28 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 23/32] v4l: fwnode: Add a helper function for parsing generic references Sakari Ailus
2017-10-27 10:30 ` Niklas Söderlund
2017-10-29 22:53 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 24/32] v4l: fwnode: Add a helper function to obtain device / integer references Sakari Ailus
2017-10-26 15:01 ` [PATCH v16.1 " Sakari Ailus
2017-10-29 22:58 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 25/32] v4l: fwnode: Add convenience function for parsing common external refs Sakari Ailus
2017-10-26 15:03 ` [PATCH v16.1 " Sakari Ailus
2017-10-29 23:00 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 29/32] et8ek8: Add support for flash and lens devices Sakari Ailus
2017-10-29 23:05 ` Sebastian Reichel
2017-11-12 11:27 ` et8ek8: Document " Pavel Machek
2017-11-12 14:25 ` Sebastian Reichel
2017-11-12 14:25 ` Sebastian Reichel
2017-11-13 17:05 ` Sakari Ailus
[not found] ` <20171026075342.5760-1-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-26 7:53 ` [PATCH v16 04/32] v4l: async: Fix notifier complete callback error handling Sakari Ailus
2017-10-26 7:53 ` Sakari Ailus
[not found] ` <20171026075342.5760-5-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-26 15:34 ` Niklas Söderlund
2017-10-26 15:34 ` Niklas Söderlund
2017-10-27 14:46 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 06/32] v4l: async: Use more intuitive names for internal functions Sakari Ailus
2017-10-26 7:53 ` Sakari Ailus
[not found] ` <20171026075342.5760-7-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-26 15:39 ` Niklas Söderlund
2017-10-26 15:39 ` Niklas Söderlund
2017-10-26 7:53 ` [PATCH v16 26/32] v4l: fwnode: Add a convenience function for registering sensors Sakari Ailus
2017-10-26 7:53 ` Sakari Ailus
2017-10-27 13:06 ` Niklas Söderlund
2017-10-29 23:02 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 27/32] dt: bindings: smiapp: Document lens-focus and flash-leds properties Sakari Ailus
2017-10-26 7:53 ` Sakari Ailus
2017-10-27 14:38 ` Rob Herring
[not found] ` <20171026075342.5760-28-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-29 23:03 ` Sebastian Reichel
2017-10-29 23:03 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 28/32] smiapp: Add support for flash and lens devices Sakari Ailus
2017-10-26 7:53 ` Sakari Ailus
2017-10-29 23:04 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 30/32] ov5670: " Sakari Ailus
2017-10-26 7:53 ` Sakari Ailus
2017-10-29 23:05 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 31/32] ov13858: " Sakari Ailus
[not found] ` <20171026075342.5760-32-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-10-29 23:06 ` Sebastian Reichel
2017-10-29 23:06 ` Sebastian Reichel
2017-10-26 7:53 ` [PATCH v16 32/32] arm: dts: omap3: N9/N950: Add flash references to the camera Sakari Ailus
2017-10-29 23:08 ` Sebastian Reichel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171027081002.GL2297@bigcity.dyn.berto.se \
--to=niklas.soderlund@ragnatech.se \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil@xs4all.nl \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=maxime.ripard@free-electrons.com \
--cc=pavel@ucw.cz \
--cc=sakari.ailus@linux.intel.com \
--cc=sre@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.