gralloc: Remove memset.

The ion driver now guarantees that it will give us a zero'd out
buffer at allocation.

Change-Id: I7ec2b7d6dd94cdc394de12b69249ac9e1baa6708
liboverlay: Allocate cached rotator buffers

- gralloc does not invalidate and clean the cached buffers.
- Using cached buffers for rotator does not add any benefit as
  rotator doesn't touch the L2 cache. Since no one accesses the
  memory but the rotator and mdp, so make rotator buffers uncached

Change-Id: I3dc3c91afb2fc07b7473662323339aac1cea3d73
overlay: Update rotator buffer size calculation for BWC.

For BWC, update the rotator buffer size calculation in display HAL
as MDSS driver needs to allocate for both chroma (U & V) planes.

Change-Id: I140be2b0a38d6cd66e2ee1b3c9a8bb06efd96bfe
hwc: Increase precision in triming

Increase precision from float to double in triming calcs.
This improves the output. We need this since ultimately
we assign to int which would truncate excesses. With float
due to lower precision, we end up slightly lower than an
integral value.

Change-Id: I5d781b609be1761b746edf6503340f34a985b9e2
libqdutils: Add synchronization to idle invalidator

Protect invalidator data from accessing multiple threads
asynchronously. Composition thread and idle invalidator
threads could access at same time. Add locking to protect
invalidator class  member variables.

Change-Id: I568ec367958c88f70f7aa4e6917abd53830adfd3
hwc: Don't lock eventControl for vsync events

Locking here can lead to a delay in vsync disable/enable
where prepare/set is not yet completed. The HWC spec says that
eventControl needs to take effect immediately.
This lock was earlier present when we waited for SF to unblank
primary at startup and the vsync control ioctls could fail.
This is no longer necessary as we unblank primary on startup now.

Change-Id: I2bf18ae9235f8dd428a495a9a23af7f00f34ff1d
hwc: wfd: Fix locking on pause resume events

Fix locking on wfd pause, resume events. Some variables are updated
without proper locks being held.

Fix external related lock in hwc to include complete prepare and draw
Mdp comp for primary, otherwise, ends up reading some flags without
locks.

Change-Id: I0f2f0953a7ab322128d044ca3458e359da4e575e
overlay: Add writeback support

Add explicit writeback display type, writeback ioctls, memory mgmt,
writeback class, writeback obj manager class to overlay.

Change-Id: I171e60cea5ed8f6649859e3eb189df37b39962f1
display: define ANDROID_JELLYBEAN_MR1 outside TARGET_USES_QCOM_BSP

define ANDROID_JELLYBEAN_MR1 outside TARGET_USES_QCOM_BSP check,
because ANDROID_JELLYBEAN_MR1 is not specific to qualcomm.

Change-Id: Ib99dfa3a77d2b4df8bd4910fff3d948924629d9b
display: Export headers

Display headers used by other components should be at a common
location to avoid issues with future changes in paths.

Change-Id: Iaec21206b82dd7dae03e598b9ec46b3e6f1bbf71
hwc: Add support for HDMI vsync

SurfaceFlinger can enable HDMI vsync through event control.
Poll for HDMI vsync events and report them to SurfaceFlinger.

Change-Id: I301f1dffbab56b3b5a3dda5a59c37721688d7849
Merge "overlay: Update rotator buffer size calculation for BWC."
hwc: Refactor of allowing virtual displays to HWC

  1. Since SF doesnt invoke blank for virtual display,
     handle pipe clean up as part of Primary display
     blank.
  2. Support virtual display to query display attributes.

This refactor is done to address Framework reboot issue.

Change-Id: I266a87228193fd85252a22242b66dd4af5f3033f
Merge "liboverlay: Allocate cached rotator buffers"
Merge "gralloc: Remove memset."
Merge "hwc: wfd: Fix locking on pause resume events"
Merge "hwc: Increase precision in triming"
hwcomposer: Fix a crash with MDP composition.

Reset the current frame data before returning from MDP
composition prepare to avoid accessing previous frame data
in MDP composition draw phase. Avoid the number of app layers
going beyond the layer count limit in MDP composition.

Change-Id: I2a3035ad5cb1731060b9359ccdbe9fe0c07e843c
CRs-fixed: 510683
overlay: Fix crash due to small debug buffer size

The debug buffer size is insufficient for newer targets with multiple
pipes. The code causing crash is enabled only if the PIPE_DEBUG macro
is enabled during local debugging.

We now increase the buffer size and also put some string operations under
the macro check for efficiency.

Change-Id: I4ad418d314fd8c7d374ccfdb0943dde44d968922
Merge "display: define ANDROID_JELLYBEAN_MR1 outside TARGET_USES_QCOM_BSP"