[PATCH 0/9] dvb_frontend: Don't rely on drivers filling ops->info.type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is likely the last patch series from my series of DVB cleanups.
I still intend to work on DRX-K frontend merge patch, but this will
need to wait until my return to my home town. Of course, if you're
hurry with this, patches are welcome.

This series changes dvb_frontend to use ops->delsys instead of ops->info.type,
as the source for the frontend support. With this series:

1) the first delivery system is reported as info.type for DVBv3 apps;
2) all subsequent checks are made against the current delivery system
   (c->delivery_system);
3) An attempt to use an un-suported delivery system will either return
   an error, or enter into the emulation mode, if the frontend is
   using a newer delivery system.
4) Lots of cleanup at the cache sync logic. Now, a pure DVBv5 call
   shouldn't fill the DVBv3 structs. Still, as events are generated,
   the event will dynamically generate a DVBv3 compat struct.

The emulation logic is not perfect (but it were not perfect before this
patch series). The emulation will work worse for devices that have
support for different "ops->info.type", as there's no way for a DVBv3
application to work properly with those devices.

TODO:

There are a few things left to do, with regards to DVB frontend cleanup.
They're more related to the DVBv5 API, so they were out of the scope
of this series. Maybe some work for this upcoming year!

They are:

	1) Fix the capabilities flags. There are several capabilities
not reported, like several modulations, etc. There are not enough flags
for them. It was suggested that the delivery system (DTV_ENUM_DELSYS)
would be enough, but it doesn't seem so. For example, there are several
SYS_ATSC devices that only support VSB_8. So, we'll end by needing to
either extend the current way (but we lack bits) or to implement a DVBv5
way for that;

	2) The DVBv3 events call (FE_GET_EVENT) is not ok for
newer delivery system. We'll likely need to replace it by a DVBv5 way;

	3) The stats API needs to be extended. Delivery systems like
ISDB can report a per-layer set of statistics. This is currently not
supported. Also, it is desirable to get the stats together with a
set of other properties.

I think that both (2) and (3) could be solved by adding some new DVBv5
properties. So, we need a proposal for that. I did one for stats in the
past. Maybe it is time to return with that proposal.

So, application developers are warned to migrate to DVBv5. As a reference,
I've ported an existing zap application to use DVBv5, on my experimental
test tree:

	http://git.linuxtv.org/mchehab/experimental-v4l-utils.git/shortlog/refs/heads/dvb-utils

Anyway, this patch series is short ;)

Please test.

Happy New Year!
Mauro

