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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210825083305.562eba48@coco.lan>
Date:   Wed, 25 Aug 2021 08:33:05 +0200
From:   Mauro Carvalho Chehab <mchehab+huawei@...nel.org>
To:     Manu Abraham <abraham.manu@...il.com>
Cc:     Linus Torvalds <torvalds@...ux-foundation.org>,
        Soeren Moch <smoch@....de>,
        Linux Media Mailing List <linux-media@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [Regression 5.14] media: dvb userspace api

Em Wed, 25 Aug 2021 08:25:57 +0530
Manu Abraham <abraham.manu@...il.com> escreveu:

> On Mon, Aug 23, 2021 at 10:30 PM Linus Torvalds
> <torvalds@...ux-foundation.org> wrote:
> >
> > I have reverted the header file move. But I would also heartily
> > recommend that whatever user program includes those headers (VDR -
> > anything else?) should take snapshots of these specific kernel
> > headers.
> >
> > I'm not convinced that it makes sense to move the av7110 driver back
> > from staging - it may continue to work, but it _is_ old and there is
> > no maintenance - and I would certainly suggest that any other
> > out-of-tree driver that uses these old interfaces that nothing else
> > implements shouldn't do so, considering that nothing else implements
> > them.  
> 
> Sorry for barging in between your discussion, but it seemed like you really
> missed some perspective and hence.
> 
> My 2 cents worth:
> * Revert the header changes.
> 
> * Let someone else with knowledge of it take over the maintenance
> of the av7110 driver.
> 
>   - This would allow other hardware also to be easily accommodated
> in a similar manner.
> 
> * Pull the out of tree drivers and allocate maintenance of those, to
> someone who understands them. Don't you want more hardware to be
> supported out of the box ?
> 
> Should there be no driver for those DVB output hardware, but only for
> V4L2 output devices ?
> 
> There exists other hardware which As a person who worked on another
> av7110 like driver (saa716x based s2 6400), which I can confirm.
> The API is supposed to simplify life, not make it even more complex.
> These devices would need lot of workarounds to work with the API that
> which Mauro advocates, which might even break those drivers given
> their complexity and size.
> 
> It would make life a lot easier for the users, Mauro himself and
> this long never ending discussion can be put to rest.

The "full-featured" API that it is implemented on av7110 always had 
troubles. This is not only my view, but also the view of the
original API authors,as can be seen at the DVBv4 WIP documentation:

	https://www.linuxtv.org/downloads/legacy/linux-dvb-api-v4/linux-dvb-api-v4-0-3.pdf

It clearly says that, on chapter 2.2:

	"2.2 Linux DVB API Version 3 problems

	...

	 The Linux DVB API Version 3 has very limited support for
	 modern hardware."

The "modern" there refers to hardware back in 2005!

I worked on a project back 8 years ago that tried to use it for TV
sets. It didn't work, because the API assumed a 1:1 mapping between
tuners and A/V codecs, which works for simpler embedded hardware,
but didn't cover smart TV hardware, where the number of frontends,
demods and A/V codecs were different. You may even have multiple
channels being displayed at the same time (Picture in Picture).

On today's embedded hardware, you need something like the media
controller, in order to dynamically re-configure the hardware 
pipelines between:

	- multiple tuners (DVB-C, DVB-T/T2, DVB-S/S2);
	- multiple demods[1];
	- multiple A/V decoders;
	- display compositor;
	- audio I/O;
	- CA modules;
	- encrypt/decrypt hardware (required on some Countries in order
          to allow recording programs on storage); 
	- storage.

[1] There are even some demods that can dynamically change the
    maximum number of PIDs it can filter. Modern hardware can
    have, let's say, a max of 4 input MPEG-TS, and a max of 
    512 filters, which works like 4 independent demods, where
    the number of filters per demod is adjusted dynamically.
    This is currently problem for DVB subsystem, as it allocates
    statically the PID filters for the max number of PIDs, meaning
    that a large amount of RAM would be wasted if one would reserve
    space for the maximum possible capacity per demod (it would
    require space for 4x512 buffers on such hardware, meaning that
    3/4 of buffer memory would be wasted).

As I always said, I'm open to discuss an API that would properly
address what's needed, but such API should support modern embedded 
hardware, and should be designed to allow it to be extended to
support to future needs. That's not the case of the DVBv3 "full-feat"
API, which was developed to support a hardware component developed
more than 23 years ago[2].

[2] The Rev 3.1 datasheet of av7110 was written in June, 1998:

    https://pdf1.alldatasheet.com/datasheet-pdf/view/130554/TI/TMS320AV7110.html

-

From driver's perspective, it makes no sense to keep support for av7110, 
as TI stopped production of TMS320AV7110 a very long time ago. They
don't even mention this product number anymore on their website.

Thanks,
Mauro

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