20 Jun, 2017
40 commits
-
As reported by gcc:
drivers/media/i2c/ov13858.c:953:20: warning: duplicate const
drivers/media/i2c/ov13858.c:953:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
static const const s64 link_freq_menu_items[OV13858_NUM_OF_LINK_FREQS] = {
^~~~~Signed-off-by: Mauro Carvalho Chehab
-
There is no need to split long string literals.
Join them back.No functional change intended.
Signed-off-by: Andy Shevchenko
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
DW9714 is a 10 bit DAC, designed for linear
control of voice coil motor.This driver creates a V4L2 subdevice and
provides control to set the desired focus.[Sakari Ailus: Add MAINTAINERS entry.]
Signed-off-by: Rajmohan Mani
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
This patch adds driver for Omnivision's ov13858
sensor, the driver supports following features:- manual exposure/gain(analog and digital) control support
- two link frequencies
- VBLANK/HBLANK support
- test pattern support
- media controller support
- runtime pm support
- supported resolutions
+ 4224x3136 at 30FPS
+ 2112x1568 at 30FPS(default) and 60FPS
+ 2112x1188 at 30FPS(default) and 60FPS
+ 1056x784 at 30FPS(default) and 60FPS[Sakari Ailus: use V4L2_CID_DIGITAL_GAIN instead, add MAINTAINERS entry.]
Signed-off-by: Hyungwoo Yang
Signed-off-by: Sakari Ailus
Signed-off-by: Mauro Carvalho Chehab -
Elaborate the differences between V4L2_CID_GAIN and gain-type specific
V4L2_CID_DIGITAL_GAIN and V4L2_CID_ANALOGUE_GAIN.Signed-off-by: Sakari Ailus
Acked-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add V4L2_CID_DIGITAL_GAIN to control explicitly digital gain.
We already have analogue gain control which the digital gain control
complements. Typically higher quality images are obtained using analogue
gain only as the digital gain does not add information to the image
(rather it may remove it).Signed-off-by: Sakari Ailus
Acked-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add maintainer entry for the imx-media driver.
Signed-off-by: Steve Longerbeam
Acked-by: Philipp Zabel
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Calling S_STREAM OFF multiple times on a video device is valid, although
dubious, practice. Instead of warning about it and setting stream count
lower than zero, just ignore the subsequent S_STREAM calls and correct
the stream count to zero.Signed-off-by: Marek Vasut
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This patch adds a call to imx_media_fill_default_mbus_fields() in the
*_try_fmt() functions at the sink pads, to set empty field order and
colorimetry parameters.If the field order is set to ANY, choose the currently set field order
at the sink pad. If the colorspace is set to DEFAULT, choose the
current colorspace at the sink pad. If any of xfer_func, ycbcr_enc
or quantization are set to DEFAULT, either choose the current sink pad
setting, or the default setting for the new colorspace, if non-DEFAULT
colorspace was given.If a format is destined to be routed through the Image Converter,
fixed quantization and Y`CbCr encoding must be set.Colorimetry is also propagated from sink to source pads anywhere
this has not already been done.Signed-off-by: Steve Longerbeam
Signed-off-by: Philipp Zabel
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add support for enumerating frame sizes and frame intervals from the
first subdev via the V4L2 interfaces.Signed-off-by: Russell King
Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add frame size and frame interval enumeration to CSI.
CSI can downscale the image independently horizontally and vertically by a
factor of two, which enumerates to four different frame sizes at the
output pads. The input pad supports a range of frame sizes.CSI can also drop frames, resulting in frame rate reduction, so
enumerate the resulting possible output frame rates.Signed-off-by: Russell King
Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Move the crop rectangle to the sink pad and add a sink compose rectangle
to configure scaling. Also propagate rectangles from sink pad to crop
rectangle, to compose rectangle, and to the source pads both in ACTIVE
and TRY variants of set_fmt/selection, and initialize the default crop
and compose rectangles.Signed-off-by: Philipp Zabel
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
The CSI can skip any out of up to 6 input frames, allowing to reduce the
frame rate at the output pads by small fractions.Signed-off-by: Philipp Zabel
Signed-off-by: Steve Longerbeam
Signed-off-by: Russell King
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
The IDMAC supports burst sizes of up to 32 pixels for interleaved YUV
formats and up to 64 pixels for planar YUV formats.Signed-off-by: Philipp Zabel
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Bayer formats must be treated as generic data and passthrough mode must
be used. Add the correct setup for these formats.- added check to csi_link_validate() to verify that destination is
IDMAC output pad when passthrough conditions exist: bayer formats
and 16-bit parallel buses.Signed-off-by: Russell King
Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Adds MIPI CSI-2 Receiver subdev driver. This subdev is required
for sensors with a MIPI CSI2 interface.- Switch from the v4l2_of_ APIs to the v4l2_fwnode_ APIs.
- Add the function csi2ipu_gasket_init() to initialize the gasket at
s_power(ON). The gasket needs to be programmed with the correct color
component ordering to handle UYVY vs. YUYV ordered mbus formats from
sensors. Note that the description of the CSI2IPU_GASKET register in
the i.MX6 reference manual is wrong w.r.t bit 2 (the manual refers to
this register as CSI2_SW_RST): setting bit 2 selects YUYV order, not UYVY.Signed-off-by: Steve Longerbeam
Signed-off-by: Philipp Zabel
Suggested-by: Marek Vasut
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This is a set of three media entity subdevice drivers for the i.MX
Image Converter:- Pre-process Router: Takes input frames from CSI0, CSI1, or VDIC.
Two output pads enable either or both of the preprocess tasks
below. If the input is from one of the CSIs, both proprocess task
links can be enabled to process frames from that CSI simultaneously.
If the input is the VDIC, only the Pre-processing Viewfinder task
link can be enabled.- Pre-processing Encode task: video frames are routed directly from
the CSI and can be scaled, color-space converted, and rotated.
Scaled output is limited to 1024x1024 resolution. Output frames
are routed to the prpenc capture device.- Pre-processing Viewfinder task: this task can perform the same
conversions as the pre-process encode task, but in addition can
be used for hardware motion compensated deinterlacing. Frames can
come either directly from the CSI or from the VDIC. Scaled output
is limited to 1024x1024 resolution. Output frames are routed to
the prpvf capture device.Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This is a media entity subdevice driver for the i.MX Video De-Interlacing
or Combining Block. So far this entity does not implement the Combining
function but only motion compensated deinterlacing. Video frames are
received from the CSI and are routed to the IC PRPVF entity.Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This is a media entity subdevice for the i.MX Camera
Sensor Interface module.- Added support for negotiation of frame intervals.
- Fixed cropping rectangle negotiation at input and output pads.
- Added support for /2 downscaling, if the output pad dimension(s)
are 1/2 the crop dimension(s) at csi_setup() time.Signed-off-by: Steve Longerbeam
Signed-off-by: Russell King
Signed-off-by: Philipp Zabel
[hans.verkuil@cisco.com: add linux/pinctrl/consumer.h include]
Signed-off-by: Hans VerkuilSigned-off-by: Mauro Carvalho Chehab
-
This is the capture device interface driver that provides the v4l2
user interface. Frames can be received from various sources:- directly from CSI for capturing unconverted images directly from
camera sensors.- from the IC pre-process encode task.
- from the IC pre-process viewfinder task.
Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add a TODO file.
Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add the core media driver for i.MX SOC.
Switch from the v4l2_of_ APIs to the v4l2_fwnode_ APIs.
Add the bayer formats to imx-media's list of supported pixel and bus
formats.Signed-off-by: Steve Longerbeam
Signed-off-by: Philipp Zabel
Signed-off-by: Russell King
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This adds a header file for use by userspace programs wanting to interact
with the i.MX media driver. It defines custom events and v4l2 controls for
the i.MX v4l2 subdevices.Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add bindings documentation for the i.MX media driver.
Signed-off-by: Steve Longerbeam
Acked-by: Rob Herring
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add maintainer entry for the OV5640 V4L2 sensor driver.
Signed-off-by: Steve Longerbeam
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This driver is based on ov5640_mipi.c from Freescale imx_3.10.17_1.0.0_beta
branch, modified heavily to bring forward to latest interfaces and code
cleanup.Signed-off-by: Steve Longerbeam
Acked-by: Sakari Ailus
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add device tree binding documentation for the OV5640 camera sensor.
Signed-off-by: Steve Longerbeam
Acked-by: Rob Herring
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add maintainer entry for the video multiplexer v4l2 subdevice driver that
will control video bus multiplexers via the multiplexer framework.Signed-off-by: Philip Zabel
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This driver can handle SoC internal and external video bus multiplexers,
controlled by mux controllers provided by the mux controller framework,
such as MMIO register bitfields or GPIOs. The subdevice passes through
the mbus configuration of the active input to the output side.Since the mux framework is not yet merged, this driver contains
temporary mmio-mux support to work without the framework. The driver
should be converted to use the multiplexer API once the "mux: minimal
mux subsystem" and "mux: mmio-based syscon mux controller" patches are
merged.Signed-off-by: Sascha Hauer
Signed-off-by: Philipp Zabel
Signed-off-by: Steve Longerbeam
Acked-by: Sakari Ailus
Acked-by: Pavel Machek
[hans.verkuil@cisco.com: add 'select REGMAP' to Kconfig]
Signed-off-by: Hans VerkuilSigned-off-by: Mauro Carvalho Chehab
-
Add two new media entity function definitions for video multiplexers
and video interface bridges.- renamed MEDIA_ENT_F_MUX to MEDIA_ENT_F_VID_MUX
Signed-off-by: Philipp Zabel
Signed-off-by: Steve Longerbeam
Acked-by: Sakari Ailus
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add bindings documentation for the video multiplexer device.
Signed-off-by: Sascha Hauer
Signed-off-by: Philipp Zabel
Signed-off-by: Steve Longerbeam
Acked-by: Sakari Ailus
Reviewed-by: Sebastian Reichel
Acked-by: Rob Herring
Acked-by: Pavel Machek
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
load is an unsigned integer. So, it is always bigger or equal
to zero, as reported by gcc:drivers/media/i2c/max2175.c: In function 'max2175_refout_load_to_bits':
drivers/media/i2c/max2175.c:1272:11: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
if (load >= 0 && load -
Add maintainter entry for the R-Car DRIF and MAX2175 drivers.
Signed-off-by: Ramesh Shanmugasundaram
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This patch adds Digital Radio Interface (DRIF) support to R-Car Gen3 SoCs.
The driver exposes each instance of DRIF as a V4L2 SDR device. A DRIF
device represents a channel and each channel can have one or two
sub-channels respectively depending on the target board.DRIF supports only Rx functionality. It receives samples from a RF
frontend tuner chip it is interfaced with. The combination of DRIF and the
tuner device, which is registered as a sub-device, determines the receive
sample rate and format.In order to be compliant as a V4L2 SDR device, DRIF needs to bind with
the tuner device, which can be provided by a third party vendor. DRIF acts
as a slave device and the tuner device acts as a master transmitting the
samples. The driver allows asynchronous binding of a tuner device that
is registered as a v4l2 sub-device. The driver can learn about the tuner
it is interfaced with based on port endpoint properties of the device in
device tree. The V4L2 SDR device inherits the controls exposed by the
tuner device.The device can also be configured to use either one or both of the data
pins at runtime based on the master (tuner) configuration.Signed-off-by: Ramesh Shanmugasundaram
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add binding documentation for Renesas R-Car Digital Radio Interface
(DRIF) controller.Signed-off-by: Ramesh Shanmugasundaram
Acked-by: Rob Herring
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This patch adds documentation for the three new SDR formats
V4L2_SDR_FMT_PCU16BE
V4L2_SDR_FMT_PCU18BE
V4L2_SDR_FMT_PCU20BESigned-off-by: Ramesh Shanmugasundaram
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This patch adds support for the three new SDR formats. These formats
were prefixed with "planar" indicating I & Q data are not interleaved
as in other formats. Here, I & Q data constitutes the top half and bottom
half of the received buffer respectively.V4L2_SDR_FMT_PCU16BE - 14-bit complex (I & Q) unsigned big-endian sample
inside 16-bit. V4L2 FourCC: PC16V4L2_SDR_FMT_PCU18BE - 16-bit complex (I & Q) unsigned big-endian sample
inside 18-bit. V4L2 FourCC: PC18V4L2_SDR_FMT_PCU20BE - 18-bit complex (I & Q) unsigned big-endian sample
inside 20-bit. V4L2 FourCC: PC20Signed-off-by: Ramesh Shanmugasundaram
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
This patch adds driver support for the MAX2175 chip. This is Maxim
Integrated's RF to Bits tuner front end chip designed for software-defined
radio solutions. This driver exposes the tuner as a sub-device instance
with standard and custom controls to configure the device.Signed-off-by: Ramesh Shanmugasundaram
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Add device tree binding documentation for MAX2175 RF to bits tuner
device.Signed-off-by: Ramesh Shanmugasundaram
Acked-by: Rob Herring
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab -
Reserve controls for MAX217X RF to Bits tuner family. These hybrid
radio receiver chips are highly programmable and hence reserving 32
controls.Signed-off-by: Ramesh Shanmugasundaram
Acked-by: Laurent Pinchart
Signed-off-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab