devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, niklas.soderlund@ragnatech.se,
	robh@kernel.org, hverkuil@xs4all.nl,
	laurent.pinchart@ideasonboard.com, linux-acpi@vger.kernel.org,
	mika.westerberg@intel.com, devicetree@vger.kernel.org,
	sre@kernel.org
Subject: [RFC] et8ek8: Add support for flash and lens devices
Date: Sat, 9 Sep 2017 23:47:24 +0200	[thread overview]
Message-ID: <20170909214724.GA18677@amd> (raw)
In-Reply-To: <20170908131822.31020-18-sakari.ailus@linux.intel.com>

[-- Attachment #1: Type: text/plain, Size: 2752 bytes --]


Parse async sub-devices by using
v4l2_subdev_fwnode_reference_parse_sensor_common().

These types devices aren't directly related to the sensor, but are
nevertheless handled by the et8ek8 driver due to the relationship of these
component to the main part of the camera module --- the sensor.

Signed-off-by: Pavel Machek <pavel@ucw.cz> # Not yet ready -- broken whitespace

---

Whitespace is horribly bad. But otherwise... does it look ok?


diff --git a/drivers/media/i2c/et8ek8/et8ek8_driver.c b/drivers/media/i2c/et8ek8/et8ek8_driver.c
index c14f0fd..7714d2c 100644
--- a/drivers/media/i2c/et8ek8/et8ek8_driver.c
+++ b/drivers/media/i2c/et8ek8/et8ek8_driver.c
@@ -34,10 +34,12 @@
 #include <linux/sort.h>
 #include <linux/v4l2-mediabus.h>
 
+#include <media/v4l2-async.h>
 #include <media/media-entity.h>
 #include <media/v4l2-ctrls.h>
 #include <media/v4l2-device.h>
 #include <media/v4l2-subdev.h>
+#include <media/v4l2-fwnode.h>
 
 #include "et8ek8_reg.h"
 
@@ -46,6 +48,7 @@
 #define ET8EK8_MAX_MSG		8
 
 struct et8ek8_sensor {
+	struct v4l2_async_notifier notifier;
 	struct v4l2_subdev subdev;
 	struct media_pad pad;
 	struct v4l2_mbus_framefmt format;
@@ -1446,6 +1449,11 @@ static int et8ek8_probe(struct i2c_client *client,
 	sensor->subdev.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 	sensor->subdev.internal_ops = &et8ek8_internal_ops;
 
+	ret = v4l2_fwnode_reference_parse_sensor_common(
+                &client->dev, &sensor->notifier);
+        if (ret < 0 && ret != -ENOENT)
+                return ret;
+
 	sensor->pad.flags = MEDIA_PAD_FL_SOURCE;
 	ret = media_entity_pads_init(&sensor->subdev.entity, 1, &sensor->pad);
 	if (ret < 0) {
@@ -1453,14 +1461,21 @@ static int et8ek8_probe(struct i2c_client *client,
 		goto err_mutex;
 	}
 
+        ret = v4l2_async_subdev_notifier_register(&sensor->subdev,
+						  &sensor->notifier);
+	if (ret)
+		goto err_entity;
+
 	ret = v4l2_async_register_subdev(&sensor->subdev);
 	if (ret < 0)
-		goto err_entity;
+		goto err_async;
 
 	dev_dbg(dev, "initialized!\n");
 
 	return 0;
 
+err_async:
+	v4l2_async_notifier_unregister(&sensor->notifier);
 err_entity:
 	media_entity_cleanup(&sensor->subdev.entity);
 err_mutex:
@@ -1480,6 +1495,7 @@ static int __exit et8ek8_remove(struct i2c_client *client)
 	}
 
 	v4l2_device_unregister_subdev(&sensor->subdev);
+	v4l2_async_notifier_unregister(&sensor->notifier);
 	device_remove_file(&client->dev, &dev_attr_priv_mem);
 	v4l2_ctrl_handler_free(&sensor->ctrl_handler);
 	v4l2_async_unregister_subdev(&sensor->subdev);


-- 
(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 --]

  reply	other threads:[~2017-09-09 21:47 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
     [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   ` Pavel Machek [this message]
2017-09-09 22:06     ` [RFC] et8ek8: " 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=20170909214724.GA18677@amd \
    --to=pavel@ucw.cz \
    --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=mika.westerberg@intel.com \
    --cc=niklas.soderlund@ragnatech.se \
    --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).