remarkable-linux/drivers/media
Mauro Carvalho Chehab b2cd27448b [media] media-device: map new functions into old types for legacy API
The legacy media controller userspace API exposes entity types that
carry both type and function information. The new API replaces the type
with a function. It preserves backward compatibility by defining legacy
functions for the existing types and using them in drivers.

This works fine, as long as newer entity functions won't be added.

Unfortunately, some tools, like media-ctl with --print-dot argument
rely on the now legacy MEDIA_ENT_T_V4L2_SUBDEV and MEDIA_ENT_T_DEVNODE
numeric ranges to identify what entities will be shown.

Also, if the entity doesn't match those ranges, it will ignore the
major/minor information on devnodes, and won't be getting the devnode
name via udev or sysfs.

As we're now adding devices outside the old range, the legacy ioctl
needs to map the new entity functions into a type at the old range,
or otherwise we'll have a regression.

Detected on all released media-ctl versions (e. g. versions <= 1.10).

Fix this by deriving the type from the function to emulate the legacy
API if the function isn't in the legacy functions range.

Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2016-03-10 15:10:59 -03:00
..
common Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-01-14 17:04:19 -08:00
dvb-core [media] mxl111sf: Add a tuner entity 2016-01-11 12:19:26 -02:00
dvb-frontends [media] tda1004x: only update the frontend properties if locked 2016-02-04 09:10:45 -02:00
firewire [media] dvb: modify core to implement interfaces/entities at MC new gen 2016-01-11 12:18:52 -02:00
i2c [media] adv7604: fix tx 5v detect regression 2016-02-16 09:38:51 -02:00
mmc [media] siano: register media controller earlier 2015-02-26 09:10:39 -03:00
pci [media] saa7134-alsa: Only frees registered sound cards 2016-02-04 16:26:10 -02:00
platform [media] exynos4-is: make VIDEO_SAMSUNG_EXYNOS4_IS tristate 2016-01-25 12:53:17 -02:00
radio [media] media, sound: tea575x: constify snd_tea575x_ops structures 2015-12-03 11:26:45 -02:00
rc [media] rc: sunxi-cir: Initialize the spinlock properly 2015-12-23 15:51:40 -02:00
tuners [media] tv tuner max2165 driver: extend frequency range 2015-11-19 11:19:42 -02:00
usb [media] media.h: get rid of MEDIA_ENT_F_CONN_TEST 2016-02-16 09:15:23 -02:00
v4l2-core [media] vb2-core: call threadio->fnc() if !VB2_BUF_STATE_ERROR 2016-02-04 09:15:51 -02:00
Kconfig [media] Kconfig: Re-enable Media controller support for DVB 2016-01-11 12:18:40 -02:00
Makefile [media] bq/c-qcam, w9966, pms: move to staging in preparation for removal 2014-12-16 23:21:44 -02:00
media-device.c [media] media-device: map new functions into old types for legacy API 2016-03-10 15:10:59 -03:00
media-devnode.c [media] media-devnode: move kernel-doc documentation to the header 2016-01-11 12:19:13 -02:00
media-entity.c [media] media-entitiy: add a function to create multiple links 2016-01-11 12:19:26 -02:00