Re: [PATCH v6 2/8] Documentation: of: Document graph bindings

Philipp Zabel
2014-03-10T13:57:49Z

Am Montag, den 10.03.2014, 12:37 +0100 schrieb Laurent Pinchart:
> Hi Philipp,
>
> On Monday 10 March 2014 10:28:10 Philipp Zabel wrote:
> > Hi Grant,
> >
> > Am Freitag, den 07.03.2014, 18:27 +0000 schrieb Grant Likely:
> > > On Wed, 5 Mar 2014 10:20:36 +0100, Philipp Zabel wrote:
> > > > The device tree graph bindings as used by V4L2 and documented in
> > > > Documentation/device-tree/bindings/media/video-interfaces.txt contain
> > > > generic parts that are not media specific but could be useful for any
> > > > subsystem with data flow between multiple devices. This document
> > > > describes the generic bindings.
> > > >
> > > > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> > >
> > > See my comments on the previous version. My concerns are the handling of
> > > the optional 'ports' node and the usage of reverse links.
> >
> > would this change address your concern about the reverse links? As the
> > preexisting video-interfaces.txt bindings mandate the reverse links, I
> > worry about introducing a second, subtly different binding. It should be
> > noted somewhere in video-interfaces.txt that the reverse links are
> > deprecated for the but still supported by the code for backwards
> > compatibility.
>
> I'm very much against removing the reverse links. Without them the graph will
> become much more complex to parse. You can try to convince me, but for now I'm
> afraid it's a NACK.

For the record, I'd prefer to keep them, too. Besides the parsing
complexity, it just feels more natural to take both ends and connect
them together. If phandles are only permitted to point in one direction,
there's always the additional question which direction is the right one.

Assume, for example, the following setup of two SoC digital audio
interfaces connected to an audio codec and a bluetooth chip,
respectively. The audio codec has a second audio interface that is
connected directly to the bluetooth chip for headset operation:

,-------. ,--------.
| dai1 [0]---[0] codec |
`-------' ,-[1] |
| `--------'
| ,-----.
,-------. `-[1] bt |
| dai2 [0]---[0] |
`-------' `-----´

How to decide which direction the codec:1 <--> bt:1 link should point
in?

regards
Philipp