devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
To: Hans Verkuil <hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
Cc: Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Yong <yong.deng-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>,
	Mauro Carvalho Chehab
	<mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	"David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>,
	Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Hugues Fruchet <hugues.fruchet-qxv4g6HH51o@public.gmane.org>,
	Yannick Fertre <yannick.fertre-qxv4g6HH51o@public.gmane.org>,
	Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	Benoit Parrot <bparrot-l0cyMroinI0@public.gmane.org>,
	Benjamin Gaignard
	<benjamin.gaignard-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Jean-Christophe Trotin
	<jean-christophe.trotin-qxv4g6HH51o@public.gmane.org>,
	Ramesh Shanmugasundaram
	<ramesh.shanmugasundaram-kTT6dE0pTRh9uiUsa/gSgQ@public.gmane.org>,
	Minghsiu Tsai
	<minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	Krzysztof Kozlowski
	<krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH v2 1/3] media: V3s: Add support for Allwinner CSI.
Date: Wed, 23 Aug 2017 10:43:12 +0300	[thread overview]
Message-ID: <3036789.1NOcar0Ykn@avalon> (raw)
In-Reply-To: <3392c717-10ea-4d6e-4c25-9be0bbec004e-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>

Hi Hans,

On Wednesday, 23 August 2017 09:52:00 EEST Hans Verkuil wrote:
> On 08/22/2017 10:17 PM, Maxime Ripard wrote:
> > On Tue, Aug 22, 2017 at 08:43:35AM +0200, Hans Verkuil wrote:
> >>>>> +static int sun6i_video_link_setup(struct media_entity *entity,
> >>>>> +				  const struct media_pad *local,
> >>>>> +				  const struct media_pad *remote, u32 flags)
> >>>>> +{
> >>>>> +	struct video_device *vdev = media_entity_to_video_device(entity);
> >>>>> +	struct sun6i_video *video = video_get_drvdata(vdev);
> >>>>> +
> >>>>> +	if (WARN_ON(video == NULL))
> >>>>> +		return 0;
> >>>>> +
> >>>>> +	return sun6i_video_formats_init(video);
> >>>> 
> >>>> Why is this called here? Why not in video_init()?
> >>> 
> >>> sun6i_video_init is in the driver probe context. 
> >>> sun6i_video_formats_init use media_entity_remote_pad and
> >>> media_entity_to_v4l2_subdev to find the subdevs.
> >>> The media_entity_remote_pad can't work before all the media pad linked.
> >> 
> >> A video_init is typically called from the notify_complete callback.
> >> Actually, that's where the video_register_device should be created as
> >> well. When you create it in probe() there is possibly no sensor yet, so
> >> it would be a dead video node (or worse, crash when used).
> >> 
> >> There are still a lot of platform drivers that create the video node in
> >> the probe, but it's not the right place if you rely on the async loading
> >> of subdevs.
> > 
> > That's not really related, but I'm not really sure it's a good way to
> > operate. This essentially means that you might wait forever for a
> > component in your pipeline to be probed, without any chance of it
> > happening (not compiled, compiled as a module and not loaded, hardware
> > defect preventing the driver from probing properly, etc), even though
> > that component might not be essential.
> 
> We're talking straightforward video pipelines here. I.e. a source, some
> processing units and a DMA engine at the end.

As a first step possibly, but many SoCs have ISPs that are not supported by 
the initial camera driver version.

> There is no point in creating a video node if the pipeline is not complete
> since you need the full pipeline.
> 
> I've had bad experiences in the past where video nodes were created too
> soon and part of the internal state was still incomplete, causing at best
> weird behavior and at worst crashes.

Drivers obviously need to be fixed if they are buggy in that regard. Such race 
conditions are definitely something I keep an eye on when reviewing code.

> More complex devices are a whole different ballgame.
> 
> > This is how DRM operates, and you sometimes end up in some very dumb
> > situations where you wait for say, the DSI controller to probe, while
> > you only care about HDMI in your system.
> > 
> > But this seems to be on of the hot topic these days, so we might
> > discuss it further in some other thread :)

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-08-23  7:43 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-27  5:01 [PATCH v2 0/3] Initial Allwinner V3s CSI Support Yong Deng
2017-07-27  5:01 ` [PATCH v2 1/3] media: V3s: Add support for Allwinner CSI Yong Deng
     [not found]   ` <1501131697-1359-2-git-send-email-yong.deng-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-07-27 12:16     ` Baruch Siach
2017-07-27 12:25       ` Maxime Ripard
     [not found]         ` <20170727122551.qca4atjeet6whfrs-ZC1Zs529Oq4@public.gmane.org>
2017-07-31  0:47           ` Yong
2017-07-28 16:02     ` Maxime Ripard
2017-07-30  6:08       ` Baruch Siach
2017-07-31  1:48         ` Yong
2017-07-31  5:13           ` Baruch Siach
2017-08-21 20:21         ` Maxime Ripard
     [not found]           ` <20170821202145.kmxancepyq55v3o2-ZC1Zs529Oq4@public.gmane.org>
2017-08-23  2:41             ` Yong
2017-08-23 19:24               ` Maxime Ripard
2017-08-24  1:43                 ` Yong
     [not found]       ` <20170728160233.xooevio4hoqkgfaq-ZC1Zs529Oq4@public.gmane.org>
