From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: Jacopo Mondi <jacopo@jmondi.org> Cc: "Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>, linux-media@vger.kernel.org, "Sakari Ailus" <sakari.ailus@linux.intel.com>, "Jacopo Mondi" <jacopo+renesas@jmondi.org>, "Niklas Söderlund" <niklas.soderlund@ragnatech.se>, "Kieran Bingham" <kieran.bingham+renesas@ideasonboard.com>, "Lad Prabhakar" <prabhakar.csengg@gmail.com>, linux-renesas-soc@vger.kernel.org Subject: Re: [PATCH v2 3/4] media: v4l2-async: Log message in case of heterogenous fwnode match Date: Sun, 21 Jun 2020 02:44:05 +0300 Message-ID: <20200620234405.GD20179@pendragon.ideasonboard.com> (raw) In-Reply-To: <20200318140326.nbgyhad3zxgaxjgd@uno.localdomain> Hi Jacopo, On Wed, Mar 18, 2020 at 03:03:26PM +0100, Jacopo Mondi wrote: > On Wed, Mar 18, 2020 at 02:25:06AM +0200, Laurent Pinchart wrote: > > When a notifier supplies a device fwnode and a subdev supplies an > > endpoint fwnode, incorrect matches may occur if multiple subdevs > > correspond to the same device fwnode. This can't be handled > > transparently in the framework, and requires the notifier to switch to > > endpoint fwnodes. Log a message to notify of this problem. A second > > message is added to help accelerating the transition to endpoint > > matching. > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > > --- > > drivers/media/v4l2-core/v4l2-async.c | 24 +++++++++++++++++++++++- > > 1 file changed, 23 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > > index 224b39a7aeb1..9f393a7be455 100644 > > --- a/drivers/media/v4l2-core/v4l2-async.c > > +++ b/drivers/media/v4l2-core/v4l2-async.c > > @@ -77,6 +77,7 @@ static bool match_fwnode(struct v4l2_async_notifier *notifier, > > struct fwnode_handle *dev_fwnode; > > bool asd_fwnode_is_ep; > > bool sd_fwnode_is_ep; > > + struct device *dev; > > const char *name; > > > > /* > > @@ -113,7 +114,28 @@ static bool match_fwnode(struct v4l2_async_notifier *notifier, > > > > fwnode_handle_put(dev_fwnode); > > > > - return dev_fwnode == other_fwnode; > > + if (dev_fwnode != other_fwnode) > > + return false; > > + > > + /* > > + * We have an heterogenous match. Retrieve the struct device of the > > + * side that matched on a device fwnode to print its driver name. > > + */ > > + if (sd_fwnode_is_ep) > > + dev = notifier->v4l2_dev ? notifier->v4l2_dev->dev > > + : notifier->sd->dev; > > Have you considered passing the device directly ? seems notifier is > only used for that... Yes, but I thought that match functions could use the notifier for other purposes in the future, so I think this approach is more versatile. > Apart this small nit, for the series > Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org> > > > + else > > + dev = sd->dev; > > + > > + if (dev && dev->driver) { > > + if (sd_fwnode_is_ep) > > + dev_info(dev, "Driver %s uses device fwnode, incorrect match may occur\n", > > + dev->driver->name); > > + dev_info(dev, "Consider updating driver %s to match on endpoints\n", > > + dev->driver->name); > > + } > > + > > + return true; > > } > > > > static bool match_custom(struct v4l2_async_notifier *notifier, -- Regards, Laurent Pinchart
next prev parent reply other threads:[~2020-06-20 23:44 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-18 0:25 [PATCH v2 0/4] media: v4l2-async: Accept endpoints and devices for fwnode matching Laurent Pinchart 2020-03-18 0:25 ` [PATCH v2 1/4] " Laurent Pinchart 2020-03-18 0:25 ` [PATCH v2 2/4] media: v4l2-async: Pass notifier pointer to match functions Laurent Pinchart 2020-03-18 8:09 ` Sakari Ailus 2020-03-18 8:58 ` Kieran Bingham 2020-03-18 0:25 ` [PATCH v2 3/4] media: v4l2-async: Log message in case of heterogenous fwnode match Laurent Pinchart 2020-03-18 9:16 ` Kieran Bingham 2020-06-20 23:14 ` Laurent Pinchart 2020-03-18 9:16 ` Geert Uytterhoeven 2020-06-20 23:41 ` Laurent Pinchart 2020-03-18 14:03 ` Jacopo Mondi 2020-06-20 23:44 ` Laurent Pinchart [this message] 2020-03-18 0:25 ` [PATCH v2 4/4] media: v4l2-async: Don't check fwnode name to detect endpoint Laurent Pinchart 2020-03-18 9:22 ` Kieran Bingham 2020-06-20 23:04 ` Laurent Pinchart 2020-03-18 18:18 ` [PATCH v2 0/4] media: v4l2-async: Accept endpoints and devices for fwnode matching Lad, Prabhakar
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=20200620234405.GD20179@pendragon.ideasonboard.com \ --to=laurent.pinchart@ideasonboard.com \ --cc=jacopo+renesas@jmondi.org \ --cc=jacopo@jmondi.org \ --cc=kieran.bingham+renesas@ideasonboard.com \ --cc=laurent.pinchart+renesas@ideasonboard.com \ --cc=linux-media@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=niklas.soderlund@ragnatech.se \ --cc=prabhakar.csengg@gmail.com \ --cc=sakari.ailus@linux.intel.com \ /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
Unnamed repository; edit this file 'description' to name the repository. This inbox may be cloned and mirrored by anyone: git clone --mirror http://archive.lwn.net:8080/linux-media/0 linux-media/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-media linux-media/ http://archive.lwn.net:8080/linux-media \ linux-media@vger.kernel.org lwn-linux-media@archive.lwn.net public-inbox-index linux-media Example config snippet for mirrors. Newsgroup available over NNTP: nntp://archive.lwn.net/lwn.kernel.linux-media AGPL code for this site: git clone https://public-inbox.org/public-inbox.git