linux_dsm_epyc7002/drivers
Laurent Pinchart e5b6b07a1b media: v4l2: Extend VIDIOC_ENUM_FMT to support MC-centric devices
The VIDIOC_ENUM_FMT ioctl enumerates all formats supported by a video
node. For MC-centric devices, its behaviour has always been ill-defined,
with drivers implementing one of the following behaviours:

- No support for VIDIOC_ENUM_FMT at all
- Enumerating all formats supported by the video node, regardless of the
  configuration of the pipeline
- Enumerating formats supported by the video node for the active
  configuration of the connected subdevice

The first behaviour is obviously useless for applications. The second
behaviour provides the most information, but doesn't offer a way to find
what formats are compatible with a given pipeline configuration. The
third behaviour fixes that, but with the drawback that applications
can't enumerate all supported formats anymore, and have to modify the
active configuration of the pipeline to enumerate formats.

The situation is messy as none of the implemented behaviours are ideal,
and userspace can't predict what will happen as the behaviour is
driver-specific.

To fix this, let's extend the VIDIOC_ENUM_FMT with a missing capability:
enumerating pixel formats for a given media bus code. The media bus code
is passed through the v4l2_fmtdesc structure in a new mbus_code field
(repurposed from the reserved fields). With this capability in place,
applications can enumerate pixel formats for a given media bus code
without modifying the active configuration of the device.

The current behaviour of the ioctl is preserved when the new mbus_code
field is set to 0, ensuring compatibility with existing userspace. The
API extension is documented as mandatory for MC-centric devices (as
advertised through the V4L2_CAP_IO_MC capability), allowing applications
and compliance tools to easily determine the availability of the
VIDIOC_ENUM_FMT extension.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-06 12:09:04 +02:00
..
accessibility
acpi
amba
android
ata ahci: Add Intel Comet Lake PCH-U PCI ID 2020-04-16 10:26:52 -06:00
atm
auxdisplay
base
bcma
block
bluetooth
bus
cdrom
char
clk
clocksource
connector
counter
cpufreq
cpuidle
crypto
dax
dca
devfreq
dio
dma
dma-buf
edac
eisa
extcon
firewire
firmware
fpga
fsi
gnss
gpio
gpu media: cec-gpio: handle gpiod_get_value errors correctly 2020-04-29 12:04:38 +02:00
greybus
hid
hsi
hv hyperv-fixes for 5.7-rc1 2020-04-14 11:58:04 -07:00
hwmon hwmon: (jc42) Fix name to have no illegal characters 2020-04-18 10:13:07 -07:00
hwspinlock
hwtracing
i2c i2c: tegra: Synchronize DMA before termination 2020-04-15 18:27:31 +02:00
i3c
ide
idle
iio
infiniband
input
interconnect
iommu
ipack
irqchip Merge branch 'irq/gic-v4.1-fixes-5.7' into irq/irqchip-5.7 2020-04-17 08:59:55 +01:00
isdn mISDN: make dmril and dmrim static 2020-04-16 13:52:31 -07:00
leds
lightnvm
macintosh
mailbox
mcb
md
media media: v4l2: Extend VIDIOC_ENUM_FMT to support MC-centric devices 2020-05-06 12:09:04 +02:00
memory
memstick
message
mfd
misc
mmc
most
mtd
mux
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-04-16 14:52:29 -07:00
nfc
ntb
nubus
nvdimm
nvme
nvmem
of of: unittest: kmemleak in duplicate property update 2020-04-17 08:31:34 -05:00
opp
oprofile
parisc
parport
pci
pcmcia
perf
phy
pinctrl
platform chrome-platform fixes for v5.7-rc2 2020-04-16 15:00:57 -07:00
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 s390/dasd: remove IOSCHED_DEADLINE from DASD Kconfig 2020-04-17 08:05:27 -06:00
sbus
scsi
sfi
sh
siox
slimbus
soc
soundwire
spi
spmi
ssb
staging media: staging: media: usbvision: usbvision-core Correct spelling 2020-05-05 17:23:36 +02:00
target
tc
tee
thermal
thunderbolt
tty
uio
usb
vdpa
vfio
vhost
video
virt
virtio
visorbus
vlynq
vme
w1
watchdog
xen xen: branch for v5.7-rc2 2020-04-17 10:35:17 -07:00
zorro
Kconfig
Makefile