linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steve Longerbeam <slongerbeam@gmail.com>
To: linux-media@vger.kernel.org
Cc: "Steve Longerbeam" <slongerbeam@gmail.com>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	linux-renesas-soc@vger.kernel.org (open list:MEDIA DRIVERS FOR
	RENESAS - VIN), linux-kernel@vger.kernel.org (open list)
Subject: [PATCH 07/22] media: rcar-csi2: Fix fwnode media link creation
Date: Mon,  5 Aug 2019 16:34:50 -0700	[thread overview]
Message-ID: <20190805233505.21167-8-slongerbeam@gmail.com> (raw)
In-Reply-To: <20190805233505.21167-1-slongerbeam@gmail.com>

rcsi2_notify_bound() passes the bound subdev's match fwnode to
media_entity_get_fwnode_pad() to determine the subdev's source
pad for creating the media link to it. When the bound subdev is
the adv748x-csi2 transmitter, this is in fact correctly the endpoint
fwnode. For other subdevices this likely will not be the case, the
asd match fwnode is usually not an endpoint fwnode but rather the
port parent fwnode. So rcar-csi2 will fail to get the correct source
pad for bound subdev's other than the adv748x.

To fix and make rcar-csi2 connect more generally to other subdevices,
replace the calls to media_entity_get_fwnode_pad() and
media_create_pad_link() with a call to media_create_fwnode_pad_links().

Fixes: 769afd212b160 ("media: rcar-csi2: add Renesas R-Car MIPI CSI-2 receiver driver")

Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
---
 drivers/media/platform/rcar-vin/rcar-csi2.c | 23 +++++++++------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
index c14af1b929df..13242cbad8d3 100644
--- a/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -738,23 +738,20 @@ static int rcsi2_notify_bound(struct v4l2_async_notifier *notifier,
 			      struct v4l2_async_subdev *asd)
 {
 	struct rcar_csi2 *priv = notifier_to_csi2(notifier);
-	int pad;
+	int ret;
 
-	pad = media_entity_get_fwnode_pad(&subdev->entity, asd->match.fwnode,
-					  MEDIA_PAD_FL_SOURCE);
-	if (pad < 0) {
-		dev_err(priv->dev, "Failed to find pad for %s\n", subdev->name);
-		return pad;
-	}
+	ret = media_create_fwnode_pad_links(&priv->subdev.entity.pads[0],
+					    dev_fwnode(priv->dev),
+					    &subdev->entity,
+					    dev_fwnode(subdev->dev),
+					    MEDIA_LNK_FL_ENABLED |
+					    MEDIA_LNK_FL_IMMUTABLE);
+	if (ret)
+		return ret;
 
 	priv->remote = subdev;
 
-	dev_dbg(priv->dev, "Bound %s pad: %d\n", subdev->name, pad);
-
-	return media_create_pad_link(&subdev->entity, pad,
-				     &priv->subdev.entity, 0,
-				     MEDIA_LNK_FL_ENABLED |
-				     MEDIA_LNK_FL_IMMUTABLE);
+	return 0;
 }
 
 static void rcsi2_notify_unbind(struct v4l2_async_notifier *notifier,
-- 
2.17.1


  parent reply	other threads:[~2019-08-05 23:35 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-05 23:34 [PATCH 00/22] media: imx: Create media links in bound notifiers Steve Longerbeam
2019-08-05 23:34 ` [PATCH 01/22] media: entity: Pass entity to get_fwnode_pad operation Steve Longerbeam
2019-08-05 23:34 ` [PATCH 02/22] media: entity: Modify default behavior of media_entity_get_fwnode_pad Steve Longerbeam
2019-08-05 23:34 ` [PATCH 03/22] media: entity: Convert media_entity_get_fwnode_pad() args to const Steve Longerbeam
2019-08-05 23:34 ` [PATCH 04/22] media: Move v4l2_fwnode_parse_link from v4l2 to driver base Steve Longerbeam
2019-08-06  6:41   ` Andy Shevchenko
2019-08-06 16:53     ` Steve Longerbeam
2019-08-14 10:30       ` Russell King - ARM Linux admin
2019-08-14 19:04         ` Steve Longerbeam
2019-08-14 22:04           ` Russell King - ARM Linux admin
2019-08-14 23:00             ` Steve Longerbeam
2019-08-14 23:15               ` Russell King - ARM Linux admin
2019-08-15 19:56                 ` Steve Longerbeam
2019-08-05 23:34 ` [PATCH 05/22] media: entity: Add functions to convert fwnode endpoints to media links Steve Longerbeam
2019-08-05 23:34 ` [PATCH 06/22] media: adv748x: csi2: Implement get_fwnode_pad Steve Longerbeam
2019-08-05 23:34 ` Steve Longerbeam [this message]
2019-08-05 23:34 ` [PATCH 08/22] media: cadence: csi2rx: Fix fwnode media link creation Steve Longerbeam
2019-08-05 23:34 ` [PATCH 09/22] media: sun6i: " Steve Longerbeam
2019-08-05 23:34 ` [PATCH 10/22] media: st-mipid02: " Steve Longerbeam
2019-08-05 23:34 ` [PATCH 11/22] media: v4l2-fwnode: Pass notifier to v4l2_async_register_fwnode_subdev() Steve Longerbeam
2019-08-05 23:34 ` [PATCH 12/22] media: video-mux: Create media links in bound notifier Steve Longerbeam
2019-08-05 23:34 ` [PATCH 13/22] media: imx: mipi csi-2: " Steve Longerbeam
2019-08-05 23:34 ` [PATCH 14/22] media: imx7-mipi-csis: " Steve Longerbeam
2019-09-02  9:36   ` Rui Miguel Silva
2019-08-05 23:34 ` [PATCH 15/22] media: imx7-media-csi: " Steve Longerbeam
2019-09-02  9:38   ` Rui Miguel Silva
2019-09-02 21:37     ` Steve Longerbeam
2019-08-05 23:34 ` [PATCH 16/22] media: imx: csi: Implement get_fwnode_pad Steve Longerbeam
2019-08-05 23:35 ` [PATCH 17/22] media: imx: csi: Embed notifier in struct csi_priv Steve Longerbeam
2019-08-05 23:35 ` [PATCH 18/22] media: imx: csi: Create media links in bound notifier Steve Longerbeam
2019-08-05 23:35 ` [PATCH 19/22] media: imx: csi: Lookup endpoint fwnode with media_entity_get_fwnode_pad Steve Longerbeam
2019-08-05 23:35 ` [PATCH 20/22] media: imx: Add is_ipu_internal_subdev() Steve Longerbeam
2019-08-05 23:35 ` [PATCH 21/22] media: imx: Use media_create_fwnode_links for external links Steve Longerbeam
2019-08-05 23:35 ` [PATCH 22/22] media: imx: TODO: Remove issues regarding media link creation Steve Longerbeam
2019-08-30 21:05 ` [PATCH 00/22] media: imx: Create media links in bound notifiers 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=20190805233505.21167-8-slongerbeam@gmail.com \
    --to=slongerbeam@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    /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).