From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>,
Grant Likely <grant.likely@linaro.org>,
Tomi Valkeinen <tomi.valkeinen@ti.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Sascha Hauer <s.hauer@pengutronix.de>,
Rob Herring <robherring2@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Sylwester Nawrocki <s.nawrocki@samsung.com>,
Kyungmin Park <kyungmin.park@samsung.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Philipp Zabel <philipp.zabel@gmail.com>
Subject: Re: [RFC PATCH] [media]: of: move graph helpers from drivers/media/v4l2-core to drivers/of
Date: Thu, 20 Mar 2014 19:49:20 +0100 [thread overview]
Message-ID: <4700752.xAVjk21KIL@avalon> (raw)
In-Reply-To: <20140320184316.GB7528@n2100.arm.linux.org.uk>
On Thursday 20 March 2014 18:43:16 Russell King - ARM Linux wrote:
> On Thu, Mar 20, 2014 at 03:38:04PM -0300, Mauro Carvalho Chehab wrote:
> > Em Thu, 20 Mar 2014 17:54:31 +0000 Grant Likely escreveu:
> > > On Wed, 12 Mar 2014 10:25:56 +0000, Russell King - ARM Linux wrote:
> > > > On Mon, Mar 10, 2014 at 02:52:53PM +0100, Laurent Pinchart wrote:
> > > > > In theory unidirectional links in DT are indeed enough. However,
> > > > > let's not forget the following.
> > > > >
> > > > > - There's no such thing as single start points for graphs. Sure, in
> > > > > some simple cases the graph will have a single start point, but
> > > > > that's not a generic rule. For instance the camera graphs
> > > > > http://ideasonboard.org/media/omap3isp.ps and
> > > > > http://ideasonboard.org/media/eyecam.ps have two camera sensors, and
> > > > > thus two starting points from a data flow point of view.
> > > >
> > > > I think we need to stop thinking of a graph linked in terms of data
> > > > flow - that's really not useful.
> > > >
> > > > Consider a display subsystem. The CRTC is the primary interface for
> > > > the CPU - this is the "most interesting" interface, it's the interface
> > > > which provides access to the picture to be displayed for the CPU.
> > > > Other interfaces are secondary to that purpose - reading the I2C DDC
> > > > bus for the display information is all secondary to the primary
> > > > purpose of displaying a picture.
> > > >
> > > > For a capture subsystem, the primary interface for the CPU is the
> > > > frame grabber (whether it be an already encoded frame or not.) The
> > > > sensor devices are all secondary to that.
> > > >
> > > > So, the primary software interface in each case is where the data for
> > > > the primary purpose is transferred. This is the point at which these
> > > > graphs should commence since this is where we would normally start
> > > > enumeration of the secondary interfaces.
> > > >
> > > > V4L2 even provides interfaces for this: you open the capture device,
> > > > which then allows you to enumerate the capture device's inputs, and
> > > > this in turn allows you to enumerate their properties. You don't open
> > > > a particular sensor and work back up the tree.
> > > >
> > > > I believe trying to do this according to the flow of data is just
> > > > wrong.
> > > > You should always describe things from the primary device for the CPU
> > > > towards the peripheral devices and never the opposite direction.
> > >
> > > Agreed.
> >
> > I don't agree, as what's the primary device is relative.
> >
> > Actually, in the case of a media data flow, the CPU is generally not
> > the primary device.
> >
> > Even on general purpose computers, if the full data flow is taken into
> > the account, the CPU is a mere device that will just be used to copy
> > data either to GPU and speakers or to disk, eventually doing format
> > conversions, when the hardware is cheap and don't provide format
> > converters.
> >
> > On more complex devices, like the ones we want to solve with the
> > media controller, like an embedded hardware like a TV or a STB, the CPU
> > is just an ancillary component that could even hang without stopping
> > TV reception, as the data flow can be fully done inside the chipset.
>
> The CPU is the _controlling_ component - it's the component that has to
> configure the peripherals so they all talk to each other in the right
> way. Therefore, the view of it needs to be CPU centric.
>
> If we were providing a DT description for consumption by some other
> device in the system, then the view should be as seen from that device
> instead.
>
> Think about this. Would you describe a system starting at, say, the
> system keyboard, and branching all the way through just becuase that's
> how you interact with it, or would you describe it from the CPUs point
> of view because that's what has to be in control of the system.
DT has been designed to represent a control-based view of the system. It does
so pretty well using its tree-based model. However, it doesn't have a native
way to represent a flow-based graph, hence the OF graph solution we're
discussing. The whole point of this proposal is to represent the topology of
the media device, not how each entity is controlled.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2014-03-20 18:49 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-11 11:45 [RFC PATCH] [media]: of: move graph helpers from drivers/media/v4l2-core to drivers/of Philipp Zabel
[not found] ` < 4339286.FzhQ2m6hoA@avalon>
[not found] ` < CAL_Jsq+U9zU1i+STLHMBjY5BeEP6djYnJVE5X1ix-D2q_zWztQ@mail.gmail.com>
[not found] ` < 20140217181451.7EB7FC4044D@trevor.secretlab.ca>
[not found] ` < 20140320153804.35d5b835@samsung.com>
[not found] ` < 20140310145815.17595C405FA@trevor.secretlab.ca>
2014-02-11 13:56 ` Rob Herring
2014-02-11 14:52 ` Russell King - ARM Linux
2014-02-11 15:23 ` Laurent Pinchart
2014-02-11 16:36 ` Philipp Zabel
[not found] ` <1392136617.6943.33.camel-/rZezPiN1rtR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2014-02-11 17:22 ` Sylwester Nawrocki
2014-02-11 17:41 ` Mauro Carvalho Chehab
2014-02-11 21:00 ` Guennadi Liakhovetski
2014-02-11 21:46 ` Philipp Zabel
2014-02-11 17:24 ` Laurent Pinchart
2014-02-11 16:30 ` Rob Herring
2014-02-11 15:27 ` Philipp Zabel
2014-02-17 18:14 ` Grant Likely
2014-02-18 7:06 ` Sascha Hauer
2014-02-18 16:26 ` Grant Likely
[not found] ` < 1393263389.3091.82.camel@pizza.hi.pengutronix.de>
[not found] ` <20140226110114. CF2C7C40A89@trevor.secretlab.ca>
[not found] ` <20140218162627.32BA4C40517-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2014-02-24 17:36 ` Philipp Zabel
2014-02-26 11:01 ` Grant Likely
2014-02-26 14:48 ` Philipp Zabel
[not found] ` <1393426129.3248.64.camel-+qGW7pzALmz7o/J7KWpOmN53zsg1cpMQ@public.gmane.org>
2014-02-27 8:36 ` Tomi Valkeinen
2014-03-07 17:06 ` Grant Likely
2014-03-08 10:57 ` Tomi Valkeinen
2014-03-07 17:05 ` Grant Likely
2014-03-08 10:33 ` Tomi Valkeinen
2014-03-08 11:41 ` Grant Likely
2014-03-08 23:25 ` Sylwester Nawrocki
2014-03-10 10:18 ` Tomi Valkeinen
[not found] ` <531D916C.2010903-l0cyMroinI0@public.gmane.org>
2014-03-10 13:52 ` Laurent Pinchart
2014-03-10 14:10 ` Tomi Valkeinen
2014-03-10 14:58 ` Grant Likely
2014-03-10 15:15 ` Laurent Pinchart
2014-03-10 15:40 ` Philipp Zabel
2014-03-11 11:43 ` Laurent Pinchart
2014-03-11 12:59 ` Tomi Valkeinen
[not found] ` <1883687.VdfitvQEN3@samsung.com>
[not found] ` <avalon@samsung.com>
[not found] ` <531F08A8.300-l0cyMroinI0@public.gmane.org>
2014-03-11 13:16 ` Laurent Pinchart
2014-03-11 13:27 ` Tomi Valkeinen
2014-03-11 13:44 ` Philipp Zabel
2014-03-20 17:23 ` Grant Likely
2014-03-21 10:44 ` Andrzej Hajda
2014-03-21 11:47 ` Grant Likely
2014-03-21 12:16 ` Tomi Valkeinen
[not found] ` <532C2D94.4020705-l0cyMroinI0@public.gmane.org>
2014-03-21 14:33 ` Grant Likely
2014-03-20 17:09 ` Grant Likely
2014-03-11 13:04 ` Andrzej Hajda
[not found] ` <531F09E2.3070407-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-03-20 17:33 ` Grant Likely
2014-03-20 17:01 ` Grant Likely
2014-03-21 12:10 ` Tomi Valkeinen
2014-03-11 15:07 ` Philipp Zabel
[not found] ` <1394550420.3772.29.camel-+qGW7pzALmz7o/J7KWpOmN53zsg1cpMQ@public.gmane.org>
2014-03-11 15:21 ` Laurent Pinchart
2014-03-11 18:52 ` Philipp Zabel
2014-03-20 17:53 ` Grant Likely
2014-03-20 17:36 ` Grant Likely
2014-03-12 10:25 ` Russell King - ARM Linux
2014-03-12 10:47 ` Tomi Valkeinen
[not found] ` <53203B2D.6080201-l0cyMroinI0@public.gmane.org>
2014-03-12 11:21 ` Laurent Pinchart
2014-03-20 17:54 ` Grant Likely
[not found] ` <20140320175432.0559CC4067A-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2014-03-20 18:16 ` Laurent Pinchart
2014-03-20 18:18 ` Russell King - ARM Linux
[not found] ` <20140320181820.GY7528-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2014-03-20 18:50 ` Laurent Pinchart
2014-03-20 19:27 ` Laurent Pinchart
2014-03-20 18:38 ` Mauro Carvalho Chehab
2014-03-20 18:43 ` Russell King - ARM Linux
2014-03-20 18:49 ` Laurent Pinchart [this message]
2014-03-21 8:20 ` Tomi Valkeinen
[not found] ` <20140320153804.35d5b835@ samsung.com>
[not found] ` <20140320153804.35d5b835-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-03-20 18:48 ` Grant Likely
[not found] ` <20140320184816.7AB02C4067A-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2014-03-20 18:52 ` Laurent Pinchart
2014-03-20 23:12 ` Grant Likely
[not found] ` <20140320231250.8F0E0C412EA-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2014-03-20 23:26 ` Laurent Pinchart
2014-03-21 8:15 ` Grant Likely
2014-03-21 12:44 ` Laurent Pinchart
2014-03-21 13:26 ` Grant Likely
2014-03-10 14:41 ` Grant Likely
2014-03-08 11:54 ` Russell King - ARM Linux
[not found] ` <20140217181451.7EB7FC4044D-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2014-02-18 10:43 ` Sylwester Nawrocki
2014-02-18 13:41 ` Philipp Zabel
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=4700752.xAVjk21KIL@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@linaro.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=m.chehab@samsung.com \
--cc=p.zabel@pengutronix.de \
--cc=philipp.zabel@gmail.com \
--cc=robh+dt@kernel.org \
--cc=robherring2@gmail.com \
--cc=s.hauer@pengutronix.de \
--cc=s.nawrocki@samsung.com \
--cc=tomi.valkeinen@ti.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
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).