lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1518086816.4359.4.camel@pengutronix.de>
Date:   Thu, 08 Feb 2018 11:46:56 +0100
From:   Philipp Zabel <p.zabel@...gutronix.de>
To:     Hans Verkuil <hverkuil@...all.nl>,
        Tim Harvey <tharvey@...eworks.com>
Cc:     linux-media <linux-media@...r.kernel.org>,
        alsa-devel@...a-project.org, devicetree@...r.kernel.org,
        linux-kernel@...r.kernel.org, Shawn Guo <shawnguo@...nel.org>,
        Steve Longerbeam <slongerbeam@...il.com>,
        Hans Verkuil <hansverk@...co.com>,
        Mauro Carvalho Chehab <mchehab@...pensource.com>
Subject: Re: [PATCH v8 0/7] TDA1997x HDMI video reciver

On Wed, 2018-02-07 at 23:19 +0100, Hans Verkuil wrote:
> On 02/07/2018 11:05 PM, Tim Harvey wrote:
> > On Wed, Feb 7, 2018 at 1:09 AM, Hans Verkuil <hverkuil@...all.nl> wrote:
> > > On 02/07/18 09:22, Hans Verkuil wrote:
> > > > On 02/07/2018 12:29 AM, Tim Harvey wrote:
> > > > > Media Controller ioctls:
> > > > >                 fail: v4l2-test-media.cpp(141): ent.function ==
> > > > > MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
> > > > 
> > > > Weird, this shouldn't happen. I'll look into this a bit more.
> > > 
> > > Can you run 'mc_nextgen_test -e -i' and post the output?
> > > 
> > > It's found in contrib/test.
> > > 
> > 
> > root@...tana:~# ./v4l-utils/contrib/test/mc_nextgen_test -e -i
> > Device: imx-media (driver imx-media)
> > Bus:
> > version: 0
> > number of entities: 24
> > number of interfaces: 24
> > number of pads: 48
> > number of links: 50
> > entity entity#1: 'unknown entity type' adv7180 2-0020, 1 pad(s), 1 source(s)
> > entity entity#3: 'unknown entity type' tda19971 2-0048, 1 pad(s), 1 source(s)
> > entity entity#5: 'unknown entity type' ipu1_vdic, 3 pad(s), 2 sink(s),
> > 1 source(s)
> > entity entity#9: 'unknown entity type' ipu2_vdic, 3 pad(s), 2 sink(s),
> > 1 source(s)
> > entity entity#13: 'unknown entity type' ipu1_ic_prp, 3 pad(s), 1
> > sink(s), 2 source(s)
> > entity entity#17: 'unknown entity type' ipu1_ic_prpenc, 2 pad(s), 1
> > sink(s), 1 source(s)
> > entity entity#20: 'V4L I/O' ipu1_ic_prpenc capture, 1 pad(s), 1 sink(s)
> > entity entity#26: 'unknown entity type' ipu1_ic_prpvf, 2 pad(s), 1
> > sink(s), 1 source(s)
> > entity entity#29: 'V4L I/O' ipu1_ic_prpvf capture, 1 pad(s), 1 sink(s)
> > entity entity#35: 'unknown entity type' ipu2_ic_prp, 3 pad(s), 1
> > sink(s), 2 source(s)
> > entity entity#39: 'unknown entity type' ipu2_ic_prpenc, 2 pad(s), 1
> > sink(s), 1 source(s)
> > entity entity#42: 'V4L I/O' ipu2_ic_prpenc capture, 1 pad(s), 1 sink(s)
> > entity entity#48: 'unknown entity type' ipu2_ic_prpvf, 2 pad(s), 1
> > sink(s), 1 source(s)
> > entity entity#51: 'V4L I/O' ipu2_ic_prpvf capture, 1 pad(s), 1 sink(s)
> > entity entity#57: 'unknown entity type' ipu1_csi0, 3 pad(s), 1
> > sink(s), 2 source(s)
> > entity entity#61: 'V4L I/O' ipu1_csi0 capture, 1 pad(s), 1 sink(s)
> > entity entity#67: 'unknown entity type' ipu1_csi1, 3 pad(s), 1
> > sink(s), 2 source(s)
> > entity entity#71: 'V4L I/O' ipu1_csi1 capture, 1 pad(s), 1 sink(s)
> > entity entity#77: 'unknown entity type' ipu2_csi0, 3 pad(s), 1
> > sink(s), 2 source(s)
> > entity entity#81: 'V4L I/O' ipu2_csi0 capture, 1 pad(s), 1 sink(s)
> > entity entity#87: 'unknown entity type' ipu2_csi1, 3 pad(s), 1
> > sink(s), 2 source(s)
> > entity entity#91: 'V4L I/O' ipu2_csi1 capture, 1 pad(s), 1 sink(s)
> > entity entity#97: 'unknown entity type' ipu1_csi0_mux, 3 pad(s), 2
> > sink(s), 1 source(s)
> > entity entity#101: 'unknown entity type' ipu2_csi1_mux, 3 pad(s), 2
> > sink(s), 1 source(s)
> 
> Yuck. So nobody in imx (and adv7180!) is setting a valid function.
> And I see the mc_nextgen_test.c doesn't know all the latest functions
> anyway.

That's probably because for most of the entities it's a bit unclear
which function should be assigned.

ipu[12]_csi[01]_mux are video multiplexers, so MEDIA_ENT_F_VID_MUX. I
thought those should already be set correctly in the video-mux driver.

ipu[12]_csi[01] are the interfaces to the outside parallel busses, but
they can also 'downscale' by skipping, skip frames and pack or expand
pixels from the bus into the internal FIFOs that lead to the next
element. These are not MEDIA_ENT_F_VID_IF_BRIDGE, are they?

ipu[12]_vdic are mainly deinterlacers, so a new function
MEDIA_ENT_F_PROC_VIDEO_DEINTERLACER ? These entities could also be used
as composers in a mem2mem scenario (MEDIA_ENT_F_PROC_VIDEO_COMPOSER ?),
but this is currently not supported.

ipu[12]_ic_prp is just a tee element that feeds both ipu[12]_ic_prpenc
and ipu[12]_ic_prpvf. These are both scalers and colorspace converters.
MEDIA_ENT_F_PROC_VIDEO_SCALER ?
MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV ?

"ipu[12]_csi[01] capture" are the DMA elements writing to memory, so
MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER ?

> That's what happens when you don't have compliance tests, nobody bothers
> to fill stuff like that in. Anyway, that explains the v4l2-compliance error
> you got (although I should improve the error to also mentioned the entity
> in question). In other words, it's not you, it's them :-)

regards
Philipp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