Skip to content

MC fixes, improvements and cleanups

Mauro Carvalho Chehab linux-api linux-arm-kernel linux-media 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest17 of 18 patches 26 repliesIn review

17 of 18 patches are in this archive. The cover letter announces 18.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/18tuner-core: add an input paddrivers/media/dvb-core/dvbdev.c drivers/media/usb/au0828/au0828-core.c drivers/media/usb/cx231xx/cx231xx-cards.c +2 more+22 -63 replies
2/18au0828: add support for the connectorsdrivers/media/usb/au0828/au0828-core.c drivers/media/usb/au0828/au0828-video.c drivers/media/usb/au0828/au0828.h+82 -122 replies
3/18au0828: Create connector linksdrivers/media/usb/au0828/au0828-core.c+26 -00 replies
4/18media-device: supress backlinks at G_TOPOLOGY ioctldrivers/media/media-device.c drivers/media/media-entity.c include/media/media-entity.h+6 -03 replies
5/18media-controller: enable all interface links at initdrivers/media/dvb-core/dvbdev.c drivers/media/v4l2-core/v4l2-dev.c drivers/media/v4l2-core/v4l2-device.c+14 -83 replies
6/18media.h: create connector entities for hybrid TV devicesinclude/uapi/linux/media.h+10 -23 replies
7/18dvbdev: returns error if graph object creation failsdrivers/media/dvb-core/dvbdev.c drivers/media/dvb-core/dvbdev.h+169 -1312 replies
8/18dvb core: must check dvb_create_media_graph()drivers/media/common/siano/smsdvb-main.c drivers/media/dvb-core/dvbdev.c drivers/media/dvb-core/dvbdev.h +4 more+34 -201 reply
9/18media-entity: enforce check of interface and links creationinclude/media/media-entity.h+9 -71 reply
10/18cx231xx: enforce check for graph creationdrivers/media/usb/cx231xx/cx231xx-cards.c+26 -141 reply
11/18au0828:: enforce check for graph creationdrivers/media/usb/au0828/au0828-core.c+38 -181 reply
12/18media-entity: must check media_create_pad_link()include/media/media-entity.h+3 -23 replies
13/18media-entity.h: rename entity.type to entity.functionDocumentation/video4linux/v4l2-framework.txt drivers/media/dvb-core/dvbdev.c drivers/media/dvb-frontends/au8522_decoder.c +25 more+55 -542 replies
13/18media-entity.h: rename entity.type to entity.function+0 -00 replies
16/18DocBook: update entities documentationDocumentation/DocBook/media/v4l/media-ioc-enum-entities.xml+32 -260 replies
17/18dvbdev: move indirect links on dvr/demux to a separate functiondrivers/media/dvb-core/dvbdev.c+31 -191 reply
18/18dvbdev: Don't create indirect linksdrivers/media/dvb-core/dvbdev.c+8 -22 replies

Reviews trailers per patch

14 of 17 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchHans Verkuil
SeriesA-b
1/18A-b
2/18
3/18
4/18A-b
5/18A-b
6/18A-b
7/18A-b
8/18A-b
9/18A-b
10/18A-b
11/18A-b
12/18A-b
13/18A-b
13/18A-b
16/18
17/18A-b
18/18A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/18] MC fixes, improvements and cleanups

This patch series go after the previous series:

	"MC next generation patches"
	http://www.spinics.net/lists/linux-media/msg93108.html

It contains a series of fixes and cleanup the MC Next gen.

The first patches add connector entities to represent RF, S-Video and Composite interfaces on an analog device and fixes some bugs:
[media] tuner-core: add an input pad
[media] au0828: add support for the connectors
[media] au0828: Create connector links
[media] media-device: supress backlinks at G_TOPOLOGY ioctl [media] media-controller: enable all interface links at init [media] media.h: create connector entities for hybrid TV devices

The next sequence of patches enforce __must_check to pads and links creation, as requested by Hans Verkuil:
[media] dvbdev: returns error if graph object creation fails [media] dvb core: must check dvb_create_media_graph()
[media] media-entity: enforce check of interface and links creation [media] cx231xx: enforce check for graph creation
[media] au0828:: enforce check for graph creation
[media] media-entity: must check media_create_pad_link()

The next patches do the entity function rename as agreed at the meeting we had on IRC last Wednesday, and exposes it via G_TOPOLOGY:
[media] media-entity.h: rename entity.type to entity.function [media] media-device: export the entity function via new ioctl [media] uapi/media.h: Rename entities types to functions
[media] DocBook: update entities documentation

The final patches are some cleanups at the dvbdev link creation:
[media] dvbdev: move indirect links on dvr/demux to a separate function [media] dvbdev: Don't create indirect links

The last patch deserves a better explanation: entities may direct or indirect control a device, on non-v4l2-subdev-centric devices. We're not creating the indirect interface control links at V4L2 side. I decided to remove it also from the dvbdev side. Implementing support for it is not hard, but let's do it only when we have some usecases.

There aren't much things to be done for the merge of the MC next gen series on (scheduled for Kernel 4.4). On my my lists, the remaining items are:

