hwc: Handle WFD Pause/Resume usecase

During Pause event, set external pending state, there by
allowing frames to fall back to FB, closing all MDP pipes.
Resume event should be considered as a connect event.

Change-Id: I536ab9df7145bbb9081edd01168d3dcbc332f07e
CRs-Fixed: 452380
gralloc: Allow IOMMU memory to be uncached

The IOMMU heap can give us uncached memory, so remove this
erroneous check.

Change-Id: Ie141c55821221a1c2f75b7cf2248794d93ea6c6a
display: Add hook for triggering screen update

DSI command mode panels do not need to be refreshed on each
vsync. Due to one frame latency in CABL LUT calculation, when CABL is
enabled for DSI command mode panels, the LUT doesnt get updated for last
frame. Triggering an extra update for DSI command mode panels fixes it.

Change-Id: I7a22e338609430746dda4d3081ff199109a95035
hwc: handle blank/unblank for virtual display explicitly.

Surfaceflinger does not send Blank/unblank event to hwc for virtual
display, handle it explicitly when blank for primary is invoked, so
that any pipes unset gets committed.

Change-Id: Iec7a1611a8963408f65c8a73a1c15e47cd7faab6
CRs-Fixed: 456810
hwc: Process only MAX_NUM_LAYERS

If the incoming layer count exceeds MAX_NUM_LAYERS,
let surfaceflinger handle the list.

CRs-fixed: 456906
Change-Id: I53159104e5e714ba313d0196ca959f55c82e18ae
Merge "gralloc: Allow IOMMU memory to be uncached"
Merge "display: Add hook for triggering screen update"
Merge "hwc: Process only MAX_NUM_LAYERS"
gralloc: Fix incorrect flag usage on old ion API

The secure flag gets sent only with the new ION API

Change-Id: Ia649500474b0c8384f4b45d599fcff54644005aa
overlay: Reset allocation on all pipes, if commit fails.

If commit fails on a pipe, overlay hal needs to reset allocation
on all pipes for the given display. As MDP Comp fails, it falls
back to video and PipeBook logic does not pick-up those pipes on
which commit was successful. Driver sets new pipes and un-stages
previously set pipes (with same z-order). Pipe clean-up happens
and then in next round, PipeBook logic picks-up previous pipes
hence userspcae and driver remain out of sync.

Change-Id: I963fbdf89f346184688c5bcac2824606a5f7a0f2
Merge "hwc: handle blank/unblank for virtual display explicitly."
hwc: Check for correct screen state before enabling vsync

Sometimes vsync would not be disabled before the display is
blanked.
This was due to the vsync disable ioctl being kicked off in a
thread different from the event control which surfaceflinger
called. So, while the calls from surfaceflinger are in order, the
order of execution wasn't always the same. Hence, making sure
ioctls are called in the same context to ensure order.

Also
- Make blanking/unblanking logs show the operation as a string.
- Add a debug property to dump vsync timestamps (needs framework
reboot)
- Remove a log which showed delay in reading vsync. This log was
unreliable when vsync is disabled and we're still reading from
the sysfs node.

Change-Id: Ibec04e9ffebd0ac6e1d32b7031e3668abd9390ff
CRs-fixed: 443113
Merge "overlay: Reset allocation on all pipes, if commit fails."
Merge "hwc: Check for correct screen state before enabling vsync"
Merge "gralloc: Fix incorrect flag usage on old ion API"
display: Remove genlock usage

genlock is no-op from Android 4.2 onwards since the sync framework
is used for explicit synchronization.

Change-Id: Idd1df589516534a683e0fa1ef0cfbb7f0e411f67
Merge "display: Remove genlock usage"
hwc/overlay: Video on 4k2k external, 4k2k rotation.

-Add support for Video via overlay on 4k2k external panel.
-Add support for rotating videos on 4k2k panels. We use
pre-rotation in hwc to rotate a video into a single buffer,
irrespective of panel size. Then this buffer is fed to MDP.
Rotator objects are managed by the new RotMgr.
-Cleaup mdpcomp and overlay.

Change-Id: Ifb08534747e8e18b6c58dd8a3e1a9947409100f1
Merge "hwc: Handle WFD Pause/Resume usecase"
gralloc: Override gralloc calculated size only if bufferSize is greater.

bufferSize set using native window set buffer size will override gralloc
calculated size only if bufferSize is greater.
Fix for 720P, 1080P HD content playback is not working on 7x27A due to
buffer size mismatch between requested size by frameworks and allocated
size by gralloc for HAL_PIXEL_FORMAT_YCrCb_420_SP and
HAL_PIXEL_FORMAT_YCrCb_420_SP format

Change-Id: I16d04e406ab8f1f35e0e0a70e19d99a019adc5ef
CRs-Fixed: 451783