From: Pavel Machek <pavel@ucw.cz>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, linux-leds@vger.kernel.org,
devicetree@vger.kernel.org, sebastian.reichel@collabora.co.uk,
robh@kernel.org
Subject: Re: [PATCH 7/8] smiapp: Add support for flash, lens and EEPROM devices
Date: Fri, 16 Jun 2017 14:42:42 +0200 [thread overview]
Message-ID: <20170616124242.GA8145@amd> (raw)
In-Reply-To: <1497433639-13101-8-git-send-email-sakari.ailus@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 2864 bytes --]
Hi!
> These types devices aren't directly related to the sensor, but are
> nevertheless handled by the smiapp driver due to the relationship of these
> component to the main part of the camera module --- the sensor.
>
> Additionally, for the async sub-device registration to work, the notifier
> containing matching fwnodes will need to be registered. This is natural to
> perform in a sensor driver as well.
>
> This does not yet address providing the user space with information on how
> to associate the sensor, lens or EEPROM devices but the kernel now has the
> necessary information to do that.
Do I understand it correctly that basically every sensor driver (in my
case et8ek8) needs to get this kind of support? I2c leds are cheap,
and may be asociated with pretty much any sensor, AFAICT.
This is quite a lot of boilerplate for that. Would it make sense to
provide helper function at least for this?
Thanks,
Pavel
> -static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev)
> +static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev,
> + struct smiapp_sensor *sensor)
> {
> + static const char *props[] = { "flash", "lens", "eeprom" };
> struct smiapp_hwconfig *hwcfg;
> struct v4l2_fwnode_endpoint *bus_cfg;
> struct fwnode_handle *ep;
> struct fwnode_handle *fwnode = dev_fwnode(dev);
> - int i;
> + unsigned int i;
> int rval;
>
> if (!fwnode)
> @@ -2849,6 +2878,45 @@ static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev)
>
> v4l2_fwnode_endpoint_free(bus_cfg);
> fwnode_handle_put(ep);
> +
> + sensor->notifier.subdevs =
> + devm_kcalloc(dev, SMIAPP_MAX_ASYNC_SUBDEVS,
> + sizeof(struct v4l2_async_subdev *), GFP_KERNEL);
> + if (!sensor->notifier.subdevs)
> + goto out_err;
> +
> + for (i = 0; i < ARRAY_SIZE(props); i++) {
> + struct device_node *node;
> + unsigned int j = 0;
> +
> + while ((node = of_parse_phandle(dev->of_node, props[i], j++))) {
> + struct v4l2_async_subdev **asd =
> + &sensor->notifier.subdevs[
> + sensor->notifier.num_subdevs];
> +
> + if (WARN_ON(sensor->notifier.num_subdevs >=
> + SMIAPP_MAX_ASYNC_SUBDEVS)) {
> + of_node_put(node);
> + goto out;
> + }
> +
> + *asd = devm_kzalloc(
> + dev, sizeof(struct v4l2_async_subdev),
> + GFP_KERNEL);
> + if (!*asd) {
> + of_node_put(node);
> + goto out_err;
> + }
> +
> + (*asd)->match.fwnode.fwnode = of_fwnode_handle(node);
> + (*asd)->match_type = V4L2_ASYNC_MATCH_FWNODE;
> + sensor->notifier.num_subdevs++;
> +
> + of_node_put(node);
> + }
> + }
> +
> +out:
> return hwcfg;
>
> out_err:
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2017-06-16 12:42 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-14 9:47 [PATCH 0/8] Support registering lens, flash and EEPROM devices Sakari Ailus
2017-06-14 9:47 ` [PATCH 1/8] dt: bindings: Add a binding for flash devices associated to a sensor Sakari Ailus
2017-06-14 15:19 ` Rob Herring
[not found] ` <1497433639-13101-2-git-send-email-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-06-15 9:11 ` Pavel Machek
2017-06-15 9:21 ` Sebastian Reichel
2017-06-14 9:47 ` [PATCH 2/8] dt: bindings: Add lens-focus binding for image sensors Sakari Ailus
2017-06-14 15:20 ` Rob Herring
2017-06-14 9:47 ` [PATCH 3/8] dt: bindings: Add a binding for referencing EEPROM from camera sensors Sakari Ailus
2017-06-18 14:05 ` Rob Herring
[not found] ` <1497433639-13101-4-git-send-email-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-07-19 7:52 ` Maxime Ripard
2017-07-19 9:21 ` Sakari Ailus
2017-07-19 11:18 ` Maxime Ripard
2017-07-21 11:14 ` Sakari Ailus
[not found] ` <1497433639-13101-1-git-send-email-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-06-14 9:47 ` [PATCH 4/8] v4l2-flash: Use led_classdev instead of led_classdev_flash for indicator Sakari Ailus
2017-06-14 21:13 ` Jacek Anaszewski
2017-06-15 6:31 ` kbuild test robot
2017-06-15 10:45 ` Sebastian Reichel
2017-06-14 9:47 ` [PATCH 5/8] v4l2-flash: Flash ops aren't mandatory Sakari Ailus
2017-06-14 21:14 ` Jacek Anaszewski
[not found] ` <3e0a8823-a8b4-3f78-25e0-22d8cb8ad090-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-14 21:19 ` Sakari Ailus
[not found] ` <20170614211939.GR12407-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-06-15 12:08 ` Jacek Anaszewski
2017-06-15 9:24 ` Sebastian Reichel
2017-06-15 12:32 ` Sakari Ailus
[not found] ` <20170615123209.GD12407-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-06-15 12:51 ` Sebastian Reichel
2017-07-18 17:36 ` [PATCH v1.1 1/1] " Sakari Ailus
2017-07-19 11:53 ` Pavel Machek
2017-06-14 9:47 ` [PATCH 6/8] leds: as3645a: Add LED flash class driver Sakari Ailus
2017-06-14 21:15 ` Jacek Anaszewski
2017-06-14 22:10 ` Sakari Ailus
[not found] ` <20170614221028.GS12407-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-06-15 13:01 ` Jacek Anaszewski
2017-06-15 13:34 ` Sakari Ailus
[not found] ` <20170615133404.GF12407-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-06-15 13:47 ` Jacek Anaszewski
2017-06-14 21:39 ` Pavel Machek
2017-06-14 22:21 ` Sakari Ailus
2017-06-14 22:28 ` Pavel Machek
2017-06-14 22:43 ` Sakari Ailus
2017-06-15 10:43 ` Pavel Machek
2017-06-14 9:47 ` [PATCH 7/8] smiapp: Add support for flash, lens and EEPROM devices Sakari Ailus
2017-06-15 1:50 ` kbuild test robot
2017-06-16 12:07 ` Pavel Machek
2017-06-16 12:26 ` Sakari Ailus
[not found] ` <20170616122629.GL15419-z7MJbOB4PBP+e+fPlCVrcFDQ4js95KgL@public.gmane.org>
2017-06-16 13:10 ` Pavel Machek
2017-06-16 12:42 ` Pavel Machek [this message]
2017-06-16 12:45 ` Sakari Ailus
[not found] ` <20170616124526.GM15419-z7MJbOB4PBP+e+fPlCVrcFDQ4js95KgL@public.gmane.org>
2017-06-17 9:19 ` Pavel Machek
2017-06-17 12:59 ` Pavel Machek
2017-06-17 21:12 ` Pavel Machek
[not found] ` <1497433639-13101-8-git-send-email-sakari.ailus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-06-17 12:17 ` Pavel Machek
2017-06-14 9:47 ` [PATCH 8/8] arm: dts: omap3: N9/N950: Add AS3645A camera flash Sakari Ailus
2017-06-15 10:15 ` Sebastian Reichel
2017-06-14 9:53 ` [PATCH 0/8] Support registering lens, flash and EEPROM devices 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=20170616124242.GA8145@amd \
--to=pavel@ucw.cz \
--cc=devicetree@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=sebastian.reichel@collabora.co.uk \
/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).