From: Marco Felsch <m.felsch@pengutronix.de>
To: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Cc: Rob Herring <robh@kernel.org>,
mchehab@kernel.org, mark.rutland@arm.com, p.zabel@pengutronix.de,
afshin.nasser@gmail.com, javierm@redhat.com,
sakari.ailus@linux.intel.com, laurent.pinchart@ideasonboard.com,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
kernel@pengutronix.de
Subject: Re: [PATCH 20/22] [media] tvp5150: Add input port connectors DT bindings
Date: Sat, 4 Aug 2018 11:04:05 +0200 [thread overview]
Message-ID: <20180804090405.GA437@pengutronix.de> (raw)
In-Reply-To: <20180803143030.3cd43921@coco.lan>
Hi Mauro,
On 18-08-03 14:30, Mauro Carvalho Chehab wrote:
> Em Fri, 3 Aug 2018 09:29:53 +0200
> Marco Felsch <m.felsch@pengutronix.de> escreveu:
>
> > Hi Rob,
> >
> > first of all, thanks for the review. After some discussion with the
> > media guys I have a question about the dt-bindings.
> >
> > On 18-07-03 17:23, Rob Herring wrote:
> > > On Thu, Jun 28, 2018 at 06:20:52PM +0200, Marco Felsch wrote:
> > > > The TVP5150/1 decoders support different video input sources to their
> > > > AIP1A/B pins.
> > > >
> > > > Possible configurations are as follows:
> > > > - Analog Composite signal connected to AIP1A.
> > > > - Analog Composite signal connected to AIP1B.
> > > > - Analog S-Video Y (luminance) and C (chrominance)
> > > > signals connected to AIP1A and AIP1B respectively.
> > > >
> > > > This patch extends the device tree bindings documentation to describe
> > > > how the input connectors for these devices should be defined in a DT.
> > > >
> > > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > > ---
> > > > .../devicetree/bindings/media/i2c/tvp5150.txt | 118 +++++++++++++++++-
> > > > 1 file changed, 113 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/media/i2c/tvp5150.txt b/Documentation/devicetree/bindings/media/i2c/tvp5150.txt
> > > > index 8c0fc1a26bf0..feed8c911c5e 100644
> > > > --- a/Documentation/devicetree/bindings/media/i2c/tvp5150.txt
> > > > +++ b/Documentation/devicetree/bindings/media/i2c/tvp5150.txt
> > > > @@ -12,11 +12,23 @@ Optional Properties:
> > > > - pdn-gpios: phandle for the GPIO connected to the PDN pin, if any.
> > > > - reset-gpios: phandle for the GPIO connected to the RESETB pin, if any.
> > > >
> > > > -The device node must contain one 'port' child node for its digital output
> > > > -video port, in accordance with the video interface bindings defined in
> > > > -Documentation/devicetree/bindings/media/video-interfaces.txt.
> > > > +The device node must contain one 'port' child node per device input and output
> > > > +port, in accordance with the video interface bindings defined in
> > > > +Documentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
> > > > +are numbered as follows
> > > >
> > > > -Required Endpoint Properties for parallel synchronization:
> > > > + Name Type Port
> > > > + --------------------------------------
> > > > + AIP1A sink 0
> > > > + AIP1B sink 1
> > > > + S-VIDEO sink 2
> > > > + Y-OUT src 3
> >
> > Do you think it's correct to have a seperate port for each binding?
> > Since the S-Video port is a combination of AIP1A and AIP1B. After a
> > discussion with Mauro [1] the TVP5150 should have only 3 pads. Since the
> > pads are directly mappped to the dt-ports this will correspond to three
> > ports (2 in, 1 out). Now the svideo connector will be mapped to a second
> > endpoint in each port:
> >
> > port@0
> > endpoint@0 -----------> Comp0-Con
> > endpoint@1 -----+-----> Svideo-Con
> > port@1 |
> > endpoint@0 -----|-----> Comp1-Con
> > endpoint@1 -----+
> > port@2
> > endpoint
>
> For tvp5150, the model is like the above, so just one port at the
> S-video connector.
Okay, but this won't work. I tested it yesterday. Since the svideo port
is linked to two endpoints and the DTC will throw an error
"ERROR (duplicate_label)". Which make sens, but I covered it to late...
So we have two opportunities: 1) the one you described below or 2) we
map only port@0/port@1 to the svideo connector.
Anyway, should endpoint@1 always refer to the svideo connector or should
it be independent (in case of 1xcomp-con and 1xsvideo-con)?
>
> Yet, for more complex devices that would allow switching the
> endpoints at the Svideo connector, the model would be:
>
> port@0
> endpoint@0 (AIP1A) -----------> Comp0-Con
> endpoint@1 (AIP1B) -----------> Svideo-Con port@0 (luminance)
> port@1
> endpoint@0 (AIP1A) -----------> Comp1-Con
> endpoint@1 (AIP1B) -----------> Svideo-Con port@1 (chrominance)
> port@2
> endpoint (video bitstream output)
>
> E. g. the S-Video connector will also have two ports, one for the
> chrominance signal and another one for the luminance one.
>
> > I don't like that solution that much, since the mapping is now signal
> > based. We also don't map each line of a parallel port.
> >
> > A quick grep shows that currently each device using a svideo connector
> > seperates them in a own port as I did.
>
> No. I've no idea about how you did the grep, but this is not how other
> drivers handle it currently.
Sorry for that. My grep only covered the dt related connectors and not the
connectors within the mc framework.
>
> Right now, on all hardware where connectors are mapped, there is just one
> input port and multiple connectors linked to it. You can see some examples
> here:
>
> https://www.infradead.org/~mchehab/mc-next-gen/au0828_hvr950q.png
> https://www.infradead.org/~mchehab/mc-next-gen/cx231xx_hvr930c_hd.png
> https://www.infradead.org/~mchehab/mc-next-gen/em28xx_hvr950.png
> https://www.infradead.org/~mchehab/mc-next-gen/playtv_usb.png
> https://www.infradead.org/~mchehab/mc-next-gen/saa7134-asus-p7131-dual.png
> https://www.infradead.org/~mchehab/mc-next-gen/wintv_usb2.png
>
> The problem with this approach is that it doesn't reflect how the
> hardware is actually wired. On some hardware similar to tvp5150,
> it may be possible, for example, to wire the S-Video both ways,
> e. g., something equivalent to (using tvp5150 terminology):
>
> Luminance -> AIP1A
> Chrominance -> AIP1B
> or
> Luminance -> AIP1B
> Chrominance -> AIP1A
>
> So, just one pad wouldn't allow this kind of config.
>
> Having three pads is equally wrong, as there's no S-Video port on
> tvp5150. All it has physically are two inputs: AIP1A and AIP1B.
>
> If you want to see the discussions we had, they are at:
> https://linuxtv.org/irc/irclogger_log/media-maint?date=2018-08-02,Thu
>
> I'm preparing right now a summary of them. will copy you once I
> finish it.
I read the channel and your RFC patch, thanks for the discussion. One
thing I missed is to enable the svideo-link. I think hans wanted to
enable the links seperatly, but what about the "easy" use-case (no
chroma/luma seperation). If the user wants to enable svideo,
this pad should be linked to both tvp5150 input-pads and both links
should be enabled simultaneous. Should this be handeld by a pad flag?
Thanks,
Marco
>
> > IMHO this is a uncomplicate
> > solution, but don't abstract the HW correctly. What is your opinion
> > about that? Is it correct to have seperate (virtual) port or should I
> > map the svideo connector as shown above?
> >
> > [1] https://www.spinics.net/lists/devicetree/msg242825.html
>
> Anyway, I'm writing a summary of our discussions
>
> Thanks,
> Mauro
>
next prev parent reply other threads:[~2018-08-04 9:04 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-28 16:20 [PATCH 00/21] TVP5150 fixes and new features Marco Felsch
2018-06-28 16:20 ` [PATCH 01/22] [media] tvp5150: fix width alignment during set_selection() Marco Felsch
2018-06-28 16:20 ` [PATCH 02/22] [media] tvp5150: fix switch exit in set control handler Marco Felsch
2018-06-28 16:20 ` [PATCH 03/22] [media] tvp5150: convert register access to regmap Marco Felsch
2018-06-28 16:20 ` [PATCH 04/22] [media] tvp5150: make use of regmap_update_bits Marco Felsch
2018-06-28 16:20 ` [PATCH 05/22] [media] v4l2-rect.h: add position and equal helpers Marco Felsch
2018-06-29 14:12 ` Sakari Ailus
2018-06-28 16:20 ` [PATCH 06/22] [media] tvp5150: add FORMAT_TRY support for get/set selection handlers Marco Felsch
2018-07-31 0:01 ` Mauro Carvalho Chehab
2018-06-28 16:20 ` [PATCH 07/22] [media] tvp5150: add default format helper Marco Felsch
2018-06-28 16:20 ` [PATCH 08/22] [media] tvp5150: trigger autodetection on subdev open to reset cropping Marco Felsch
2018-06-28 16:20 ` [PATCH 09/22] [media] tvp5150: fix standard autodetection Marco Felsch
2018-06-28 16:20 ` [PATCH 10/22] [media] tvp5150: split reset/enable routine Marco Felsch
2018-06-28 16:20 ` [PATCH 11/22] [media] tvp5150: remove pin configuration from initialization tables Marco Felsch
2018-06-28 16:20 ` [PATCH 12/22] [media] tvp5150: Add sync lock interrupt handling Marco Felsch
2018-06-28 16:20 ` [PATCH 13/22] [media] tvp5150: disable output while signal not locked Marco Felsch
2018-07-30 18:00 ` Mauro Carvalho Chehab
2018-07-30 18:06 ` Mauro Carvalho Chehab
2018-07-31 6:02 ` Marco Felsch
2018-06-28 16:20 ` [PATCH 14/22] [media] tvp5150: issue source change events Marco Felsch
2018-06-28 16:20 ` [PATCH 15/22] [media] tvp5150: add sync lock/loss signal debug messages Marco Felsch
2018-06-28 16:20 ` [PATCH 16/22] [media] tvp5150: add querystd Marco Felsch
2018-07-30 18:09 ` Mauro Carvalho Chehab
2018-08-01 13:21 ` Marco Felsch
2018-08-01 14:22 ` Mauro Carvalho Chehab
2018-08-01 14:49 ` Marco Felsch
2018-08-01 15:50 ` Mauro Carvalho Chehab
2018-08-02 8:01 ` Marco Felsch
2018-08-02 9:49 ` Mauro Carvalho Chehab
2018-08-02 10:16 ` Marco Felsch
2018-08-02 14:38 ` Mauro Carvalho Chehab
2018-08-02 10:54 ` Ian Arkver
2018-08-02 11:58 ` Marco Felsch
2018-06-28 16:20 ` [PATCH 17/22] [media] tvp5150: add g_std callback Marco Felsch
2018-06-28 16:20 ` [PATCH 18/22] partial revert of "[media] tvp5150: add HW input connectors support" Marco Felsch
2018-07-03 23:19 ` Rob Herring
2018-07-30 18:18 ` Mauro Carvalho Chehab
2018-07-31 7:01 ` Marco Felsch
2018-07-31 8:52 ` Javier Martinez Canillas
2018-07-31 10:06 ` Mauro Carvalho Chehab
2018-07-31 11:26 ` Javier Martinez Canillas
2018-07-31 12:36 ` Marco Felsch
2018-07-31 12:52 ` Javier Martinez Canillas
2018-07-31 13:30 ` Marco Felsch
2018-07-31 19:56 ` Mauro Carvalho Chehab
2018-08-01 12:10 ` Marco Felsch
2018-08-01 13:32 ` Mauro Carvalho Chehab
2018-08-01 15:49 ` Marco Felsch
2018-08-01 16:23 ` Javier Martinez Canillas
2018-07-31 13:01 ` Mauro Carvalho Chehab
2018-07-31 13:22 ` Mauro Carvalho Chehab
2018-06-28 16:20 ` [PATCH 19/22] [media] tvp5150: add input source selection of_graph support Marco Felsch
2018-07-30 18:29 ` Mauro Carvalho Chehab
2018-08-08 15:29 ` Marco Felsch
2018-08-08 18:52 ` Mauro Carvalho Chehab
2018-08-09 12:55 ` Marco Felsch
2018-08-09 13:36 ` Mauro Carvalho Chehab
2018-08-09 14:35 ` Marco Felsch
2018-08-09 16:04 ` Mauro Carvalho Chehab
2018-08-09 16:34 ` Marco Felsch
2018-06-28 16:20 ` [PATCH 20/22] [media] tvp5150: Add input port connectors DT bindings Marco Felsch
2018-07-03 23:23 ` Rob Herring
2018-07-11 8:50 ` Marco Felsch
2018-08-03 7:29 ` Marco Felsch
2018-08-03 17:30 ` Mauro Carvalho Chehab
2018-08-04 9:04 ` Marco Felsch [this message]
2018-06-28 16:20 ` [PATCH 21/22] [media] tvp5150: initialize subdev before parsing device tree Marco Felsch
2018-06-28 16:20 ` [PATCH 22/22] [media] tvp5150: Change default input source selection behaviour Marco Felsch
2018-06-28 20:57 ` [PATCH 00/21] TVP5150 fixes and new features Javier Martinez Canillas
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=20180804090405.GA437@pengutronix.de \
--to=m.felsch@pengutronix.de \
--cc=afshin.nasser@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=javierm@redhat.com \
--cc=kernel@pengutronix.de \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mchehab+samsung@kernel.org \
--cc=mchehab@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--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
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).