LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Manu Abraham <abraham.manu@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Soeren Moch <smoch@web.de>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [Regression 5.14] media: dvb userspace api
Date: Wed, 25 Aug 2021 08:33:05 +0200	[thread overview]
Message-ID: <20210825083305.562eba48@coco.lan> (raw)
In-Reply-To: <CAHFNz9L29LK+L8LjqyTyqq3LsvzeA6iYFHwP9n3uNBbqbbm1bg@mail.gmail.com>

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

> On Mon, Aug 23, 2021 at 10:30 PM Linus Torvalds
> <torvalds@linux-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

  reply	other threads:[~2021-08-25  6:33 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-11 12:15 Soeren Moch
2021-08-19 11:31 ` Mauro Carvalho Chehab
2021-08-21 13:58   ` Manu Abraham
2021-08-22 15:21   ` Soeren Moch
2021-08-22 17:47     ` Mauro Carvalho Chehab
2021-08-23 14:59       ` Soeren Moch
2021-08-23 16:58         ` Linus Torvalds
2021-08-23 20:16           ` Soeren Moch
2021-08-24  7:47           ` Mauro Carvalho Chehab
2021-08-24 20:01             ` Honza P
2021-08-25  2:55           ` Manu Abraham
2021-08-25  6:33             ` Mauro Carvalho Chehab [this message]
2021-08-25 16:16               ` Manu Abraham
2021-08-26 12:26                 ` Mauro Carvalho Chehab

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=20210825083305.562eba48@coco.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=abraham.manu@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=smoch@web.de \
    --cc=torvalds@linux-foundation.org \
    --subject='Re: [Regression 5.14] media: dvb userspace api' \
    /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

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).