TODO for next Kernel version (goal: Kernel version 4.4):
=========================================================

- Add Javier's fixup patches with fixes for some platform drivers and uvc;

- Find entities that belong to V4L2 or DVB via the interfaces, in order to enable/disable the inteface links when the device gets busy;

TODO for a next versions:
=========================

- Remove unused fields from media_entity (like major, minor, revision, group_id, num_links, num_backlinks, num_pads)

- dynamic entity/interface/link creation and removal;

- SETUP_LINK_V2 with dynamic support;

- dynamic pad creation and removal (needed?);

- multiple function per entity support;

- indirect interface links support;

- MC properties API.

Userspace:
==========

- Create a library with v2 API;

- Use the v2 API library on qv4l2/libdvbv5/xawtv/libv4l;

- Add the libudev/libsysfs logic at mc_nextgen_test to convert a devnode major/minor into a /dev/* name;

Mauro Carvalho Chehab (18):
[media] tuner-core: add an input pad
[media] au0828: add support for the connectors
[media] au0828: Create connector links
[media] media-device: supress backlinks at G_TOPOLOGY ioctl [media] media-controller: enable all interface links at init [media] media.h: create connector entities for hybrid TV devices [media] dvbdev: returns error if graph object creation fails [media] dvb core: must check dvb_create_media_graph() [media] media-entity: enforce check of interface and links creation [media] cx231xx: enforce check for graph creation [media] au0828:: enforce check for graph creation [media] media-entity: must check media_create_pad_link() [media] media-entity.h: rename entity.type to entity.function [media] media-device: export the entity function via new ioctl [media] uapi/media.h: Rename entities types to functions [media] DocBook: update entities documentation
[media] dvbdev: move indirect links on dvr/demux to a separate
function
[media] dvbdev: Don't create indirect links

 .../DocBook/media/v4l/media-ioc-enum-entities.xml  |  58 ++--
 Documentation/video4linux/v4l2-framework.txt       |   4 +-
 drivers/media/common/siano/smsdvb-main.c           |   6 +-
 drivers/media/dvb-core/dvbdev.c                    | 343 ++++++++++++---------
 drivers/media/dvb-core/dvbdev.h                    |   7 +-
 drivers/media/dvb-frontends/au8522_decoder.c       |   2 +-
 drivers/media/i2c/adp1653.c                        |   2 +-
 drivers/media/i2c/adv7180.c                        |   2 +-
 drivers/media/i2c/as3645a.c                        |   2 +-
 drivers/media/i2c/cx25840/cx25840-core.c           |   2 +-
 drivers/media/i2c/lm3560.c                         |   2 +-
 drivers/media/i2c/lm3646.c                         |   2 +-
 drivers/media/i2c/m5mols/m5mols_core.c             |   2 +-
 drivers/media/i2c/noon010pc30.c                    |   2 +-
 drivers/media/i2c/ov2659.c                         |   2 +-
 drivers/media/i2c/ov9650.c                         |   2 +-
 drivers/media/i2c/s5c73m3/s5c73m3-core.c           |   4 +-
 drivers/media/i2c/s5k4ecgx.c                       |   2 +-
 drivers/media/i2c/s5k5baf.c                        |   6 +-
 drivers/media/i2c/s5k6aa.c                         |   2 +-
 drivers/media/i2c/smiapp/smiapp-core.c             |   2 +-
 drivers/media/i2c/tvp514x.c                        |   2 +-
 drivers/media/i2c/tvp7002.c                        |   2 +-
 drivers/media/media-device.c                       |  10 +-
 drivers/media/media-entity.c                       |   1 +
 drivers/media/platform/xilinx/xilinx-dma.c         |   2 +-
 drivers/media/usb/au0828/au0828-core.c             |  94 +++++-
 drivers/media/usb/au0828/au0828-dvb.c              |   8 +-
 drivers/media/usb/au0828/au0828-video.c            |  76 ++++-
 drivers/media/usb/au0828/au0828.h                  |   3 +-
 drivers/media/usb/cx231xx/cx231xx-cards.c          |  46 ++-
 drivers/media/usb/cx231xx/cx231xx-dvb.c            |   6 +-
 drivers/media/usb/cx231xx/cx231xx-video.c          |   2 +-
 drivers/media/usb/dvb-usb-v2/dvb_usb_core.c        |   4 +-
 drivers/media/usb/dvb-usb/dvb-usb-dvb.c            |   6 +-
 drivers/media/v4l2-core/tuner-core.c               |  10 +-
 drivers/media/v4l2-core/v4l2-dev.c                 |  17 +-
 drivers/media/v4l2-core/v4l2-device.c              |   2 +-
 drivers/media/v4l2-core/v4l2-flash-led-class.c     |   2 +-
 drivers/media/v4l2-core/v4l2-subdev.c              |   6 +-
 include/media/media-entity.h                       |  46 +--
 include/media/tuner.h                              |   8 +
 include/uapi/linux/media.h                         | 120 +++----
 43 files changed, 586 insertions(+), 343 deletions(-)
Signature · 1 line
2.4.3