From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, niklas.soderlund@ragnatech.se,
robh@kernel.org, hverkuil@xs4all.nl, linux-acpi@vger.kernel.org,
mika.westerberg@intel.com, devicetree@vger.kernel.org,
pavel@ucw.cz, sre@kernel.org
Subject: Re: [PATCH v9 02/24] v4l: async: Remove re-probing support
Date: Sat, 09 Sep 2017 18:36:41 +0300 [thread overview]
Message-ID: <2128463.znNVtuGJSF@avalon> (raw)
In-Reply-To: <20170908131235.30294-3-sakari.ailus@linux.intel.com>
Hi Sakari,
Thank you for the patch.
On Friday, 8 September 2017 16:11:53 EEST Sakari Ailus wrote:
> Remove V4L2 async re-probing support. The re-probing support has been
> there to support cases where the sub-devices require resources provided by
> the main driver's hardware to function, such as clocks.
>
> Reprobing has allowed unbinding and again binding the main driver without
> explicilty unbinding the sub-device drivers. This is certainly not a
> common need, and the responsibility will be the user's going forward.
>
> An alternative could have been to introduce notifier specific locks.
> Considering the complexity of the re-probing and that it isn't really a
> solution to a problem but a workaround, remove re-probing instead.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
I agree that this is a hack, and that the problem should be addressed
differently. I'm fine with this patch as it helps later rework of the async
notifier code, but we need a plan to fix the problem.
> ---
> drivers/media/v4l2-core/v4l2-async.c | 54 ---------------------------------
> 1 file changed, 54 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/v4l2-async.c
> b/drivers/media/v4l2-core/v4l2-async.c index d741a8e0fdac..e109d9da4653
> 100644
> --- a/drivers/media/v4l2-core/v4l2-async.c
> +++ b/drivers/media/v4l2-core/v4l2-async.c
> @@ -198,78 +198,24 @@ EXPORT_SYMBOL(v4l2_async_notifier_register);
> void v4l2_async_notifier_unregister(struct v4l2_async_notifier *notifier)
> {
> struct v4l2_subdev *sd, *tmp;
> - unsigned int notif_n_subdev = notifier->num_subdevs;
> - unsigned int n_subdev = min(notif_n_subdev, V4L2_MAX_SUBDEVS);
> - struct device **dev;
> - int i = 0;
>
> if (!notifier->v4l2_dev)
> return;
>
> - dev = kvmalloc_array(n_subdev, sizeof(*dev), GFP_KERNEL);
> - if (!dev) {
> - dev_err(notifier->v4l2_dev->dev,
> - "Failed to allocate device cache!\n");
> - }
> -
> mutex_lock(&list_lock);
>
> list_del(¬ifier->list);
>
> list_for_each_entry_safe(sd, tmp, ¬ifier->done, async_list) {
> - struct device *d;
> -
> - d = get_device(sd->dev);
> -
> v4l2_async_cleanup(sd);
>
> - /* If we handled USB devices, we'd have to lock the parent too */
> - device_release_driver(d);
> -
> if (notifier->unbind)
> notifier->unbind(notifier, sd, sd->asd);
> -
> - /*
> - * Store device at the device cache, in order to call
> - * put_device() on the final step
> - */
> - if (dev)
> - dev[i++] = d;
> - else
> - put_device(d);
> }
>
> mutex_unlock(&list_lock);
>
> - /*
> - * Call device_attach() to reprobe devices
> - *
> - * NOTE: If dev allocation fails, i is 0, and the whole loop won't be
> - * executed.
> - */
> - while (i--) {
> - struct device *d = dev[i];
> -
> - if (d && device_attach(d) < 0) {
> - const char *name = "(none)";
> - int lock = device_trylock(d);
> -
> - if (lock && d->driver)
> - name = d->driver->name;
> - dev_err(d, "Failed to re-probe to %s\n", name);
> - if (lock)
> - device_unlock(d);
> - }
> - put_device(d);
> - }
> - kvfree(dev);
> -
> notifier->v4l2_dev = NULL;
> -
> - /*
> - * Don't care about the waiting list, it is initialised and populated
> - * upon notifier registration.
> - */
> }
> EXPORT_SYMBOL(v4l2_async_notifier_unregister);
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2017-09-09 15:36 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-08 13:11 [PATCH v9 00/23] Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS Sakari Ailus
2017-09-08 13:11 ` [PATCH v9 01/24] v4l: fwnode: Move KernelDoc documentation to the header Sakari Ailus
[not found] ` <20170908131235.30294-1-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-09-08 13:11 ` [PATCH v9 02/24] v4l: async: Remove re-probing support Sakari Ailus
2017-09-09 15:36 ` Laurent Pinchart [this message]
[not found] ` <20170908131235.30294-3-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-09-11 7:47 ` Hans Verkuil
[not found] ` <787019fe-7402-7edb-3de6-9a683de78d71-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-09-11 7:51 ` Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 12/24] v4l: async: Register sub-devices before calling bound callback Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 15/24] dt: bindings: Add a binding for flash LED devices associated to a sensor Sakari Ailus
2017-09-09 9:08 ` Pavel Machek
2017-09-08 13:18 ` [PATCH v9 16/24] dt: bindings: Add lens-focus binding for image sensors Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 24/24] arm: dts: omap3: N9/N950: Add flash references to the camera Sakari Ailus
2017-09-09 18:32 ` Pavel Machek
2017-09-09 22:13 ` Sakari Ailus
2017-09-08 13:11 ` [PATCH v9 03/24] v4l: async: Use more intuitive names for internal functions Sakari Ailus
2017-09-09 9:15 ` Pavel Machek
2017-09-09 15:34 ` Laurent Pinchart
2017-09-11 7:51 ` Hans Verkuil
2017-09-08 13:11 ` [PATCH v9 04/24] v4l: async: Add V4L2 async documentation to the documentation build Sakari Ailus
[not found] ` <20170908131235.30294-5-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-09-09 15:37 ` Laurent Pinchart
2017-09-08 13:18 ` [PATCH v9 05/24] v4l: fwnode: Support generic parsing of graph endpoints in a device Sakari Ailus
[not found] ` <20170908131822.31020-1-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-09-11 7:59 ` Hans Verkuil
2017-09-08 13:18 ` [PATCH v9 06/24] omap3isp: Use generic parser for parsing fwnode endpoints Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 07/24] rcar-vin: " Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 08/24] omap3isp: Fix check for our own sub-devices Sakari Ailus
2017-09-09 9:16 ` Pavel Machek
2017-09-08 13:18 ` [PATCH v9 09/24] omap3isp: Print the name of the entity where no source pads could be found Sakari Ailus
2017-09-09 9:16 ` Pavel Machek
2017-09-08 13:18 ` [PATCH v9 10/24] v4l: async: Move async subdev notifier operations to a separate structure Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 11/24] v4l: async: Introduce helpers for calling async ops callbacks Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 13/24] v4l: async: Allow async notifier register call succeed with no subdevs Sakari Ailus
2017-09-11 8:05 ` Hans Verkuil
[not found] ` <beb494e4-44f7-2eec-8d24-8d92e23dafd2-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-09-11 8:21 ` Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 14/24] v4l: async: Allow binding notifiers to sub-devices Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 17/24] ACPI: Document how to refer to LEDs from remote nodes Sakari Ailus
2017-09-08 13:43 ` Mika Westerberg
2017-09-08 13:54 ` Sakari Ailus
2017-09-08 13:58 ` Mika Westerberg
2017-09-09 9:08 ` Pavel Machek
2017-09-08 13:18 ` [PATCH v9 18/24] as3645a: Switch to fwnode property API Sakari Ailus
2017-09-09 9:19 ` Pavel Machek
[not found] ` <20170908131822.31020-14-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-09-09 19:06 ` Jacek Anaszewski
2017-09-09 21:36 ` Sakari Ailus
2017-09-11 21:10 ` Jacek Anaszewski
2017-09-08 13:18 ` [PATCH v9 19/24] v4l: fwnode: Add a helper function for parsing generic references Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 20/24] v4l: fwnode: Add a helper function to obtain device / interger references Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 21/24] v4l: fwnode: Add convenience function for parsing common external refs Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 22/24] smiapp: Add support for flash and lens devices Sakari Ailus
2017-09-09 21:47 ` [RFC] et8ek8: " Pavel Machek
2017-09-09 22:06 ` Sakari Ailus
2017-09-11 13:18 ` [PATCH] " Pavel Machek
2017-09-12 11:06 ` Sakari Ailus
2017-09-08 13:18 ` [PATCH v9 23/24] dt: bindings: smiapp: Document lens-focus and flash properties Sakari Ailus
[not found] ` <20170908131822.31020-19-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-09-08 13:36 ` Pavel Machek
2017-09-08 13:42 ` Sakari Ailus
2017-09-08 21:45 ` Pavel Machek
2017-09-11 7:45 ` Sakari Ailus
2017-09-08 13:25 ` [PATCH v9 00/23] Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS Sakari Ailus
[not found] ` <20170908132507.nqofkw2g43m7ydux-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-09-09 9:34 ` Pavel Machek
2017-09-11 8:24 ` Sakari Ailus
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=2128463.znNVtuGJSF@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil@xs4all.nl \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mika.westerberg@intel.com \
--cc=niklas.soderlund@ragnatech.se \
--cc=pavel@ucw.cz \
--cc=robh@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).