Mauro Carvalho Chehab (9):
  [media] dvb: Initialize all cache values
  [media] dvb_frontend: Handle all possible DVBv3 values for bandwidth
  [media] dvb: move dvb_set_frontend logic into a separate routine
  [media] dvb_frontend: Don't use ops->info.type anymore
  [media] dvb_frontend: Fix DVBv3 emulation
  [media] dvb-core: Fix ISDB-T defaults
  [media] dvb: get rid of fepriv->parameters_in
  [media] dvb: deprecate the usage of ops->info.type
  [media] dvb: Remove ops->info.type from frontends

 Documentation/DocBook/media/dvb/frontend.xml |    4 +
 drivers/media/dvb/bt8xx/dst.c                |    5 +-
 drivers/media/dvb/dvb-core/dvb_frontend.c    |  853 +++++++++++++++-----------
 drivers/media/dvb/dvb-usb/af9005-fe.c        |    1 -
 drivers/media/dvb/dvb-usb/cinergyT2-fe.c     |    1 -
 drivers/media/dvb/dvb-usb/dtt200u-fe.c       |    1 -
 drivers/media/dvb/dvb-usb/friio-fe.c         |    1 -
 drivers/media/dvb/dvb-usb/gp8psk-fe.c        |    1 -
 drivers/media/dvb/dvb-usb/mxl111sf-demod.c   |    1 -
 drivers/media/dvb/dvb-usb/vp702x-fe.c        |    1 -
 drivers/media/dvb/dvb-usb/vp7045-fe.c        |    1 -
 drivers/media/dvb/frontends/af9013.c         |    1 -
 drivers/media/dvb/frontends/atbm8830.c       |    1 -
 drivers/media/dvb/frontends/au8522_dig.c     |    1 -
 drivers/media/dvb/frontends/bcm3510.c        |    1 -
 drivers/media/dvb/frontends/cx22700.c        |    1 -
 drivers/media/dvb/frontends/cx22702.c        |    1 -
 drivers/media/dvb/frontends/cx24110.c        |    1 -
 drivers/media/dvb/frontends/cx24116.c        |    1 -
 drivers/media/dvb/frontends/cx24123.c        |    1 -
 drivers/media/dvb/frontends/cxd2820r_core.c  |    2 -
 drivers/media/dvb/frontends/dib3000mb.c      |    1 -
 drivers/media/dvb/frontends/dib3000mc.c      |    1 -
 drivers/media/dvb/frontends/dib7000m.c       |    1 -
 drivers/media/dvb/frontends/dib7000p.c       |    1 -
 drivers/media/dvb/frontends/dib8000.c        |    1 -
 drivers/media/dvb/frontends/dib9000.c        |    1 -
 drivers/media/dvb/frontends/drxd_hard.c      |    1 -
 drivers/media/dvb/frontends/drxk_hard.c      |    2 -
 drivers/media/dvb/frontends/ds3000.c         |    1 -
 drivers/media/dvb/frontends/dvb_dummy_fe.c   |    3 -
 drivers/media/dvb/frontends/ec100.c          |    1 -
 drivers/media/dvb/frontends/it913x-fe.c      |    1 -
 drivers/media/dvb/frontends/l64781.c         |    1 -
 drivers/media/dvb/frontends/lgdt3305.c       |    3 +-
 drivers/media/dvb/frontends/lgdt330x.c       |    2 -
 drivers/media/dvb/frontends/lgs8gl5.c        |    1 -
 drivers/media/dvb/frontends/lgs8gxx.c        |    1 -
 drivers/media/dvb/frontends/mb86a16.c        |    1 -
 drivers/media/dvb/frontends/mb86a20s.c       |    1 -
 drivers/media/dvb/frontends/mt312.c          |    1 -
 drivers/media/dvb/frontends/mt352.c          |    1 -
 drivers/media/dvb/frontends/nxt200x.c        |    1 -
 drivers/media/dvb/frontends/nxt6000.c        |    1 -
 drivers/media/dvb/frontends/or51132.c        |    1 -
 drivers/media/dvb/frontends/or51211.c        |    1 -
 drivers/media/dvb/frontends/s5h1409.c        |    1 -
 drivers/media/dvb/frontends/s5h1411.c        |    1 -
 drivers/media/dvb/frontends/s5h1420.c        |    1 -
 drivers/media/dvb/frontends/s5h1432.c        |    1 -
 drivers/media/dvb/frontends/s921.c           |    1 -
 drivers/media/dvb/frontends/si21xx.c         |    1 -
 drivers/media/dvb/frontends/sp8870.c         |    1 -
 drivers/media/dvb/frontends/sp887x.c         |    1 -
 drivers/media/dvb/frontends/stb0899_drv.c    |   20 +-
 drivers/media/dvb/frontends/stv0288.c        |    8 -
 drivers/media/dvb/frontends/stv0297.c        |    1 -
 drivers/media/dvb/frontends/stv0299.c        |    1 -
 drivers/media/dvb/frontends/stv0367.c        |    2 -
 drivers/media/dvb/frontends/stv0900_core.c   |    1 -
 drivers/media/dvb/frontends/stv090x.c        |    1 -
 drivers/media/dvb/frontends/tda10021.c       |    1 -
 drivers/media/dvb/frontends/tda10023.c       |    1 -
 drivers/media/dvb/frontends/tda10048.c       |    1 -
 drivers/media/dvb/frontends/tda1004x.c       |    2 -
 drivers/media/dvb/frontends/tda10071.c       |    1 -
 drivers/media/dvb/frontends/tda10086.c       |    1 -
 drivers/media/dvb/frontends/tda8083.c        |    1 -
 drivers/media/dvb/frontends/ves1820.c        |    1 -
 drivers/media/dvb/frontends/ves1x93.c        |    1 -
 drivers/media/dvb/frontends/zl10353.c        |    1 -
 drivers/media/dvb/pt1/va1j5jf8007s.c         |    1 -
 drivers/media/dvb/pt1/va1j5jf8007t.c         |    1 -
 drivers/media/dvb/siano/smsdvb.c             |    1 -
 drivers/media/dvb/ttusb-dec/ttusbdecfe.c     |    2 -
 drivers/media/video/tlg2300/pd-dvb.c         |    1 -
 include/linux/dvb/frontend.h                 |    2 +-
 77 files changed, 508 insertions(+), 465 deletions(-)

-- 
1.7.8.352.g876a6

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux