hwc/overlay: Get rot dest dimensions instead of manipulating source

Currently for Mdss rotator we manipulate the layer buffer dimensions
to be equal to what rotator's destination dimensions would be, so that
these could be fed to MDP. Instead, this patch introduces APIs in
rotator so that hwc can directly query destination crop, width, height,
format from rotator.

This also simplifies the updateSource() and configRotator() helpers.

Change-Id: I501d998f2e0574683c764af9422742b2426ba0c7
Revert "display: Revert some problematic changes for now."

This reverts commit 231f87b24f702d475365ab37becc1d4903218ca9.

Change-Id: I13fbac5299e6ee50d4f6924ca10ac7c136da288a
hwc: Source Split layers always if indicated by driver

Source Split layers always if the driver indicates so by setting
the src_split_always in the capabilities sysfs node.
This is applicable to layers whose width > mixer's width, since
MDP clk rate is dependent on max(mixer_width, layer_width).

This feature can be enabled if the panel height is more than a
certain empirically derived value. Splitting always in those
cases can help with a lower voltage.

Change-Id: If9b33f11ca4132eb77416c26819f7473c65d3b08
hwc: Add display ROI in HWC dumpsys

Add ROI generated for each display in their dumpsys data.

Change-Id: I41fb79af9d42abc11ff147d18a600fd4ad60ab6c
hwc: modifying logic in adjust FB Z-order for 4k2kYUVSplit

Use complete layer list details instead of depending on only
4k YUV layer indices.

Change-Id: I28deee47b8330a4b3c56bef48e333ce6ead8bf25
hwc: Consider FLIP flags for partial update.

FLIP flags need to be considered while calculating srcCrop and
displayFrame even when a layer is updated partially on dual DSI
panels.

Change-Id: I097b3335e66566d6639848bc8f8382bfeabb7f54
overlay: Remove obsolete code from pipe config path

Remove obsolete / unused code from pipe config path like pipe crop
modification for rotator downscale, 3D, pipestate.

Change-Id: I34ec80dce8736f65069794f21fbd56922304cb8b
hwc: Fix klockwork errors

Resolving klockwork errors to avoid memory leaks,
improper assignments in liboverlay.

Change-Id: I82ac6ae782c7b783e89999b832bbd1d361376b9f
hwc: In PTOR, offset depends on stride calculated by gralloc

1. In PTOR feature, offset for the second overlap layer on render
buffer, depends on stride calculated by gralloc for RGBA (4 bpp).

2. If mCopyBit object exists for external, we need setReleaseFd()

Change-Id: I74e365def2a6e540b2f2ba2b294b6b1e00e0ea96
hwc: 8084: Split videos with width > 2048 if source split absent

Split video with width > 2048 only if source split is absent, and
the relevant system property is set.
In source split the video is split evenly anyway.

Change-Id: Iab0af427756d32120a160787ecfb7c974dbbeea1
(cherry picked from commit c6f6ce9981e095965c7aec262954f5afbd24043a)
hwc: Configure MDP with updated crop and whf for PTOR layers

1. For PTOR layers, MDP needs to be configured with width, height
and format of the Copybit render buffer, otherwise it will lead to
artifacts due to incorrect render buffer reads, when PTOR layer
handles have un-equal strides.

2. Remove render buffer offset for a PTOR layer and configure MDP
with modified source crop, based on its position on render buffer.

3. A layer cannot qualify for PTOR feature, if none of below layers
intersect with it.

Change-Id: Idba65789b9ed3b699a5c70107881868c0385322d
hwc: Enable PTOR feature for split display

Enable PTOR feature for split display devices.

Change-Id: I2f8acc0713acf2a50f0cd472c272bc1298f4ed7f
hwc: Configure MDP with updated content attributes of PTOR layers

Since there is no content underneath a PTOR layer, all overlapped
contents have been composed by Copybit on render buffer. So for a
PTOR layer, we can set blending to HWC_BLENDING_NONE and planeAlpha
to 0xFF. And the transform for the PTOR layer should be set to 0 to
avoid MDP flipping again.

Change-Id: I26fec26dcde4d9b0b62f94107a013d82074628b5
Merge pull request #2 from CyanogenMod/cm-11.0

update