msm: camera2: Enhance processed divert in cpp driver.

The processed divert frames from cpp driver can be queued back
to free queue or queued in done queue. This change enhances
cpp driver to support both modes of operation.

Change-Id: I2ec08bd9c25fdb1db089d974c935e97898840e39
Signed-off-by: Rajakumar Govindaram <rajakuma@codeaurora.org>
msm:cpp: Check number of buffers before allocate stream_info

Number of buffers used by cpp is defined by user space. In
case this number is ZERO the allocated memory space will be
pointed by ZERO_SIZE_PTR. Referencing ZERO_SIZE_PTR, causes
same type of behavior as referencing the NULL pointer

Change-Id: I42665225c7d055cda6749198c35e94c1442c6d3e
Signed-off-by: Iliya Varadzhakov <ivarad@codeaurora.org>
msm: camera: Implements ISPIF HW reset.

1. Add version and ISPs number properties in DT ISPIF node
  ISPIF driver needs to know HW version of ISPIF module and number of
  ISPs to which it is connected in order to execute proper reset of
  ISPIF module. For this purpose, two optional properties for these
  are added to ISPIF node. Both properties are optional - if not
  present, ISPIF driver will use default values.

2. Resets ISPIF HW
  Force hardware reset during hardware start to ensure
  all the line buffers are cleared. Reset is done once after first
  open of the module. In order to reset module clocks of CSID and ISPs
  connected to it should be enabled.

Change-Id: I6570ea45d1211c66fe5d6e80d1d2faa019415b68
Signed-off-by: Petar Sivenov <psiven@codeaurora.org>
msm: camera: ISPIF HW reset is incorrecty invoked

Currently ISPIF HW reset is implemented for msm8974 ISPIF HW module only.
However, the check for module is not correct and reset sequence is executed
for 8226 also, putting HW in bad state. The patch uses correct check
against HW version to prevent that.

Change-Id: Iff9ab2deb7c6c207d9493ce2abe56bad4d9d7f6f
Signed-off-by: Petar Sivenov <psiven@codeaurora.org>
msm: camera: Enabling all CSI clocks for ISPIF hw reset.

To perform complete ISPIF HW reset need to enable all CSI
clocks. Earlier only csi0 clock was enabled, causing problems
in reseting RDI interface. Also added change to disable clocks
before returning from hw reset if there is a timeout.

Change-Id: Ia0befc058f06596688b9310ee6c8bf4b017a13ce
Signed-off-by: Sagar Gore <csgore@codeaurora.org>
msm: ispif: Clean up typecasts/format specifiers

Clean up typecasts and format specifiers in msm_ispif.c

Change-Id: I53b8aec6f5a2a5f0271ca2f5cab5de6d72c186c2
Signed-off-by: Seemanta Dutta <seemanta@codeaurora.org>