adv7604: Add adv7611 support

This patch adds support for the Analog Devices ADV7611 HDMI receiver.
The adv7611 is quite similar to the adv7604. It has only one instead of four
HDMI inputs and no analog frontend though. Also some register bits have been
shuffled around, but large parts of their register maps are compatible.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
adv7604: Remove subdev control handlers

Control operations are handled by the control framework and the subdev
control handlers are never called directly. Remove them.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
adv7604: Add sink pads

The ADV7604 has sink pads for its HDMI and analog inputs. Report them.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
adv7604: Make output format configurable through pad format operations

Replace the dummy video format operations by pad format operations that
configure the output format.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: remapper: Remove of_match_ptr()

The OF device ID table is always compiled in, there's no need to use the
of_match_ptr() macro to initialize the struct device of_match_table
field conditionally.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: sobel: Remove of_match_ptr()

The OF device ID table is always compiled in, there's no need to use the
of_match_ptr() macro to initialize the struct device of_match_table
field conditionally.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: tpg: Remove of_match_ptr()

The OF device ID table is always compiled in, there's no need to use the
of_match_ptr() macro to initialize the struct device of_match_table
field conditionally.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: vipp: Remove of_match_ptr()

The OF device ID table is always compiled in, there's no need to use the
of_match_ptr() macro to initialize the struct device of_match_table
field conditionally.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: sobel: Use devm_ioremap_resource()

devm_request_and_ioremap() is deprecated in favor of
devm_ioremap_resource(). Use it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: tpg: Fix devm_ioremap_resource() return value check

devm_ioremap_resource() returns a negative integer on failure, not a
NULL pointer. Fix the error check.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: vip: Add pads and formats to struct xvip_device

This will simplify video IP drivers by handling pads and formats
allocation in a central place.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: vip: Group functions in sections

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: tpg: Remove NULL entry at the end of control menu strings

The V4L2 controls framework doesn't require a NULL entry at the end of
menu controls strings arrays. Remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: tpg: Use the standard V4L2_CID_TEST_PATTERN control

Replace the custom V4L2_CID_XILINX_TPG_PATTERN control with
V4L2_CID_TEST_PATTERN.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: tpg: Make number of pads dynamic

Instantiate two pads or one pad depending on whether the TPG has been
synthesized with or without the AXI stream slave interface. This
replaces the DT passthrough property.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: Add Video Timing Controller driver

The Video Timing Controller (VTC) includes a timing detector and/or a
timing generator. Only the generator is currently supported.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: tpg: Add VTC support

When configured in pattern generation (non-passthrough) mode the TPG
requires a VTC generator to supply timing information. Request the VTC
if specified in the device tree and configure it when starting and
stopping the stream.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: tpg: Setup controls at probe time

Write the default value of all controls to the hardware at probe time to
make sure the hardware and software configurations match.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: xilinx: vtc: Add video clock support

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
v4l: Add pad-level DV timings subdev operations

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>