WIP: staging: drm/omap: dmabuf/prime mmap support

There are still a few places to cleanup, and possibly things can be
made a bit easier for individual drm drivers by some helpers in drm
core.  But this is enough for a proof of concept.

With this, I can allocate cached buffers, fill them w/ software from
userspace, and on kernel side with fault handling and PTE shootdown
track which pages must be flushed to simulate coherency.

Fyi, you can find my kernel branch, with this patch on top of Daniel's
dmabuf mmap patch, here:

https://github.com/robclark/kernel-omap4/commits/dmabuf/mmap
omap2+: add drm device

Register OMAP DRM/KMS platform device, and reserve a CMA region for
the device to use for buffer allocation.  DMM is split into a
separate device using hwmod.

Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Rob Clark <rob@ti.com>
ARM: OMAP3: USB: fix compile err
mfd: twl6040: Fix wrong TWL6040_GPO3 bitfield value

The define should be the result of 1 << Bit number.

Bit number for GPOCTL.GPO3 field is 2, which results
in 0x4 value.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
v4l: Introduce integer menu controls

Create a new control type called V4L2_CTRL_TYPE_INTEGER_MENU. Integer menu
controls are just like menu controls but the menu items are 64-bit integers
rather than strings.

Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
media: Add link_validate() op to check links to the sink pad

The purpose of the link_validate() op is to allow an entity driver to ensure
that the properties of the pads at the both ends of the link are suitable
for starting the pipeline. link_validate is called on sink pads on active
links which belong to the active part of the graph.

Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
v4l: Improve sub-device documentation for pad ops

Document that format related configuration is done through pad ops in case
the driver does use the media framework.

Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
v4l: Implement v4l2_subdev_link_validate()

v4l2_subdev_link_validate() is the default op for validating a link. In V4L2
subdev context, it is used to call a pad op which performs the proper link
check without much extra work.

Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
OMAP4: hwmod: Include CSI2A/B and CSIPHY1/2 memory sections

In memory, They are in this particular order:
- CSI2A
- CSIPHY1
- CSI2B
- CSIPHY2

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
OMAP4: Add base addresses for ISS

NOTE: This isn't the whole list of features that the
ISS supports, but the only ones supported at the moment.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
v4l: Add support for omap4iss driver

This adds a very simplistic driver to utilize the
CSI2A/B interfaces inside the ISS subsystem in OMAP4,
and dump the data to memory.

Check newly added Documentation/video4linux/omap4_camera.txt
for details.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
v4l: Add support for ov5640 sensor

This adds a very limited driver for ov5640, which
only supports:
 - 2592x1944 @ ~7.5 fps
 - 1920x1080 @ ~15 fps,
 - 1280x720 @ ~24 fps,
 - 640x480 @ ~24 fps,
 - 320x240 @ ~24 fps,

All in YUV422i format, using 1 CSI2 datalane @ 333 MHz.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
v4l: Add support for ov5650 sensor

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
arm: omap4430sdp: Add support for omap4iss camera

This adds support for camera interface with the support for
following sensors:

- OV5640
- OV5650

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
arm: omap4panda: Add support for omap4iss camera

This adds support for camera interface with the support for
following sensors:

- OV5640
- OV5650

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
omap2plus: Add support for omap4iss camera

Also add support for following sensors:
- OV5640
- OV5650

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
arm: Add support for CMA for omap4iss driver

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
OMAP4: hwmod: Include ISP SYS1, ISIF, and IPIPEIF memory sections

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
omap4iss: csi2: use VP16 for YUV422 8-bit

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
panda: camera: Set CSI2 VP out divider for OV5640

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>