hwc: remove gpu fallback when there is rotation

A sw workaround was created in mdp3 so composition of layers with
rotation and roi that is not divisible by 16 is now possible to
be done by ppp.

Change-Id: Iada3707da1b85e58dad398b8271d7a26725e0d22
display: Add support for interleaved YUY2 and YUYV format.

Adding support for interleaved HAL_PIXEL_FORMAT_YCbCr_422_I and
HAL_PIXEL_FORMAT_YCrCb_422_I format in display HAL.

Change-Id: Ib87d9bf481c20bf6a92293dd04746719b1d928c1
libhwcomposer: Optimize layer crops when possible.

With in hwc list of layers if a layer above is opaque,
deduct the opaque layers crops from all the layers below
in z-order if deduction is possible with out creating
any hole.

Change-Id: I6391a13b0501cb972b134f72b58514cb807c7613
Merge "display: Add support for interleaved YUY2 and YUYV format."
libexternal: remove mEDIDs string

Remove mEDIDs string from the External class as it not needed
after parsing the string

Change-Id: I0a624857894a0b5401b33408c09b32ceb4f8a0d4
CRs-fixed: 549578
libvirtual: Cleanup patch for DRC feature

Separated the logic for setting virtual display attributes into 3
functions that:
1. Initialize the virtual res. on an ONLINE event
2. Set virtual res. to match primary res (MDP downscale path)
3. Set MDP downscale mode for either DRC or MDP downscale path

Change-Id: Icbf2a6b6301809fee48272ac8a87c732dd2d6634
Merge "libhwcomposer: Optimize layer crops when possible."
hwc: Include more cases in partial MDP composition.

When MDP cannot support a layer, we send the whole list of layers to
GPU. If such layers are not updating they can be cached on FB while
allowing the rest to take the MDP route.

Example # 1: Volume bar on video in 90 rotated mode. Since volume bar
is not h/w accelerated, there is no prerotation and we invoke the GPU
for redraws each round. With this change we won't because of caching.

Example # 2: If prerotation is applied to layers on primary, the
secondary layers would show a transform and the whole list is redrawn
with GPU. Now we could make use of caching.

This change also imposes a 1 layer limit on secondary, but now allows
full and partial MDP comp, thus benefiting secondary-only content.

Change-Id: I7eb43ba817f1081f317fefa99fa0c507344060e8
Merge "libexternal: remove mEDIDs string"
hwc: prevent bandwidth calculation in GPU fall-back case

    In prepare, we check if MDP can handle the number of layers
    given to it. If it cannot, we fall-back. Additionally, we must
    not proceed with any MDP bytes calculations otherwise we will
    see out of bounds errors.

Change-Id: Ifae45aefbc8732a7f21f5652758ece3a7639be9a
Merge "hwc: Include more cases in partial MDP composition."
Merge "libvirtual: Cleanup patch for DRC feature"
Merge "hwc: prevent bandwidth calculation in GPU fall-back case"
libhwcomposer: Make Rect utils generic.

Changes rect utility functions more generic.
Adds more sanity checks.

Change-Id: Ie935302592ac8eb5f7cfaffe03ac49da077a290d
Merge "libhwcomposer: Make Rect utils generic."
libhwcomposer: MDP partial frame update

This change adds support in HWC for MDP partial update applicable
only for command mode panels. Presence of MDP FB (GRAM) in
command mode panels allows MDP clients to update only the updating region
of the frame as rest of the frame will be cached in the GRAM.

HWC calculates the updating region of a frame (ROI) by deducing
outer bounds of its updating layer destinations. Layers not lying
within the calculated ROI will be dropped from the composition
since its illegal to program MDP pipes for non participating layers.

Change-Id: I890d98ff7960fe888787981803cac62f68471201
Merge "libhwcomposer: MDP partial frame update"
libqdutils: initialize split char array to 0

String should have null character at the end, otherwise
functions like atio may not work on the string properly.

Change-Id: Ib3eb579a5a96dbd121bf6f65b09fa19ec7e274f3
CRs-Fixed: 546662
hwc: Add support for Secure display

- Identify secure display layer in the hwc_list
- Need to set both SECURE_OVERLAY and SECURE_DISPLAY flags for the secure
  display layer
- Disable idle timeout for secure display usecase, as GPU should not be
  accessing secure display layer

Change-Id: I555910db77c466b5e103b24b4f0ec7f47bb210a5
Merge "libqdutils: initialize split char array to 0"