All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Longerbeam <slongerbeam@gmail.com>
To: linux-media@vger.kernel.org
Cc: Steve Longerbeam <slongerbeam@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	NXP Linux Team <linux-imx@nxp.com>,
	devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM),
	linux-arm-kernel@lists.infradead.org (moderated
	list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE),
	linux-kernel@vger.kernel.org (open list)
Subject: [RESEND PATCH v3 08/17] media: imx: mipi csi-2: Create media links in bound notifier
Date: Sat, 15 Feb 2020 11:41:27 -0800	[thread overview]
Message-ID: <20200215194136.10131-9-slongerbeam@gmail.com> (raw)
In-Reply-To: <20200215194136.10131-1-slongerbeam@gmail.com>

Implement a notifier bound op to register media links from the remote
sub-device's source pad(s) to the mipi csi-2 receiver sink pad.

Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
---
Changes in v3:
- call a local imx-media utility imx_media_create_fwnode_pad_link()
  that creates a single link.
---
 drivers/staging/media/imx/imx6-mipi-csi2.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/media/imx/imx6-mipi-csi2.c
index e27a342751fc..fddf6388348a 100644
--- a/drivers/staging/media/imx/imx6-mipi-csi2.c
+++ b/drivers/staging/media/imx/imx6-mipi-csi2.c
@@ -91,6 +91,11 @@ static inline struct csi2_dev *sd_to_dev(struct v4l2_subdev *sdev)
 	return container_of(sdev, struct csi2_dev, sd);
 }
 
