| Age | Commit message (Collapse) | Author | Files | Lines |
|
Add support for the Raspberry Pi PiSP Back End.
The driver has been upported from the Raspberry Pi kernel at revision
f74893f8a0c2 ("drivers: media: pisp_be: Update seqeuence numbers of the
buffers").
The ISP documentation is available at:
https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdf
Signed-off-by: David Plowman <[email protected]>
Signed-off-by: Naushir Patuck <[email protected]>
Signed-off-by: Nick Hollinghurst <[email protected]>
Signed-off-by: Jacopo Mondi <[email protected]>
Signed-off-by: Sakari Ailus <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
[hverkuil: drop dev_err after platform_get_irq to fix a coccinelle check]
|
|
This adds support for stateful V4L2 M2M based driver for Imagination E5010
JPEG Encoder [1] which supports baseline encoding with two different
quantization tables and compression ratio as demanded.
Support for both contiguous and non-contiguous YUV420 and YUV422 semiplanar
formats is added along with alignment restrictions as required by the
hardware.
System and runtime PM hooks are added in the driver along with v4l2 crop
and selection API support.
Minimum resolution supported is 64x64 and
Maximum resolution supported is 8192x8192.
All v4l2-compliance tests are passing [2] :
v4l2-compliance -s -f -a -d /dev/video0 -e /dev/video1
Total for e5010 device /dev/video0: 79, Succeeded: 79, Failed: 0,
Warnings: 0
NOTE: video1 here is VIVID test pattern generator
Also tests [3] were run manually to verify below driver features:
- Runtime Power Management
- Multi-instance JPEG Encoding
- DMABUF import, export support
- NV12, NV21, NV16, NV61 video format support
- Compression quality S_CTRL
- Cropping support using S_SELECTION
Existing V4L2 M2M based JPEG drivers namely s5p-jpeg, imx-jpeg and rcar_jpu
were referred while making this.
TODO:
Add MMU and memory tiling support
[1]: AM62A TRM (Section 7.6 is for JPEG Encoder) :
Link: https://www.ti.com/lit/pdf/spruj16
[2]: v4l2-compliance test :
Link: https://gist.github.com/devarsht/1f039c631ca953a57f405cfce1b69e49
[3]: E5010 JPEG Encoder Manual tests :
Performance:
Link: https://gist.github.com/devarsht/c40672944fd71c9a53ab55adbfd9e28b
Functionality:
Link: https://gist.github.com/devarsht/8e88fcaabff016bb2bac83d89c9d23ce
Compression Quality:
Link: https://gist.github.com/devarsht/cbcc7cd97e8c48ba1486caa2b7884655
Multi Instance:
Link: https://gist.github.com/devarsht/22c2fca08cd3441fb40f2c7a4cebc95a
Crop support:
Link: https://gist.github.com/devarsht/de6f5142f678bb1a5338abfd9f814abd
Runtime PM:
Link: https://gist.github.com/devarsht/70cd95d4440ddc678489d93885ddd4dd
Co-developed-by: David Huang <[email protected]>
Signed-off-by: David Huang <[email protected]>
Signed-off-by: Devarsh Thakkar <[email protected]>
Reviewed-by: Benjamin Gaignard <[email protected]>
Signed-off-by: Sebastian Fricke <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
|
|
Add a driver for the Unicam camera receiver block on BCM283x processors.
It is represented as two video device nodes: unicam-image and
unicam-embedded which are connected to an internal subdev (named
unicam-subdev) in order to manage streams routing.
Signed-off-by: Dave Stevenson <[email protected]>
Co-developed-by: Naushir Patuck <[email protected]>
Signed-off-by: Naushir Patuck <[email protected]>
Co-developed-by: Jean-Michel Hautbois <[email protected]>
Signed-off-by: Jean-Michel Hautbois <[email protected]>
Co-developed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Laurent Pinchart <[email protected]>
[Sakari Ailus: Squash fixes by Laurent.]
Signed-off-by: Sakari Ailus <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
|
|
Add driver for Video Capture/Differentiation Engine (VCD) and Encoding
Compression Engine (ECE) present on Nuvoton NPCM SoCs. As described in
the datasheet NPCM750D_DS_Rev_1.0, the VCD can capture frames from
digital video input and compare two frames in memory, and then the ECE
can compress the frame data into HEXTILE format. This driver implements
V4L2 interfaces and provides user controls to support KVM feature, also
tested with VNC Viewer ver.6.22.826 and openbmc/obmc-ikvm.
Signed-off-by: Marvin Lin <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
|
|
The Atmel ISC will be moved to staging thus the atmel platform will only
have the ISI driver.
The new media-controller converted ISC driver will be placed inside a
dedicated microchip platform directory.
It is then natural to have the microchip-csi2dc moved to this new platform
directory.
The next step is to add the Microchip ISC driver to the new platform
directory and reside together with the Microchip CSI2DC driver.
Signed-off-by: Eugen Hristev <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
The Hantro mainline driver has been used in production
since several years and was only kept as a staging driver
due the stateless CODEC controls.
Now that all the stateless CODEC controls have been moved
out of staging, graduate the driver as well.
Signed-off-by: Ezequiel Garcia <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
media Kconfig has two entries associated to V4L API:
VIDEO_DEV and VIDEO_V4L2.
On Kernel 2.6.x, there were two V4L APIs, each one with its own flag.
VIDEO_DEV were meant to:
1) enable Video4Linux and make its Kconfig options to appear;
2) it makes the Kernel build the V4L core.
while VIDEO_V4L2 where used to distinguish between drivers that
implement the newer API and drivers that implemented the former one.
With time, such meaning changed, specially after the removal of
all V4L version 1 drivers.
At the current implementation, VIDEO_DEV only does (1): it enables
the media options related to V4L, that now has:
menu "Video4Linux options"
visible if VIDEO_DEV
source "drivers/media/v4l2-core/Kconfig"
endmenu
but it doesn't affect anymore the V4L core drivers.
The rationale is that the V4L2 core has a "soft" dependency
at the I2C bus, and now requires to select a number of other
Kconfig options:
config VIDEO_V4L2
tristate
depends on (I2C || I2C=n) && VIDEO_DEV
select RATIONAL
select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE
default (I2C || I2C=n) && VIDEO_DEV
In the past, merging them would be tricky, but it seems that it is now
possible to merge those symbols, in order to simplify V4L dependencies.
Let's keep VIDEO_DEV, as this one is used on some make *defconfig
configurations.
Suggested-by: Laurent Pinchart <[email protected]>
Reviewed-by: Laurent Pinchart <[email protected]>
Reviewed-by: Jacopo Mondi <[email protected]>
Reviewed-by: Neil Armstrong <[email protected]> # for meson-vdec & meson-ge2d
Acked-by: Andrzej Pietrasiewicz <[email protected]>
Acked-by: Łukasz Stelmach <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
Instead of placing multiple per-vendor entries at the
platform/{Makefile,Kconfig}, create them at the per-vendor
directories.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename omap/ to ti/omap/.
Reviewed-by: Laurent Pinchart <[email protected]>
Reviewed-by: Peter Ujfalusi <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename omap3isp/ to ti/omap3isp/.
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename davinci/ to ti/davinci/.
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename am437x/ to ti/am437x/.
Reviewed-by: Laurent Pinchart <[email protected]>
Reviewed-by: Lad Prabhakar <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
move both stm32/ and sti/ for them to be inside st/ directory.
Acked-by: Hugues Fruchet <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename s5p-mfc/ to samsung/s5p-mfc/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename s5p-jpeg/ to samsung/s5p-jpeg/.
Acked-by: Andrzej Pietrasiewicz <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename s5p-g2d/ to samsung/s5p-g2d/.
Acked-by: Łukasz Stelmach <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename s3c-camif/ to samsung/s3c-camif/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename exynos-gsc/ to samsung/exynos-gsc/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename exynos4-is/ to samsung/exynos4-is/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename tegra/vde/ to nvidia/tegra-vde/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename mtk-vpu/ to mediatek/mtk-vpu/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename mtk-vcodec/ to mediatek/mtk-vcodec/.
Acked-by: Nicolas Dufresne <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename mtk-mdp/ to mediatek/mtk-mdp/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename mtk-jpeg/ to mediatek/mtk-jpeg/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename meson/ge2d/ to amlogic/meson-ge2d/.
Acked-by: Neil Armstrong <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename marvell-ccic/ to marvell/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As the end goal is to have platform drivers split by vendor,
rename coda/ to chips-media/.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
Just like media bus drivers, place platform drivers on a
submenu, in order to better organize user-selection:
Media drivers --->
*** media drivers ***
[*] Media USB Adapters --->
[*] Media PCI Adapters --->
-*- Radio Adapters --->
[*] Media platform devices --->
*** MMC/SDIO DVB adapters ***
< > Siano SMS1xxx based MDTV via SDIO interface
[*] V4L test drivers --->
[*] DVB test drivers --->
*** FireWire (IEEE 1394) Adapters ***
<*> FireDTV and FloppyDTV
*** common driver options ***
[ ] Enable Remote Controller support for Siano devices
[ ] Enable debugfs for smsdvb
As this submenu depends on MEDIA_PLATFORM_DRIVERS and defaults to "y",
there's no need to change already-existing .config entries, nor touch
the several make *_defconfig.
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
As there are 4 manufacturer's directories with multiple sources
(qcom, rockchip, sti and sunxi), move the sources from
platform/Kconfig to their specific Konfig files.
Acked-by: Jernej Skrabec <[email protected]>
Reviewed-by: Robert Foss <[email protected]>
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
Now that each non-generic driver has their own directory,
sort the entries.
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
s5p-jpeg-specific config stuff on a separate Kconfig file.
Acked-by: Andrzej Pietrasiewicz <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
s5p-mfc-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
bdisp-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
delta-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
rkisp1-specific config stuff on a separate Kconfig file.
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
ti-vpe-specific config stuff on a separate Kconfig file.
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
vde-specific config stuff on a separate Kconfig file.
Acked-by: Dmitry Osipenko <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
sun8i-rotate-specific config stuff on a separate Kconfig file.
Acked-by: Jernej Skrabec <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
sun8i-di-specific config stuff on a separate Kconfig file.
Acked-by: Jernej Skrabec <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
stm32-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
hva-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
s5p-g2d-specific config stuff on a separate Kconfig file.
Acked-by: Łukasz Stelmach <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
s3c-camif-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
rga-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
venus-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
camss-specific config stuff on a separate Kconfig file.
Reviewed-by: Robert Foss <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
omap3isp-specific config stuff on a separate Kconfig file.
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
mtk-vpu-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
mtk-vcodec-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|
|
In order to better organize the platform/Kconfig, place
mtk-mdp-specific config stuff on a separate Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
|