2017-07-31  3:16         ` Yong
2017-08-22 17:43           ` Maxime Ripard
     [not found]             ` <20170822174339.6woauylgzkgqxygk-ZC1Zs529Oq4@public.gmane.org>
2017-08-23  2:32               ` Yong
     [not found]                 ` <20170823103216.e43283308c195c4a80d929fa-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-08-25 13:41                   ` Maxime Ripard
     [not found]                     ` <20170825134114.rwttrmzw5gbtwdx2-ZC1Zs529Oq4@public.gmane.org>
2017-08-28  7:00                       ` Yong
2017-08-21 14:37     ` Hans Verkuil
     [not found]       ` <5082b6d6-29a7-f101-8cba-13fce8983c89-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-08-22  3:01         ` Yong
     [not found]           ` <20170822110148.734c01b69dacc57fa08965d1-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-08-22  6:43             ` Hans Verkuil
     [not found]               ` <8dd8c350-cd45-5cd9-65cc-67102944811f-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-08-22  7:51                 ` Yong
2017-08-22 20:17                 ` Maxime Ripard
2017-08-22 20:52                   ` Laurent Pinchart
     [not found]                   ` <20170822201731.hyjqrbkhggaoomfl-YififvaboMKzQB+pC5nmwQ@public.gmane.org>
2017-08-23  6:52                     ` Hans Verkuil
     [not found]                       ` <3392c717-10ea-4d6e-4c25-9be0bbec004e-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-08-23  7:43                         ` Laurent Pinchart [this message]
2017-08-23 11:13                           ` icenowy
2017-09-21 13:45     ` 'Ondřej Jirman' via linux-sunxi
2017-11-21 15:48     ` Maxime Ripard
     [not found]       ` <20171121154827.5a35xa6zlqrrvkxx-ZC1Zs529Oq4@public.gmane.org>
2017-11-22  1:33         ` Yong
     [not found]           ` <20171122093306.d30fe641f269d62daa1f66b4-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-11-22  9:45             ` Maxime Ripard
     [not found]               ` <20171122094526.nqxfy2e5jzxw7nl4-ZC1Zs529Oq4@public.gmane.org>
2017-11-23  1:14                 ` Yong
     [not found]                   ` <20171123091444.4bed66dffeb36ecea8dfa706-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-11-25 16:02                     ` Maxime Ripard
     [not found]                       ` <20171125160233.skefdpkjy4peh7et-ZC1Zs529Oq4@public.gmane.org>
2017-12-04  9:45                         ` Yong
     [not found]                           ` <20171204174511.a5be3b521e9a7c7004d32d0d-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-12-15 10:50                             ` Maxime Ripard
     [not found]                               ` <20171215105047.ist7epuida2uao74-ZC1Zs529Oq4@public.gmane.org>
2017-12-15 11:01                                 ` Yong
     [not found]                                   ` <20171215190140.d4df71b202b9803baa6a1e10-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-12-15 22:14                                     ` Maxime Ripard
2017-09-22  0:57   ` 回复:[linux-sunxi] " 邓永
2017-09-22  8:44   ` Mylene JOSSERAND
     [not found]     ` <20170922104413.5d7d64e7-K8i4uRanGBt8XcdJbWeDu7NAH6kLmebB@public.gmane.org>
2017-09-22  9:08       ` Yong
2017-07-27  5:01 ` [PATCH v2 2/3] dt-bindings: media: Add Allwinner V3s Camera Sensor Interface (CSI) Yong Deng
     [not found]   ` <1501131697-1359-3-git-send-email-yong.deng-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-07-28 16:03     ` Maxime Ripard
     [not found]       ` <20170728160353.gqb2f47v6ujozvxz-ZC1Zs529Oq4@public.gmane.org>
2017-07-31  0:50         ` Yong
2017-08-03 19:14     ` Rob Herring
2017-08-07  1:00       ` Yong
2017-12-19 11:53   ` Sakari Ailus
     [not found]     ` <20171219115327.ofs5xwwimpn7x72n-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-12-21  2:49       ` Yong
2017-12-27 21:47         ` Sakari Ailus
     [not found]           ` <20171227214723.rcssyay2lqqjf6ty-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-12-28  1:04             ` Yong
2017-07-27  5:01 ` [PATCH v2 3/3] media: MAINTAINERS: add entries for Allwinner V3s CSI Yong Deng
     [not found]   ` <1501131697-1359-4-git-send-email-yong.deng-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-12-19 11:48     ` Sakari Ailus
     [not found]       ` <20171219114802.gi7db7xhm3eh4udt-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-12-21  2:40         ` Yong
  -- strict thread matches above, loose matches on Subject: below --
2017-07-27  3:51 [PATCH v2 0/3] Initial Allwinner V3s CSI Support Yong Deng
     [not found] ` <1501127474-40895-1-git-send-email-yong.deng-+3dxTMOEIRNWk0Htik3J/w@public.gmane.org>
2017-07-27  3:51   ` [PATCH v2 1/3] media: V3s: Add support for Allwinner CSI Yong Deng
2017-07-27  3:51   ` Yong Deng
2017-07-27  3:51 ` Yong Deng
2017-07-27  3:51 ` Yong Deng

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=3036789.1NOcar0Ykn@avalon \
    --to=laurent.pinchart-rylnwiuwjnjg/c1bvhzhaw@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=benjamin.gaignard-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=bparrot-l0cyMroinI0@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=hugues.fruchet-qxv4g6HH51o@public.gmane.org \
    --cc=hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org \
    --cc=jean-christophe.trotin-qxv4g6HH51o@public.gmane.org \
    --cc=krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
    --cc=p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=ramesh.shanmugasundaram-kTT6dE0pTRh9uiUsa/gSgQ@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.org \
    --cc=yannick.fertre-qxv4g6HH51o@public.gmane.org \
    --cc=yong.deng-+3dxTMOEIRNWk0Htik3J/w@public.gmane.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).