+static inline struct csi2_dev *notifier_to_dev(struct v4l2_async_notifier *n)
+{
+	return container_of(n, struct csi2_dev, notifier);
+}
+
 /*
  * The required sequence of MIPI CSI-2 startup as specified in the i.MX6
  * reference manual is as follows:
@@ -584,6 +589,20 @@ static int csi2_parse_endpoint(struct device *dev,
 	return 0;
 }
 
+static int csi2_notify_bound(struct v4l2_async_notifier *notifier,
+			     struct v4l2_subdev *sd,
+			     struct v4l2_async_subdev *asd)
+{
+	struct csi2_dev *csi2 = notifier_to_dev(notifier);
+	struct media_pad *sink = &csi2->sd.entity.pads[CSI2_SINK_PAD];
+
+	return imx_media_create_fwnode_pad_link(sd, sink);
+}
+
+static const struct v4l2_async_notifier_operations csi2_notify_ops = {
+	.bound = csi2_notify_bound,
+};
+
 static int csi2_probe(struct platform_device *pdev)
 {
 	unsigned int sink_port = 0;
@@ -667,6 +686,8 @@ static int csi2_probe(struct platform_device *pdev)
 
 	v4l2_async_notifier_init(&csi2->notifier);
 
+	csi2->notifier.ops = &csi2_notify_ops;
+
 	ret = v4l2_async_register_fwnode_subdev(
 		&csi2->sd, &csi2->notifier, sizeof(struct v4l2_async_subdev),
 		&sink_port, 1, csi2_parse_endpoint);
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: Steve Longerbeam <slongerbeam@gmail.com>
To: linux-media@vger.kernel.org
Cc: "open list:STAGING SUBSYSTEM" <devel@driverdev.osuosl.org>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	open list <linux-kernel@vger.kernel.org>,
	NXP Linux Team <linux-imx@nxp.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Steve Longerbeam <slongerbeam@gmail.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>,
	"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE"
	<linux-arm-kernel@lists.infradead.org>
Subject: [RESEND PATCH v3 08/17] media: imx: mipi csi-2: Create media links in bound notifier
Date: Sat, 15 Feb 2020 11:41:27 -0800	[thread overview]
Message-ID: <20200215194136.10131-9-slongerbeam@gmail.com> (raw)
In-Reply-To: <20200215194136.10131-1-slongerbeam@gmail.com>

Implement a notifier bound op to register media links from the remote
sub-device's source pad(s) to the mipi csi-2 receiver sink pad.

Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
---
Changes in v3:
- call a local imx-media utility imx_media_create_fwnode_pad_link()
  that creates a single link.
---
 drivers/staging/media/imx/imx6-mipi-csi2.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/media/imx/imx6-mipi-csi2.c
index e27a342751fc..fddf6388348a 100644
--- a/drivers/staging/media/imx/imx6-mipi-csi2.c
+++ b/drivers/staging/media/imx/imx6-mipi-csi2.c
@@ -91,6 +91,11 @@ static inline struct csi2_dev *sd_to_dev(struct v4l2_subdev *sdev)
 	return container_of(sdev, struct csi2_dev, sd);
 }
 
+static inline struct csi2_dev *notifier_to_dev(struct v4l2_async_notifier *n)
+{
+	return container_of(n, struct csi2_dev, notifier);
+}
+
 /*
  * The required sequence of MIPI CSI-2 startup as specified in the i.MX6
  * reference manual is as follows:
@@ -584,6 +589,20 @@ static int csi2_parse_endpoint(struct device *dev,
 	return 0;
 }
 
+static int csi2_notify_bound(struct v4l2_async_notifier *notifier,
+			     struct v4l2_subdev *sd,
+			     struct v4l2_async_subdev *asd)
+{
+	struct csi2_dev *csi2 = notifier_to_dev(notifier);
+	struct media_pad *sink = &csi2->sd.entity.pads[CSI2_SINK_PAD];
+
+	return imx_media_create_fwnode_pad_link(sd, sink);
+}
+
+static const struct v4l2_async_notifier_operations csi2_notify_ops = {
+	.bound = csi2_notify_bound,
+};
+
 static int csi2_probe(struct platform_device *pdev)
 {
 	unsigned int sink_port = 0;
@@ -667,6 +686,8 @@ static int csi2_probe(struct platform_device *pdev)
 
 	v4l2_async_notifier_init(&csi2->notifier);
 
+	csi2->notifier.ops = &csi2_notify_ops;
+
 	ret = v4l2_async_register_fwnode_subdev(
 		&csi2->sd, &csi2->notifier, sizeof(struct v4l2_async_subdev),
 		&sink_port, 1, csi2_parse_endpoint);
-- 
2.17.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

WARNING: multiple messages have this Message-ID (diff)
From: Steve Longerbeam <slongerbeam@gmail.com>
To: linux-media@vger.kernel.org
Cc: "open list:STAGING SUBSYSTEM" <devel@driverdev.osuosl.org>,
	Fabio Estevam <festevam@gmail.com>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	open list <linux-kernel@vger.kernel.org>,
	NXP Linux Team <linux-imx@nxp.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Steve Longerbeam <slongerbeam@gmail.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>,
	"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE"
	<linux-arm-kernel@lists.infradead.org>
Subject: [RESEND PATCH v3 08/17] media: imx: mipi csi-2: Create media links in bound notifier
Date: Sat, 15 Feb 2020 11:41:27 -0800	[thread overview]
Message-ID: <20200215194136.10131-9-slongerbeam@gmail.com> (raw)
In-Reply-To: <20200215194136.10131-1-slongerbeam@gmail.com>

Implement a notifier bound op to register media links from the remote
sub-device's source pad(s) to the mipi csi-2 receiver sink pad.

Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
---
Changes in v3:
- call a local imx-media utility imx_media_create_fwnode_pad_link()
  that creates a single link.
---
 drivers/staging/media/imx/imx6-mipi-csi2.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/media/imx/imx6-mipi-csi2.c
index e27a342751fc..fddf6388348a 100644
--- a/drivers/staging/media/imx/imx6-mipi-csi2.c
+++ b/drivers/staging/media/imx/imx6-mipi-csi2.c
@@ -91,6 +91,11 @@ static inline struct csi2_dev *sd_to_dev(struct v4l2_subdev *sdev)
 	return container_of(sdev, struct csi2_dev, sd);
 }
 
+static inline struct csi2_dev *notifier_to_dev(struct v4l2_async_notifier *n)
+{
+	return container_of(n, struct csi2_dev, notifier);
+}
+
 /*
  * The required sequence of MIPI CSI-2 startup as specified in the i.MX6
  * reference manual is as follows:
@@ -584,6 +589,20 @@ static int csi2_parse_endpoint(struct device *dev,
 	return 0;
 }
 
+static int csi2_notify_bound(struct v4l2_async_notifier *notifier,
+			     struct v4l2_subdev *sd,
+			     struct v4l2_async_subdev *asd)
+{
+	struct csi2_dev *csi2 = notifier_to_dev(notifier);
+	struct media_pad *sink = &csi2->sd.entity.pads[CSI2_SINK_PAD];
+
+	return imx_media_create_fwnode_pad_link(sd, sink);
+}
+
+static const struct v4l2_async_notifier_operations csi2_notify_ops = {
+	.bound = csi2_notify_bound,
+};
+
 static int csi2_probe(struct platform_device *pdev)
 {
 	unsigned int sink_port = 0;
@@ -667,6 +686,8 @@ static int csi2_probe(struct platform_device *pdev)
 
 	v4l2_async_notifier_init(&csi2->notifier);
 
+	csi2->notifier.ops = &csi2_notify_ops;
+
 	ret = v4l2_async_register_fwnode_subdev(
 		&csi2->sd, &csi2->notifier, sizeof(struct v4l2_async_subdev),
 		&sink_port, 1, csi2_parse_endpoint);
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-02-15 19:42 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-15 19:41 [RESEND PATCH v3 00/17] media: imx: Create media links in bound notifiers Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 01/17] media: entity: Pass entity to get_fwnode_pad operation Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 02/17] media: v4l2-fwnode: Pass notifier to v4l2_async_register_fwnode_subdev() Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-25 15:07   ` Sakari Ailus
2020-02-25 15:07     ` Sakari Ailus
2020-02-25 15:07     ` Sakari Ailus
2020-02-26 23:50     ` Steve Longerbeam
2020-02-26 23:50       ` Steve Longerbeam
2020-02-26 23:50       ` Steve Longerbeam
2020-02-27  7:50       ` Sakari Ailus
2020-02-27  7:50         ` Sakari Ailus
2020-02-27  7:50         ` Sakari Ailus
2020-02-28 18:16     ` Steve Longerbeam
2020-02-28 18:16       ` Steve Longerbeam
2020-02-28 18:16       ` Steve Longerbeam
2020-02-28 22:27       ` Sakari Ailus
2020-02-28 22:27         ` Sakari Ailus
2020-02-28 22:27         ` Sakari Ailus
2020-02-29  0:00         ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 03/17] media: imx: csi: Implement get_fwnode_pad op Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 04/17] media: imx: mipi csi-2: " Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 05/17] media: video-mux: " Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 06/17] media: imx: Add imx_media_create_fwnode_pad_link() Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 07/17] media: video-mux: Create media links in bound notifier Steve Longerbeam
2020-02-15 19:41 ` Steve Longerbeam [this message]
2020-02-15 19:41   ` [RESEND PATCH v3 08/17] media: imx: mipi csi-2: " Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 09/17] media: imx7-mipi-csis: " Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 10/17] media: imx7-media-csi: " Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 11/17] media: imx: csi: Embed notifier in struct csi_priv Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 12/17] media: imx: csi: Add missing notifier unregister/cleanup Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 13/17] media: imx: csi: Create media links in bound notifier Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 14/17] media: imx: csi: Lookup upstream endpoint with imx_media_get_pad_fwnode Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 15/17] media: imx: Create missing links from CSI-2 receiver Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 16/17] media: imx: silence a couple debug messages Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41 ` [RESEND PATCH v3 17/17] media: imx: TODO: Remove media link creation todos Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam
2020-02-15 19:41   ` Steve Longerbeam

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=20200215194136.10131-9-slongerbeam@gmail.com \
    --to=slongerbeam@gmail.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=festevam@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@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.