From: Pavel Machek <pavel@ucw.cz>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: sre@kernel.org, pali.rohar@gmail.com,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
laurent.pinchart@ideasonboard.com, mchehab@kernel.org,
ivo.g.dimitrov.75@gmail.com
Subject: Re: camera subdevice support was Re: [PATCH 1/4] v4l2: device_register_subdev_nodes: allow calling multiple times
Date: Sat, 4 Mar 2017 20:05:05 +0100 [thread overview]
Message-ID: <20170304190505.GA31766@amd> (raw)
In-Reply-To: <20170304123010.GT3220@valkosipuli.retiisi.org.uk>
[-- Attachment #1: Type: text/plain, Size: 3953 bytes --]
On Sat 2017-03-04 14:30:11, Sakari Ailus wrote:
> On Sat, Mar 04, 2017 at 09:55:51AM +0100, Pavel Machek wrote:
> > Dobry den! :-)
>
> Huomenta! :-)
Dobry vecer! :-).
> > > Good point. Still there may be other ways to move the lens than the voice
> > > coil (which sure is cheap), so how about "flash" and "lens-focus"?
> >
> > Ok, so something like this? (Yes, needs binding documentation and you
> > wanted it in the core.. can fix.)
> >
> > BTW, fwnode_handle_put() seems to be missing in the success path of
> > isp_fwnodes_parse() -- can you check that?
>
> Where exactly? I noticed that if notifier->num_subdevs hits the limit the
> last node isn't put properly. I'll fix that. Is that what you meant?
I guess I'm confused. I see no put on the success path. Maybe it is
put somewhere out of the function where I did not look... is the
reference held while the driver is running
> > --- a/drivers/media/platform/omap3isp/isp.c
> > +++ b/drivers/media/platform/omap3isp/isp.c
> > @@ -2114,7 +2114,7 @@ static int isp_fwnode_parse(struct device *dev, struct fwnode_handle *fwn,
> > buscfg->bus.ccp2.lanecfg.data[0].pol =
> > vfwn.bus.mipi_csi1.lane_polarity[1];
> >
> > - dev_dbg(dev, "data lane %u polarity %u, pos %u\n", i,
> > + dev_dbg(dev, "data lane %u polarity %u, pos %u\n", 0,
>
> Why?
I was printing uninitialized / unused variable, which is a no-no (and
gcc complains). I guess I should do a separate patch.
> > buscfg->bus.ccp2.lanecfg.data[0].pol,
> > buscfg->bus.ccp2.lanecfg.data[0].pos);
> >
> > @@ -2162,10 +2162,64 @@ static int isp_fwnode_parse(struct device *dev, struct fwnode_handle *fwn,
> > return 0;
> > }
> >
> > +static int camera_subdev_parse(struct device *dev, struct v4l2_async_notifier *notifier,
> > + const char *key)
> > +{
> > + struct device_node *node;
> > + struct isp_async_subdev *isd;
> > +
> > + printk("Looking for %s\n", key);
> > +
> > + node = of_parse_phandle(dev->of_node, key, 0);
>
> There may be more than one flash associated with a sensor. Speaking of which
> --- how is it associated to the sensors?
Ok, more then one flash I can understand (will fix).
> One way to do this could be to simply move the flash property to the sensor
> OF node. We could have it here, too, if the flash was not associated with
> any sensor, but I doubt that will ever be needed.
>
> This really calls fork moving this part to the framework away from
> drivers.
The rest I don't get :-(. The flash is likely connected over i2c, so
it should not become child node of omap3isp.
And yes, I agree we want to move it into the framework. Lets agree on
how it should work and where to put it, I'll debug it here then move it...
> > + if (!node)
> > + return 0;
> > +
> > + printk("Having subdevice: %p\n", node);
> > +
> > + isd = devm_kzalloc(dev, sizeof(*isd), GFP_KERNEL);
> > + if (!isd)
> > + return -ENOMEM;
> > +
> > + notifier->subdevs[notifier->num_subdevs] = &isd->asd;
> > +
> > + isd->asd.match.of.node = node;
> > + if (!isd->asd.match.of.node) {
>
> You should check node here first.
Umm. I did, above. This can't happen, AFAICT.
> > + dev_warn(dev, "bad remote port parent\n");
> > + return -EIO;
> > + }
> > +
>
> And then assign it here.
>
> isd->asd.match.fwnode.fwn = of_fwnode_handle(node);
>
> > + isd->asd.match_type = V4L2_ASYNC_MATCH_OF;
>
> V4L2_ASYNC_MATCH_FWNODE, please.
Ok. Lets see if it still works after the changes :-)... it does, good.
> > +static int camera_subdevs_parse(struct device *dev, struct v4l2_async_notifier *notifier,
> > + int max)
> > +{
> > + int res = 0;
>
> No need to assign res here.
Ok.
Thanks and best regards,
Pavel
--
(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-03-04 19:05 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-14 22:38 [PATCH 1/4] v4l2: device_register_subdev_nodes: allow calling multiple times Pavel Machek
2017-02-14 22:38 ` [PATCH 2/4] Core changes for CCP2/CSI1 support Pavel Machek
2017-02-14 22:39 ` [PATCH 3/4] smiapp: add CCP2 support Pavel Machek
2017-02-14 22:39 ` [PATCH 4/4] v4l: split lane parsing code Pavel Machek
2017-02-20 10:31 ` [PATCH 1/4] v4l2: device_register_subdev_nodes: allow calling multiple times Pavel Machek
2017-02-20 13:09 ` Sakari Ailus
2017-02-20 13:56 ` Sakari Ailus
2017-02-21 11:07 ` Pavel Machek
2017-02-21 11:11 ` Sakari Ailus
2017-02-23 22:52 ` Pavel Machek
2017-02-25 0:09 ` Pavel Machek
2017-02-25 13:44 ` Sakari Ailus
2017-02-25 21:53 ` camera subdevice support was " Pavel Machek
2017-02-25 22:56 ` Pavel Machek
2017-02-25 23:17 ` Sakari Ailus
2017-02-26 8:38 ` Pavel Machek
2017-02-26 21:36 ` Sakari Ailus
2017-03-04 8:55 ` Pavel Machek
2017-03-04 12:30 ` Sakari Ailus
2017-03-04 19:05 ` Pavel Machek [this message]
2017-03-04 19:20 ` Pavel Machek
2017-03-02 9:07 ` subdevice config into pointer (was Re: [PATCH 1/4] v4l2: device_register_subdev_nodes: allow calling multiple times) Pavel Machek
2017-03-02 14:16 ` Sakari Ailus
2017-03-02 14:58 ` Pavel Machek
2017-03-02 15:13 ` Sakari Ailus
2017-03-03 23:24 ` Pavel Machek
2017-03-02 18:39 ` Laurent Pinchart
2017-03-02 21:03 ` Pavel Machek
2017-03-02 21:18 ` Sakari Ailus
2017-02-25 22:12 ` [PATCH 1/4] v4l2: device_register_subdev_nodes: allow calling multiple times Pavel Machek
2017-02-27 19:43 ` Pavel Machek
2017-02-27 20:54 ` Sakari Ailus
2017-02-28 9:17 ` Pavel Machek
2017-02-28 11:38 ` [PATCH] omap3isp: Parse CSI1 configuration from the device tree Pavel Machek
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=20170304190505.GA31766@amd \
--to=pavel@ucw.cz \
--cc=ivo.g.dimitrov.75@gmail.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=pali.rohar@gmail.com \
--cc=sakari.ailus@iki.fi \
--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 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.