media: Add i.MX6 mem2mem driver

Adds a mem2mem driver for i.MX6 SoC. Uses the IPU IC Post-processor
to perform scaling, rotation, and color space conversion. The driver
uses tiling to support scaling up to 4096x4096.

There are some restrictions when tiling is used:

- Rotations are allowed but may not produce the desired results. For example,
  a 1440x540 capture frame requires 2 720x540 conversions (split vertically),
  so a vetical flip will look correct but a 90 degree rotation will not. To
  carry out such an operation correctly, the application can carry out two
  conversions: the first downsizes to at or below 1024x1024 with rotation,
  the second resizes back to 1440x540 using the rotated image.

- Due to the 8-byte alignment restriction in the IPU DMA for frame addresses
  and U/V plane offsets, higher alignments are required for both input and
  capture frame widths in order to satisfy the 8-byte alignment for every
  individual tile. Specifically, the pixel alignment required is 16
  times the number of columns required to tile the conversion. For
  example 1440x540 requires 2 columns, so the width alignment is 32 pixels
  (which 1440 does satisfy). A conversion requiring 4 columns (the maximum)
  requires frame width alignment of 64 pixels.

- The application is required to set the capture format first before the
  input format, in order to determine tiling and alignment.

Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers

Enable imx6 v4l2 staging drivers as modules. For video capture on
the SabreAuto, the ADV7180 video decoder also requires the
i2c-mux-gpio and the max7310 port expander.

Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>