From: Steve Longerbeam <steve_longerbeam@mentor.com>
To: Philipp Zabel <p.zabel@pengutronix.de>,
Steve Longerbeam <slongerbeam@gmail.com>
Cc: Jean-Michel Hautbois <jean-michel.hautbois@vodalys.com>,
Tim Harvey <tharvey@gateworks.com>,
Robert Schwebel <r.schwebel@pengutronix.de>,
<linux-media@vger.kernel.org>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: i.MX6 status for IPU/VPU/GPU
Date: Wed, 10 Sep 2014 18:17:03 -0700 [thread overview]
Message-ID: <5410F80F.5060803@mentor.com> (raw)
In-Reply-To: <1410284421.3353.47.camel@paszta.hi.pengutronix.de>
Hi Phillip,
On 09/09/2014 10:40 AM, Philipp Zabel wrote:
>
>>>> I've also worked out what I think is a workable video pipeline graph for i.MX,
>>>> suitable for defining the entities, pads, and links. Unfortunately I haven't
>>>> been able to spend as much time as I'd like on it.
>>> This is very interesting, do you have written this somewhere ?
>> Yes, I'll try to find some time to create a pdf image.
> I'd be very interested in this, too.
I should have something to show tomorrow.
> I have in the meantime started to
> implement everything that has a source or destination selector in the
> Frame Synchronization Unit (FSU) as media entity. I wonder which of
> these parts should reasonably be unified into a single entity:
>
> CSI0
> CSI1
Yes, we need a CSI subdev/entity, and it can be instantiated twice for
the two CSI ports.
> SMFC0
> SMFC1
> SMFC2
> SMFC3
I don't really see the need for an SMFC entity. The SMFC control can
be integrated into the CSI subdev.
> IC preprocessor (input to VF and ENC, if I understood correctly)
> IC viewfinder task (scaling, csc)
> IC encoding task
> IC post processing task
I see either three different IC subdev entities (IC prpenc, IC prpvf,
IC pp), or a single IC entity with three sink pads for each IC task.
> IRT viewfinder task (rotation)
> IRT encoding task
> IRT post processing task
well, the IRT is really just a submodule enable bit, I see no need
for an IRT subdev, in fact IRT has already been folded into ipu-ic.c
as a simple submodule enable/disable. Rotation support can be
implemented as part of the IC entities.
> VDIC (deinterlacing, combining)
I am thinking VDIC support can be part of the IC prpvf entity (well,
combining is not really on my radar, I haven't given that much thought).
> (and probably some entry for DP/DC/DMFC for the direct
> viewfinder path)
Ugh, I've been ignoring that path as well. Freescale's BSP releases
and sample code from their SDK's have no example code for the
direct-to-DP/DC/DMFC camera viewfinder path, so given the quality
of the imx TRM, this could be a challenge to implement. Have you
gotten this path to work?
>
> I suppose the SMFC channels need to be separate because they can belong
> to different pipelines (and each entity can only belong to one).
I see the chosen SMFC channel as an internal decision by the
CSI subdev.
> The three IC task entities could probably be combined with their
> corresponding IRT task entity somehow, but that would be at the cost of
> not being able to tell the kernel whether to rotate before or after
> scaling, which might be useful when handling chroma subsampled formats.
I'm fairly sure IC rotation must always occur _after_ scaling. I.e.
raw frames are first passed through IC prpenc/prpvf/pp for scaling/CSC,
then EOF completion of that task is hardware linked to IRT.
>
> I have put my current state up here:
>
> git://git.pengutronix.de/git/pza/linux.git test/nitrogen6x-ipu-media
>
> So far I've captured video through the SMFC on a Nitrogen6X board with
> OV5652 parallel camera with this.
Thanks Phillip, I'll take a look! Sounds like a good place to start.
I assume this is with the video mux entity and CSI driver? I.e. no
IC entity support yet for scaling, CSC, or rotation.
Steve
next prev parent reply other threads:[~2014-09-11 1:17 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-28 16:24 i.MX6 status for IPU/VPU/GPU Jean-Michel Hautbois
2014-07-28 18:59 ` Robert Schwebel
2014-07-28 21:15 ` Steve Longerbeam
2014-08-04 6:14 ` Tim Harvey
2014-08-04 11:54 ` Philipp Zabel
2014-08-05 8:07 ` Jean-Michel Hautbois
2014-08-27 7:13 ` Jean-Michel Hautbois
2014-08-27 14:23 ` Steve Longerbeam
2014-09-09 7:49 ` Jean-Michel Hautbois
2014-09-09 7:52 ` Hans Verkuil
2014-09-09 16:06 ` Steve Longerbeam
2014-09-09 16:12 ` Steve Longerbeam
2014-09-09 17:40 ` Philipp Zabel
2014-09-11 1:17 ` Steve Longerbeam [this message]
2014-09-11 13:26 ` Philipp Zabel
2014-09-15 14:13 ` Jean-Michel Hautbois
2014-10-24 13:42 ` Jean-Michel Hautbois
2015-01-27 15:00 ` Carlos Sanmartín Bustos
2014-09-09 16:28 ` Steve Longerbeam
2014-09-10 16:08 ` Jean-Michel Hautbois
2014-09-10 16:25 ` Steve Longerbeam
2014-09-11 0:37 ` Steve Longerbeam
2014-10-02 14:50 ` Jean-Michel Hautbois
2014-10-03 10:25 ` Carlos Sanmartín Bustos
[not found] ` <CAPW4HR0BJ7X0sMy78keEFtS6WXpbJjYCo75utKqWBtsDvrbUeg@mail.gmail.com>
2014-10-03 10:27 ` Jean-Michel Hautbois
2014-10-06 1:03 ` Steve Longerbeam
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=5410F80F.5060803@mentor.com \
--to=steve_longerbeam@mentor.com \
--cc=jean-michel.hautbois@vodalys.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=r.schwebel@pengutronix.de \
--cc=slongerbeam@gmail.com \
--cc=tharvey@gateworks.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).