History log of /hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
271d9d58a164a0516533591aeb0b5e9258568350 13-Aug-2015 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Start with ROI set to destination

Some layers will not have surfaceDamage information,
like video and CPU rendered, so consider their destination
as the surfaceDamage. For other layers start with destination
will be calculated based on the surfaceDamage

Bug: 23218645
Bug: 28447536

Change-Id: Ic7308bf9dfb7d062596873963c738f644b1c1a84
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ecf38487b38d1351fe407665ed5a9ffa90392691 11-Mar-2015 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: use surfaceDamage to calculate the dirtyrect as per HWC 1.5

Update the HWC version to HWC 1.5

surfaceDamage is passed as part of the layer, use this information
to determine if the layer is changing and handle cache.

The total dirty rectangle for a given layer will be the sum of all
the damageRectangles, use that to calculate the ROI

Bug: 11239309
Change-Id: Iddff278e716099d252e059aae02764f4b8630a6f
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
94b51da4bc46f846fa2f7f0e36d2730b63ae88e2 27-Sep-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix src split bugs

--In "always_split" mode, split FB only if the updated portion of
FB's width is less than mixer width

--While deciding whether or not to allocate the 2nd pipe, account
for 90 transform in crop width

--Crop minimum width limitation of at least 5 pixels does not apply
to targets after 8974 v2.

Bug: 18092749
Change-Id: I83b4690216a75c0d57e7e4e7b18b4531bb22df05
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
80c2b7d36c8a088e7672aed237966986bf99fa29 14-Aug-2014 Jesse Hall <jessehall@google.com> {msm8084,msm8226,msm8960}/hwc: Free all MdpPipeInfos on reset

The reset code was only freeing MdpPipeInfos if numLayers>0, but on
every frame it was being called with numLayers==0 and then again with
numLayers>0. Since reset also memsets the structure to zero, it was
leaking the MdpPipeInfos on every frame.

I haven't confirmed reset(0) is called on these chips, only on
msm8974, and that's a necessary condition for the leak to occur. But
this change is safe either way.

Bug: 16601370

Change-Id: Ic24dc3c3546ecdb4e86f7ff3085b2665354e93cd
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
0eb79f8456c2a8bb0f30a2e966f8c9000fe934e9 23-May-2014 Saurabh Shah <saurshah@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c6c8b11a6fb2c959bd005a9d03e50a258fafff1f 03-Jun-2014 Saurabh Shah <saurshah@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
53528b618604234ca8d7d99eddc3ce3642db808a 22-May-2014 Dileep Kumar Reddi <dkumarre@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c9aaaa729da1a4d56a52101e0ee6f5f84e6fbf52 30-May-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Map dirtyRect to layer destination for single DSI panels.

Map dirtyRect generated for sourceCrop to layer destination
before using it for calculating ROI for single DSI
panels.

Change-Id: Ie65284e9c58270c66276f9d43c4eb3e7db29b623
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
996a7bc37b57c2bca351e8b2e3b27a4e3b7390ad 10-Mar-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Simulate composition strategy

Provide support to simulate composition strategy tree to execute
and test multiple strategy combinations across test cases.

Change-Id: I5011fad32f8f45ecef47b6df513f9d72343697d2
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
f4a5614d0908640d9a46d55c25b6ab224f3fae81 27-May-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Add display ROI in HWC dumpsys

Add ROI generated for each display in their dumpsys data.

Change-Id: I41fb79af9d42abc11ff147d18a600fd4ad60ab6c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
5af547f7a17efd1f909e18015f3bfdda7abf0f4e 19-May-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: source split: Enable BWC for video with width <= mixer width

Enable BWC for videos with crop and position widths <= mixer width.
Source split was earlier used on split panels only, and BWC was
never enabled (It should at least have been for eligible content).
When source split was enabled for all panels, automatically BWC got
disabled for rotated videos. This change fixes that.

Change-Id: I349e782fb6de515ff42fcb137f02cf27c425da56
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
253d8a06d8c2b35e8cf22f853a8b2590848b5436 08-May-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Map dirtyRect to layer destination before using.

DirtyRect for a layer is generated w.r.t to its buffer
coordinates. It needs to be mapped for layer destination
(display) coordinates before using it to calculate the frame's
ROI.

Change-Id: Id86f495b2016da2cfd5aed4d86bff6d3035abf10
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ecd6f5d93a833293d2fd651069cc2e0e86acc27d 25-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Support single ROI for split panels.

For panels that cannot accept commands in both the interfaces, we cannot
send two ROI's (for each half). We merge them into single ROI and split
them across lSplit for MDP mixer use. The ROI's will be merged again
finally before updating the panel in the driver.

- Reads panel property of dual control path
- If dual control path not supported, merge ROI's before
analysing for composition strategies.

Change-Id: I67e361a299dc5d1adb28b180900e24633eefc4a8
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c9b4387ff5af60882a032188b64b85bebad3977a 18-Nov-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Extend partial frame update for split displays

Extends partial frame update support for split displays by calculating
changing region(ROI) independently for each half of the screen. In case of
only one half updating, display driver shuts down the DSI/MDP mixer control
of the non updating half.

Maintains two ROI's for each display. In case of Non-split
displays, only left ROI is updated.

Change-Id: I8a67fe40aac665a48b6f8a46beffb9f8027851b2
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1cb4875164427a62fac7dda3d3c94c96a5f0824b 18-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Don't validate dropped layers for MDP support.

Ignore dropped layers while checking MDP support for layers
when trying for full MDP composition.

Change-Id: Ia11594173759e9dcc321d72ef425615281c35b7c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ac2fedd035f04998f47f2c5a47034a0968e47865 30-Apr-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Enable source split for targets with single dsi

Enable source split for targets with single dsi. This has the
benefit of using 2 pipes for layers whose width (crop) is higher
than line width.

Change-Id: I147136a3eb786e1af7b63508d65c010e88e358ed
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
d50e2fa08aa8e3d3ae103cd9d878af97ea496851 27-Feb-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Use layer dirty rect to calculate frame's updating ROI.

Use layer dirty rect instead of display frame to calculate frame's ROI.

Change-Id: If5fe93da7815efdf9b44ed683a4d80b397921cf1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
314840035b55115a39d526cde009c678ccdacf40 05-Mar-2014 Saurabh Shah <saurshah@codeaurora.org> overlay: Support for returning pipe based on capability.

Add support for returning pipes based on capabilities.
getPipe() API takes in pipe specifications like format class,
scaling, display, mixer, fb and decides what pipe to return.
The nextPipe() API is now just a private helper.

Change-Id: I0ab809662c0ad6297e19a44f39264ee929944d13
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
b64922f99edce921000e0aaf17bd3bcb686910d1 31-Mar-2014 Dileep Kumar Reddi <dkumarre@codeaurora.org> HWC: Minor fix in 4k2kYUVsplit feature.

Increment fbZ when 4k2kyuvindex matches with fbZ,
otherwise we see momentary flicker as right half of
4k2k YUV layer and fb layer have same z-order.

Change-Id: Ia900e102b6d4670b9bfdfd4e52ef360d1d813cab
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
3d3705af561ebe7182b23fdc81e0b755d22b11eb 17-Feb-2014 Praveena Pachipulusu <pveena@codeaurora.org> hwc: Use proper typecasts.

- Remove compiler warnings
- Use proper typecasts

Change-Id: I7391f32ae31283239f5cebb93b02f3ce3a5c99f3
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
a85d9f9f2d5cd0555b409b1fc974a9ecec3fee56 13-Mar-2014 radhakrishna <radhakrishna@codeaurora.org> h/q/d: Add utility function for 8x16 and read RGB scalar capability.

- Add utility function for 8x16
- Add internal function to identify if RGB doesn't
support scaling that is read from capabilities node.
- If UI layer needs scaling and RGB pipe doesn't
support scalar, request a VG pipe
- On 8x16, request DMA pipe for WFD

Change-Id: I94e8e0371bb10fcad53fddd2b7c45bc9b2594a4d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
22f45504c700b0011b418791c461939c90c34df6 09-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Skip dropped layers in video only composition.

No need to draw dropped layers while doing video only composition
since they are lying outside updating ROI.

Change-Id: I7bef731538e39a5b16f17314ad31f0c4e7f2b618
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
e69d2f823985e2111ad652bf5a1a9c75ac34e5ce 15-Apr-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Set MDSS_MDP_DUAL_PIPE on both pipes

Set MDSS_MDP_DUAL_PIPE on both left and right pipes so libscalar
can detect the pipe pair.

Change-Id: I2c77238de1c7f81d4e17f516680a63462482910e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
5080cdee5662ba2eab9a058bda428217720dc694 31-Mar-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Add rotator obj to layer-rot-map if acquired

Add rotator obj to the layer-rot-map soon after its successfully
acquired. This makes sure that any object allocated is accounted
for, irrespective of whether rotator configuration succeeds or not.

Change-Id: I94102d9c607cf61b2eccdf7f2445bb07d309d35c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
348ca172f707a14925ba1652e9bcb3d4c2a695f4 28-Feb-2014 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Add support for pipe priorities, 1 pipe config for FB

If using source split to stage 2 pipes on the same mixer stage,
the left pipe needs to be a higher priority than the right.

Add API in overlay to compare pipe priorities and use this in
source split config to stage pipes accordingly.

Add support for 1 pipe config for FB if updating rect is within 2048
pixels.

Change-Id: I8b33d5ebd0f8765ee842bab128d8abd67a110145
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c5d8c2edd27f73d6d61db2e06c99597388c912b2 11-Mar-2014 Manoj Kumar AVM <manojavm@codeaurora.org> hqd: Restrict decimation when layer format is macro-tile

When layer format is macro-tile, decimation cannot be supported.
Add necessary checks to bail out for such use-case.

Change-Id: I711f07a2963a76280a08887d04770cd418d8bd1e
(cherry picked from commit 8cbbf7cb13fb3a3d1c5a20dba19f2c6c40778318)
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
7dc3e31e2a6de0ee146ad9146c12453ad5ce8fa7 13-Feb-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Add support for SourceSplit

Add support for SourceSplit. The mixers are abstracted from hwc.
There would be no translations to mixer understood destinations.

1) If a layer's crop and position are < 2048, only 1 pipe can be used
irrespective of position.
2) Else 2 pipes can be used with the layer equally split, without
regard to position.

Change-Id: I501a53838d147887c1e2299366663e05320d5096
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
dfe40345210611d4548daa7ba1fc032fac238e97 21-Feb-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Iterative Load based comp

While performing load based mixed composition, iterate from max
stages of mixer to at least 2.
Get rid of modes that preferred GPU or MDP. This new mode will
include both plus the missed out batches.

Change-Id: Ideb06a2332fe2f59968367d28df848be01f4aedc
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8bbd198561f4f09762f13a3e2c9e201a5efdad1b 26-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "qdutils: Refactor idletimeout fallback mechanism."
c45612ef0385d2d745dcc32c456b2d37b141af22 22-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "h/q/d: Optimize framebuffer layer update"
ea25f6717f4a49839614a46c27cf577b3bc6b9bd 22-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "h/q/d: Rename property to enable partial update"
556fd4272806c1d6e5fe3ea58fe212571aaac019 20-Jan-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Remove bandwidth checks

Bandwidth checks will be done in the driver as part of resource check
which makes the existing checks in hwc redundant.

Change-Id: I39eb7de63618e8ea5981f9e1a1159224831f314a
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
d5d41f238fd48170a0755bde427088c92ca0920c 14-Feb-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Optimize framebuffer layer update

While doing mixed mode composition, update only the region of the
framebuffer where layer contents are cached or updated. Avoids
MDP fetch for non-visible contents of FB.

Change-Id: I20997d79e02a6bac60d7333c28c6dde134263197
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
e7403150b1a7a50e5b2689dd40ae7825c4641fe2 07-Feb-2014 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> qdutils: Refactor idletimeout fallback mechanism.

1. Use kernel timer interrupt to signal about the timeout to
Invalidator thread and fallback to GPU composition.
2. This implementation avoids waking up the Invalidator thread for
every idletimeout value during continuous update.

Change-Id: I4370f10a0ca06b5cb1e7bdcb047e9c8daec51afb
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
bc35f9e7e36658230062bdb96f1ea51798c699b7 19-Feb-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Rename property to enable partial update

Rename property to enable partial update to keep within MAX
string length.

Change-Id: I16d09b49500f3cd996c66eb52aa80df3a5f62b27
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
6bf645f729dcca66e156330cd1e2c2c6cbe4a40c 12-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "Invoke a padding round in certain use-cases."
1652fde94926fa3de1bf5d5821f2bb4886072baa 11-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: mdpcomp: Remove pipe estimation blocks"
223589679edea45f88bae0dfab76ce5a9d55c5b0 10-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Reset FB Z order to -1 instead of 0"
770cfba765e9f6c01d950933cb2f45bf1cd99cd0 07-Feb-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: mdpcomp: Remove pipe estimation blocks

Pipe estimation was necessary when the unavailability from overlay
led to GPU fallback.
With the new design, hwc uses the next best strategy, so failure
to grab a pipe from overlay is ok.

Change-Id: Id20d2e6fd24aeb5af3ab84ec9dd8c52f6bbbef8b
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
03514577d0c705056352898f66ed2a8e9b131df8 07-Feb-2014 Raj Kamal <rkamal@codeaurora.org> Invoke a padding round in certain use-cases.

* In some use-cases, it is possible that there are
no AppBuffer layers on the external/virtual layer-list
during which all the pipes will be allocated to the
primary. When layers do comeup on external/virtual
layer-list, subsequent overlay sets fail.

* This change ensures that in such cases, we invoke a
padding round on all the displays to free up the
hw resources which can be used in subsequent cycles.

Change-Id: Ifac0b8f51a8719eb55b11010d05b8d11352db054
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
eb64200bcdc1ea0f76250eb306885c28f6e614c5 05-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: validate and prepare frame"
2b59168391f5d3fb025ccae8d936d5b09bddb162 05-Feb-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Reset FB Z order to -1 instead of 0

In Video-only mode FB Z-order of 0 was being used, incorrectly,
because the value was reset to 0 and wasn't changed subsequently.

Reset to -1 to prevent this. Any MDP comp strategy that needs to use
FB should set it's Z order appropriately.

If cache based mode has no MDP comp layers, fail so that other
strategies can be used, rather than succeeding with FB Z as 0, which
will at most allow GPU comp to be used.

Change-Id: Ifdae2cd5f8d8ff0e10447b1fed6ee1671260f311
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1029ad2b12d5f30e77b2c2f85da891f2d1842424 17-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: validate and prepare frame

Send the entire frame (array of overlays) to driver, so that it would
check pipes params and the whole frame wrt bandwidth and SMP.

Now, the overlay's commit API just prepares an overlay object but
makes no ioctl calls.

If the driver finds the frame, as a whole, to be not ok, the
validation fails and overlay/hwc return silently.

If a certain overlay object is mis-configured or pipes are
unavailable, the driver sets the number of objects it processed.
Overlay uses this to dump the incorrect config.

Change-Id: Ifb2b7fadc6bd6d9d94a35ba3908fbd832f41447f
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
404047f2c61687024048b04374ea736285ddded1 22-Jan-2014 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: resolve compiler warnings

- remove unused variables.
- fix incorrect castings.

Change-Id: I7661edb4539a3ffc7d4aedbb9f633bc5ba1dc149
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
2bbbc1c346127f3052b07c26e624479fff64c687 03-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Request RGB pipe only if layer needs scaling."
e4ce4d8657dc2e8fd70600b0dc1010aa798c7305 24-Jan-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Consider dropped layers in load based MDP comp

While batching up layers for load based MDP composition, filter
out dropped layers.

CRs-Fixed: 607196

Change-Id: I78031f1094330e1d960ceb56d5441c27a041e48c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
f74196ba20c5e3e9525cb10b6f51712e07ca107e 22-Jan-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Drop layers from composition on NULL ROI.

While optimizing layer list for composition, drop the layers
blindly on encountering NULL ROI.

CRs-Fixed: 605482

Change-Id: Ib81f43e8f34d140e6222135f3caa9491cdbbd41e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
12502319e51418a0bc336c2a551005c1a155aa4e 29-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "qdutils: idle_invalidator: Use fixed timeout rather than range"
ac167c7115cfb8d98446e2f7940d4e03482ca997 27-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: disable MDP composition on Secondary display"
a8dcd0c8a89a41ec27d516d4d6b58b58cf7e209f 27-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Common Display HAL to support VDS & V4L2 WFD solutions"
14e499a8c60bea763e525f1617315a844220d0b0 26-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "h/q/d: Consider dropped layers while calculating FB z-order"
3e051aac179e00ba4991ef31747af8fd3f9d8876 24-Jan-2014 Saurabh Shah <saurshah@codeaurora.org> qdutils: idle_invalidator: Use fixed timeout rather than range

Currently the idle timeout is in a range from idle_timeout / 2
to idle_timeout, since we didn't need precise values.

Change this to a fixed value using timestamps, because the timeout
is too low and warrants precision.

Change-Id: I9cec1db7f1d7fda2996ab80449c61269915f6be4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
319d01534158fe3edca7cf941a10b3423df0bd01 22-Jan-2014 Prabhanjan Kandula <pkandula@codeaurora.org> hwc: Request RGB pipe only if layer needs scaling.

For high FB resolutions do not specify required
pipe type unless a specific pipe is needed. This
makes RGB pipe available for FB in GPU fallback
scenarios because of SMP failures.

Change-Id: Ib52029aa276b5736d46a48489d280e7f65de2eab
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
140ee6411106722dae886dc8c5b104b72d64dee0 31-Dec-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Common Display HAL to support VDS & V4L2 WFD solutions

1. Define classes for VDS and V4L2 based WFD solutions.
2. Overload the functionalities for VDS and V4L2 WFD solutions.
3. Instantiate VDS object or V4L2 object during hwc init based on the
property persist.hwc.enable_vds set by the user.
4. VDS solution is not verified as it requires some dependent changes.

Change-Id: I74bf944d532da138c850d4ec0c20b4a881489efa
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
69f90bdd131ca3c1daef99872aaf435fc2ef6e95 10-Jan-2014 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: disable MDP composition on Secondary display

- Do not use MDP composition on secondary disp when the primary
is a high resolution panel.
- MDP would use decimation on secondary and on fall back it uses
GPU, which could lead to quality mismatch

Change-Id: I4c92df89563de6c8387eaaaa5f450ad7cc09b647
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
eeeb8334059a63fe95f8a7db276d358bb2ddb857 20-Jan-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Consider dropped layers while calculating FB z-order

While batching in partial mdp composition, calculate FB batch
z-order after dropping the z-order of dropped layers lying below.

Change-Id: I92752f67e797a834aae6a575af2f8fa42c9c0911
CRs-Fixed: 601614
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
df991ce9e82b63e27859a4c534df4c6c9af2c915 14-Jan-2014 Jeykumar Sankaran <jsanka@codeaurora.org> h/q/d: Check for MDP upscale limitations

- Expose API to get maximum upscale value supported by MDP
- Check for MDP limitation before programming pipes

Change-Id: Id9faac54a7b3e393b6c4b60574e5e985b495bf59
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ba3d6165c19bcec9a56eb2db1b13f8f930c5651b 12-Dec-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Disable MDPComp for external UI layers if scaling is present.

Fallback to GPU composition for the external UI layers if Actionsafe
or WFD/HDMI downscale mode is enabled that requires scaling.

Change-Id: Ie03da35e1c2e78434de00f92ad6c2e5073fc33b8
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
7cd2a020040a3e81fdd88c376169fd78b5417efd 11-Dec-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwc: Skip load based composition for video playback.

DMA setting cannot be estimated ahead of time,
so do not do load based compostion where videos
can fall to GPU.

Change-Id: I01ccc26044df6bced428bd164f5c50f87aff99fd
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c477a410de65e8b662c0e9d7642afb538d0430ea 13-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: mdpcomp: Use other compositions if programming MDP fails

Currently, if programming MDP fails from a certain composition
strategy we fall back to GPU. This change, redesigns so that
composition types can have a chain of fall back strategies if
programming MDP fails. This happens currently only if resource
checks fail.

Change-Id: Ia7fb71788e595e59a91e95b1fb4eac3faea9451e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ec790b7b6d49528435d5b421641975f122506c1b 18-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Refactor disable animation on external"
116df906200ccbdd0933d2cabc8ac8f0d65fa1ba 12-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Use mixed mode comp. strategies as fallback for each other

If there is a GEOMETRY change try the load based compositions first
and then cache based. Vice versa otherwise.

Change-Id: Ie7ce6017e867f47e975487a72fba81f5d94eb9e3
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
834852cce5c3e5ab2eabde1c6ca151228abbac6f 11-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Update rotator object handling in error cases

Earlier, on configuration errors, we simply drained the fences held
by current rotator objects and went to GPU comp. The rotator objects
were deleted in the subsequent rounds, if they remained unused.

If we don't use GPU comp on failure but use other strategies, then we
need to mark the rotator objects for a display for reuse, so that
other strategies can use them.

Also any failure resets on overlay or rotator need to happen from
functions that call configuration helpers rather than the helper
themselves. Leaving cleanup to black-box helpers is not desirable.

Change-Id: I59b5b1bb774b82ee85a037e934c9d2d023db30af
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c3da4cc59d8e21b5905bd0ee3adf556dfe62b0e1 28-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Refactor disable animation on external

Fall back to GPU for one cycle at the start of animation and display
the frame buffer for the subsequent cycle till animation ends.

Change-Id: I6c651cebaf4694f326d6e32ae485e014f391577c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
f29205fd13a7d86767280bf1665149587faf86b2 11-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Combine FB program and source split adjust redundancy.

Combine the redundant code for FB programming and source split
adjustment into appropriate functions.

Change-Id: Ib99a2297a672e5ef40acb9f246021e57e41cd759
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
85cc9b8dfc7a50f6e8083b67056f3a25702fbba1 05-Dec-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwc : Fix cache based partial MDP composition.

Reset the updating layer count when new batch is started.
Else this will effect framebuffer z-order.

Change-Id: If746a5ea4b482cd7b55ba95007a3b8d7f1dc9b6e
CRs-fixed: 584021
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
86c677669148a60b5d472fba407c2bfcdc0c05be 26-Nov-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwc : Add hw limitation checks for MDP compposition.

Add hw limitation checks for MDP composition once
we identify actual layers for MDP. This should be generic
way for all basic hw limitations of underlying MDP/MDSS.
Current limitations:
- a-family : MDP can not handle alpha scaling.
- 8226 & 8974 : Can not handle if multiple layers need
downscaling and blending

Change-Id: Ia944802d798f2d0e9cd4515d7e9854c7314cac78
CRs-fixed: 538803
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8beff124c3a101d55afde1aaa7c27bb8afc19df9 06-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: mdpcomp: Remove redundant function to program MDP

The programYUV used for video-only cases is the same as programMDP
function. Remove the redundant function

Change-Id: I1d891404a77b2a47f90c236d4d6dcbbd02143d93
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
70fbbd55a4ee2fa7d8bdd9fbe6ce51b0e3e60909 07-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Use GPU Composition for 8x26 virtual dpy scaling case"
84a958f6e82e8817c4a868b7e1d7c044ebbd8e74 25-Nov-2013 Yang Xu <yangxu@codeaurora.org> hwc: Use GPU Composition for 8x26 virtual dpy scaling case

For 8x26, if there is only one layer which needs scale for
secondary display, while no scale for primary display, DMA
pipe is occupied by primary. If layer changed and need to
fall back to GLES composition, virtual display lacks DMA
pipe and error is reported.

To avoid this case, use GPU composition for virtual display
scaling case on 8x26.

Change-Id: I42297a18006517532e30d1a01c67ff8ca187482a
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
39e492498664b6e9bbb23e7d40e95933c1131349 05-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "HWC: Use 2 VG pipes for YUV layer with width > 2048"
cbcaca1bb0b6f9c23ddac8c5a0a3cdcdb27c28cf 05-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Bandwidth check upgrade."
8aa8820f73d68a610e37fac47b69e8ff6bbffa85 02-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Check for downscale support only when needed"
8d64e523e2f6c8f04cf859536c2c073d6193d70e 02-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: Add Color layer support in MDP Composition."
d2123672fa85dec556fc9b3b3b4de8c185c411bd 25-Nov-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Bandwidth check upgrade.

Use the low and high bandwidth values exported from driver per target
Use the low bandwidth value when the system has at least 1 video
mode panel, else use the high bandwidth value.
Newer targets could have bandwidth exceeding what an uint32 could
hold, so change the bytes read to be in gigs.
Do not use the framebuffer handle to get size, since the handle may
be null.

Change-Id: If3124ddc33334eba80d34ab7d8fc64d1b46697ce
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
bec4a8e65d5af78b14adebcec3d9582dc229e6f2 27-Nov-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Check for downscale support only when needed

Check for downscale support only for layers which needs to
be downscaled. Fixes issue where we bail out for all layers having
width more than MAX_LAYER_WIDTH even when they don't need scaling.

Change-Id: I19ee4d69e986390ed3df122b8ca9c0e102f3f916
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
15c02b94dcc7d61d4af05ac32b3c4db3b3b8a1e6 25-Sep-2013 radhakrishna <radhakrishna@codeaurora.org> HWC: Use 2 VG pipes for YUV layer with width > 2048

To minimize usage of decimation when 4K x 2K video is played
on primary, split the yuv layer into 2 halves and configure
each layer to individual VG pipes. With this approach,
decimation can be avoided in some 4K x 2K video use cases,
thereby improving performance.

Change-Id: I7cddfab787c50f6ff132eaa7f5a3d9cfd636c282
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
95a0158274f4239439e0dde307994a53fb12a8b5 19-Nov-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add GPU-preferred and MDP-preferred modes to load based comp.

GPU's perf is proportional to the number of pixels it processes, so
the load based strategy that prefers GPU, attempts to load it less
in terms of pixels, and at the same time makes sure the MDP has
enough pipes and mixer stages.

MDP's perf is real time and proportional to the instantaneous b/w
which is a function of overlaps. So the load based strategy that
prefers MDP would look at sending only as many full-screen layers
that MDP could support.
This mode is used when the GPU-preferred mode fails.

Change-Id: I3221a94bb01c43112370c248cd4ab217f2bd8ed1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
0feed9dccc812e37f7e2e58f3fb8246511f831f9 22-Nov-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Replace bytes claimed with bandwidth claimed.

Bytes claimed doesn't reflect the panel refresh rate.
So use the bandwidth claimed instead which factors this in.

This is important when 2 displays are running at different
refresh rates.

Change-Id: I3ab9573e43b8c25c31e01888fb2b181469b9e91b
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
85797506ee4ab6c80cc8fcbc85a271093f80db96 21-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Move resource checks to a common function."
08cbd816733f17c957411ae915f2543afea70b67 18-Jul-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/overlay: Add Color layer support in MDP Composition.

1. Color layer has a destination rectangle, RGBA color and plane
alpha. There is no gralloc buffer. Layer flag "HWC_COLOR_FILL"
denotes a Color layer.
2. There is no color member in HWC layer, so RGBA color value
is passed via the "tranform" member from framework to HAL.

Change-Id: I8769fd3f5febcaf952a1456de0a4262679c9a0e4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8c8a7e98d3f96d01d416860234d6662ce4015f01 21-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Refresh framebuffer when an updating layer is marked for GPU"
02e299800013a8758daa9ed58a3fba1199bb32da 20-Nov-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Move resource checks to a common function.

Move resource checks, pipes, stages of mixer, bandwidth to a common
function and use it from all strategies.

Change-Id: I161fc957e2793d543b5943fbd23ae3607a4cfc87
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
6289b315a26aede5ac12b89e65d8024b1ed0dd05 04-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Trim out of screen layers once only

Instead of trimming out of screen layer dimensions for various
operations repetitively, trim and store.
Will also prevent accidentally missing out on trimming.

Change-Id: I8800586070ec433aa1fcbb3aad73ec29c9c9111e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
63876c1b99c5c1bf366ecc31872b2aa42703a891 20-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Optimize layer drops based on ROI"
011cefd92c5d2642298e8afd9b2967433cb13d38 20-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Change error messages to informative messages in HWC"
0938709ed5efbf73eafbaed31bf069f4e9dfd427 09-Nov-2013 Arpita Banerjee <cabane@codeaurora.org> hwc: Change error messages to informative messages in HWC

Few error messages in HWComposer change to as informative
messages.

Change-Id: Iecd2d6c129713363d338ca7aeefbcbc422df893d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
e21d2bb081af1c4c05c4a5df0b6306eca09e5f66 15-Nov-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Refresh framebuffer when an updating layer is marked for GPU

When MDP cannot handle an updating layer and we marked it for GPU,
make sure framebuffer is refreshed for that frame. In the current design,
only video layers fall into these catches. But we may need
this change for future composition strategies.

Change-Id: I1d6a92da13feef4b353fa5e196d42f91148412e5
CRs-Fixed: 575340
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
a0179fa554ea9d26d74bdb55bb95796c08d76b44 09-Nov-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Optimize layer drops based on ROI

- Iterate layer list to drop layers from composition that
are not going to be visible inside the updating ROI.
- No ROI when skip layers are present.
- Reset dropped layer info on full GPU fallback.

Change-Id: Ib544526a8c28ffdd16b5be12f73d57d10d207c39
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
11c3d6d70c9b3e1f9a9245573d682d009fe05744 09-Nov-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Add error check for secure layer handling

When we try MDP composition only for secure layers, bail out if
secure layers are not present. Otherwise partial MDP composition
succeeds with all layers marked for FRAMEBUFFER.

Change-Id: I3f968835951320bb6c5873ba77fedef8a359b7bf
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
f44bcdd642866a7763d09d568b0f91dd0949bc5b 29-Oct-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: use sourceCropF instead of sourceCrop from hwc_layer_t

- Always use sourceCropF instead of sourceCrop.
- Change it to sourceCropF at places where sourceCrop
used
Change-Id: Ia64050a41a174f3f038c9b88d527d70c2240f2d9
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8d07dd7a9493c19215acf1e992502d1f51329fe0 10-Oct-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Do not punt secure layers for non integral crops

GPU cannot handle secure layers so a black screen is seen when we
punt secure layers with non integral source crops.

Bug:11156948
Change-Id: Ie19c631aab55dc8e7c1ad5e1f42162e833f49222
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
80864f9daffae7750e05efe41f63e029f5699511 06-Sep-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Punt layers with non integral source crop

The MDP driver cannot handle such layers right now. Investigate
doing this with pixel phase in the future.

Change-Id: Iabbdd0285234160770ae5a799b07a5b912e5fde3
(cherry picked from commit e6aff6414ba478312d9d4af21ab63d586594009f)
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8f42508dc1e3bf24da360d5fbefd8c6574f82868 17-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Bump up version to 1.3

Increment hwc version to 1.3.
Create and use a converter from float source crop to integers.

Change-Id: I5e185195c975b3a9434c5d9dce9ae4757ff98739
(cherry picked from commit 7e5637c850bcdbe21784ca3bfa9668870306adff)
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1379950d46c0f9d312f6868a0bd14b4f55ca89d2 31-Oct-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwcomposer : Fix cache redraw logic of MDP composition."
87957481f22edffdc0b865189807380d75579a12 23-Oct-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwcomposer : Fix cache redraw logic of MDP composition.

Redraw the cache if current frame cache/drop data doesn't
match with cached frame data. Frame buffer z-order, fbcount
and mdp count are not reliable. With same fbz, fbcount and
mdpcount it is possible that layers in previous cached
frame are not part of current frame fb cache.

Change-Id: I858228dc1a3a8ab8673ab8d294e54fdbf43cc1ad
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
94f50bebdee0b3ab9deb6d51426c542407ced5fd 15-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add load based partial mdp comp

Add support for load based partial mdp comp.
This is used on geometry changes where a redraw is unavoidable.
We select a batch of layers, that has minimum pixels for FB comp,
the rest go to MDP.

Conflicts:
libhwcomposer/hwc_utils.cpp
libhwcomposer/hwc_utils.h

Change-Id: Ifc5eeb4785c75c37de97a2bb89ca81409d324691
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
36035afc0c366c26d7c330d004e7ded510c1f88c 25-Sep-2013 Prabhanjan Kandula <pkandula@codeaurora.org> libhwcomposer: Enhance mixed mode composition.

While marking layers for cache, neglect the z-order when
possible, to improve the scope of mixed mode usage.
It is safe to neglect the z-order if a static layer
doesn't have any overlapping region with updating layers
in between static layer & contiguous static layers batch.
- if above layer doesn't have any overlapping with updating
layer in middle, push it to the batch.
- If above case fails, but layers below(existing batch) does not
have any overlapping region with the updating layer, bring the
batch to top and modify fb-zorder accordingly.

Change-Id: I4882a750d0a9a2e11272fcbb146202160673d04f
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1b28b60e15c27fee703a16fbd1e42e3b41b031fd 31-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
bc037e0bbb3d1778fb4bde55582fd1d4e666f957 01-Aug-2013 Jeykumar Sankaran <jsanka@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ff6fb4c519f6eba85d4a4b0a7a56e0146d04ce6c 03-Oct-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: prevent bandwidth calculation in GPU fall-back case"
65cb14cb14da60eb81fc7a10edfb2edafc0b39f1 28-Sep-2013 Tatenda Chipeperekwa <tatendac@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
efab1d5273ce9a284e306f2607e501410cfbc8b9 29-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
3d1e5dd4ea42f32fcf7827adfd8a300836289d24 16-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Use ib instead of ab for bandwidth checks

The ab (average bandwidth) is just the average and there could be
underruns when ib (instantaneous bandwidth) is attempted to be used.
Add additional factor to use ib instead of ab. This means we need to
assume that all the layer contents could be requested together, rather
than one after another.

Also use the trimmed layer dimensions for calculations.

Change-Id: I771f964e1c80b5db564faa01cdfb75d75b54f97a
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
11bf9c368a2ff832b1a20d9c90ec796e3d29bf9f 13-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Handle multiple videos with priority to secure

In video handling this patch makes sure:
1) Sufficient VG pipes are available, not just any pipes
2) If VG pipes are insufficient in multi-video scenarios
preference is given to secure videos

Change-Id: I170592463a1c28348108a1b12d60908cf3063d7d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
0578321628d5c7ac5b26d71317a82a8757003349 16-Sep-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Verify handle is not NULL in bytes read calculation"
292610b5e44c81667db5802195d5417977e355a6 14-Sep-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add needsScalingWithSplit for high resolution display."
01dd672ad5214ebaf753b84a054bc26b7f9b5baf 12-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: mdpcomp: split: Count total pipes needed per display also

When checking for pipes needed for each mixer, the pipes completely
unused are counted twice.
Add a per display check on top of per mixer check to make sure this
is taken care of.

For example: Each mixer needs 4 pipes, and total completely unused
pipes are 6. Each mixer will get 6 as available pipes, which is ok
at a mixer level, but at a display level 8 pipes are needed and 6
available. Need to account for that

Change-Id: I9811255aab96c7fe47331f8aa125fef2a4a2f704
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ccda2df66ba8b9cdcc507eb0989e174377c8b5c5 11-Sep-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwcomposer: Deprecate setupBasePipe"
4b8c8974e8159e694558db3c8fe2f5c01bd1beef 10-Sep-2013 Terence Hampson <thampson@codeaurora.org> hwc: Verify handle is not NULL in bytes read calculation

When calculating bytes read, avoid dereferencing null pointer.

Change-Id: Ibebc6ad583ceaebf8268266f968beffdb421c958
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
44625ff6484744d1307c0bb0d00e8c0ad90325ff 05-Sep-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc: Add needsScalingWithSplit for high resolution display.

- needsScaling does not check for scaling required in left & right
mixers when the crop values are sanitized. So it leads to issue
if DMA pipes are picked-up as high resolution layer does not need
scaling but left or right mixer configuration needs scaling after
the split.
- needsScalingWithSplit takes care of this with checking for the
sanitized cropped values.

Change-Id: I1f5b1952a59a84f5ccbaef123251b3c8cd46e4dd
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
7975fc3e5c335f333c44f04b024c7a4c943b2590 06-Sep-2013 Jeykumar Sankaran <jsanka@codeaurora.org> libhwcomposer: Don't reset cached layer handle on MDP comp

Layer handle values will always be stored irrespective of the
composition type. Layer caching will choose a layer for FB
composition if its handle has not changed.

Change-Id: Ibc41a8cd6232c0c5c04efee01b38513a2431f4e1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1486daa2096ae0535670e6c07b6521ec749c537f 03-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Writeback for ad is needed only for split displays.

Writeback for assertive display feature is needed only for
split displays and only if ro.qcom.ad is set to 2 by OEM.
This patch removes the unnecessary code and adds the relevant
conditional checks for split displays and property value

Change-Id: Ic36f28441d1a6e93132316b33fe1cf98a6e1efe4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
f8c680dacf0a357ea1f56542fb329bbc9749b6b5 03-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add API to find if a display is split

A display could be split if its dimensions exceed 2048 or in case
of primary if we make it so via device tree property.

Add an API to find if a display is split. Use this API instead of
going through a set of conditions in various use cases.
Rename the HighRes, LowRes objects to a more appropriate Split and
NonSplit respectively

Change-Id: Id847c2bf36ea9250e1cdbc0259fdec64bd124537
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8eeb53efa1e615545f646a14ae2e8157e0a9bae6 30-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add support for bandwidth check

Add support for checking whether the current frame's required
bandwidth can be handled by MDP.

The max limit is configurable via a property and the value is
derived from simulation runs and profiling

Conflicts:
libhwcomposer/hwc_mdpcomp.cpp

Change-Id: I46b46c346973fcb6487a8a656268171470ce69b9
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
d0791c8cd9813ec2333acec55f92cbb589f3f7f1 29-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: mdpcomp: Make all pipes available if a frame fails

Make all pipes in overlay available, if programming a frame (list)
fails. The failure could be due to commit failure, in which case the
overlay itself will make pipes available.

The failure can also be owing to lack of pipes, since we don't allow
switching pipes across mixers any more. This is particularly a problem
for split-panels. This fix addresses this latter case.

Change-Id: Ieac7ae7d03e5b9a93c7245fa160c8933593c2e09
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
4f5dafeb1570b2dcc81d286b23366854bab37599 28-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "libhwcomposer: Add check for MDP comp dump"
86adeda0140053bfc618f5fc087d30c7221459da 20-Aug-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Add check for block mode for rotated video

Do not allow video if it requires pre-rotation and DMA pipe
is configured in LINE mode. Fall back to GPU in this usecase.
This is not applicable for wfd on 8x26 since Driver supports
both multiplexing of DMA pipe in LINE and BLOCK mode as same
mixer control block is used for rotation and writeback mode.

Change-Id: I5b99b214619134b1bd67f3c441b14f76051e3d3b
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
bae2ff236d510b0ffad6d5caf3b90bef794ce66f 15-Aug-2013 Jeykumar Sankaran <jsanka@codeaurora.org> libhwcomposer: Add check for MDP comp dump

Avoid mdpcomp dump for frames having layers more than
MAX_NUM_APP_LAYERS, since our HAL doesn't support it.

Change-Id: I96365b4cbdeef2c00524eeb53877ee568ba0c172
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
a11a948e71ee2e6941689acb440ce2ae66a4e1ee 24-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Fix locking."
1a050829890735bc5a936ad65bf9cad80295306b 22-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix locking.

Remove the unnecessary blank lock, mdp comp lock, secure lock.
Rename the ext lock to a more appropriate draw lock.

The mdp comp lock is at an incorrect place and causes unwanted
objects to show up in dumpsys, since configDone hasnt cleaned
them up yet.

dump(), blank(), draw() should all acquire a common lock.
draw() includes prepare() and set().

Change-Id: I595547dd5a393a8af6cd8c9297d50793b715e658
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
a8a36dd4c76206acaa0c2a2a9647965c294308c5 10-Jul-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Handle video with plane alpha properly

An earlier patch disabled plane alpha completely for video.
Instead, do this only when we are in video only mode.

Change-Id: I2edc8c5ff5c90ec205b63175e5f3a4e6ff7eae69
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
a215523b039a5b41897e0ddbda61728ffa237153 17-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Disable idle invalidation for command mode panels"
900626b4f8025985ad7a04dfe2ee576e76872a08 12-Aug-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwcomposer: Deprecate setupBasePipe

Needed only for A family targets where MDP boots up with
RGB pipe attached to the base.

Change-Id: I5118b8b41e4f864f8c73a115398b13bffa1f3383
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
6bdc0c9dd2e7dbd8b6fafc7a94f05889a3abf5f1 14-Aug-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Disable idle invalidation for command mode panels

Command mode panels have an internal framebuffer with which they
refresh, hence the idle invalidator isn't needed for them.

Change-Id: I6acf0cc1f8c520cbcf706f109a42e47304c534d3
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
361900d9a618d2c4d2276a10ca76919214f6759f 02-Aug-2013 Jeykumar Sankaran <jsanka@codeaurora.org> display: External display refactor

- cleans up external library
- add separate library for virtual display
- process virtual updates in its separate path
in hwc.
- Acquire blank mutex lock for one complete drawing
cycle

Change-Id: Ib984c578464a131ecdb27ee48960f58d68b7a5a7
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8d12670e9d3c1d4c1e871e70a056c5f8370f7ef6 14-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add assertive display support."
f1c9077e23f3fd814c27445ad73f6967a1ce5d9e 03-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add assertive display support.

Add assertive display support to hwc. This feature takes effect when
node /sys/class/graphics/fb*/ad is present. This signifies that that LM0
is being used with fb* for writeback.

When a video playback begins we write "1" to this node to indicate to
post processing that a writeback will happen. Likewise a "0" is written
to this node when playback stops.

The original contents are worked upon and the modified output is fed
via writeback to either rotator or mdp as appropriate.

The feature doesnt trigger when either:
1) Buffer size exceeds 2048
2) External display is connected
3) Multiple yuv streams are present

When this mode is active, MDP comp is applied only to yuv layer.

Change-Id: If5520f9dc849de3189c9f9ed4e9072c8f8f760e1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
9640e380d8f815ef7ca71c1fdf23eb6f7b30db1e 07-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: split display: Fix left split default value if not published

If the left split is not published by the driver then the default should
be even split. This was missing from the configuration in utils. This is
already taken care of in framebuffer configuration and mdp composition.

Change-Id: I3db44481fd791809146752ddff56420dcbe89fb4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1a36c7e14d1628592e4e1cff96d977b829f8cc31 30-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Prevent pipes from switching mixers

For split displays, earlier we allowed pipes to switch mixers in
subsequent rounds. This change prevents that and makes sure there
is one composition round where a pipe being transferred to another
mixer of the same display is UNSET

Change-Id: I3c679cc4256363eeb70c5cf8bcaf5047b8a064c2
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
699929775d0f2612670fe7f07ceda438c7f7d502 23-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Configure framebuffer before other layers.

If framebuffer needs to be configured, configure it before all the
other layers in mdp composition. This helps in cases where we are
out of SMPs and framebuffer configuration fails owing to that.
Framebuffer being the fallback path, should always get highest
priority when reserving SMP blocks

Change-Id: Ie7a6903d1b9fb98b308689c81522571449bf2e8e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
91aa0f13286cc11134d61fb98c24a02698df604a 24-Jul-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add setting to disable idleinvalidator"
9336c633b7b916aa0fdc7cf3272a1946658b23fa 19-Jul-2013 Zohaib Alam <zalam@codeaurora.org> hwc: Add setting to disable idleinvalidator

Added the ability to disable idleInvalidator when the
debug.mdpcomp.idletime property is set to "-1". The hwc test app
displays image on the screen with surface flinger turned off.
This causes timeout, so this change is to allow the testapp to
disable the timeout functionality by setting property.

Change-Id: I1adf28eea33ea73f3695644bec95056d16bd85f8
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
89235b6c563e68046aed07d86746d747f48eca67 12-Jul-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwcomposer: Fix a deadlock with debug enabled.

If debug property for MDP composition is enabled,
we call dump function from composition thread.
Make sure we are not holding the MDP composition
lock before calling dump function as this also tries
to acquire the same lock and causes a dead lock.

Change-Id: I05e5fd58be096f1ab683d796cc1beb4972c2168f
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ac6a693721e84a8a8eebc50df0c1dcfce1e8e864 10-Jul-2013 Prabhanjan Kandula <pkandula@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
47227da8e5f7ff2841139e9ea17fecbb6dc4ae95 09-Jul-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc : Fix crash during dumpsys"
52e9b66d4cbf560e803720c6111fded83bb2a1f4 02-Jul-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwc : Fix crash during dumpsys

Dumpsys runs in different thread not in composition thread.
Accessing mdp composition frame info in dumpsys with out
synchronizing could cause crash since frame info can get reset
in composition thread.

CRs-fixed: 503268

Change-Id: If3f7d8cc9fce8b14622e666fa52583ff0cfdedd2
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
2e474227e216ee37ab84a3c9a22ea1f650626231 11-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add support for uneven split primary displays

Add support for unevenly split primary displays.
The driver provides info about the split via msm_fb_split sysfs node

For external we assume even split. If driver doesn't specify any split
for primary, we default to even split.

Change-Id: I4d541f41de2d7a5d2b62653fa33cab079a6d5d30
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
649d05261b389e5adb78a5e445ee0dd0dcb7e2df 25-Jun-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwcomposer: 8x26-1080p: dont allow mdp comp with HFLIP."
2902acdce6ec5278db2d207dc467acb122423d6c 18-Jun-2013 Prabhanjan Kandula <pkandula@codeaurora.org> hwcomposer: 8x26-1080p: dont allow mdp comp with HFLIP.

If an incoming layer has HFLIP tranform it needs two lines of
SMP buffer(or latency buffer). For panels with width greater than
1k this is costly. Fallback to GPU if RGB layer transform has HFLIP.

Change-Id: I9de63bf088d6afa0924ece7ac75e68f0bab7a6b5
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
56d570f1d7eb34ab0db968298efb8e75b849c893 17-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: 8x26: Composition policy when WFD connected

When WFD is connected to 8x26
1) On Video transition, have 1 padding round if external connected.
Required to shift pipes across mixers.
2) Request DMA pipe always for FB on WFD.
Necessary for rotation + writeback
3) Disable non-worm-hole calcs on external (because of 2)
4) Disable action-safe calcs on external (because of 2)

Change-Id: I63b50b2477db443f9ea1d3fa610b59295c9359b7
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
6208b58ac370eacb8b69a3e5e1f570ec56194a8d 17-Jun-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Move max app layer check outside isFrameDoable routine."
8c5e9cfd2f4da4fa4637b02c610fd171d9d5e0d3 13-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Don't use yuv count for fb Z order.

In video-only cases, don't use yuv count for fb Z order, instead use
the mdp count which indicates how many video layers are actually
being sent to overlays.

Change-Id: I53ab4316fbb17f5d054066ef2dd85d89183d6a8c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
9a37bfd35b90e3195452f0e2c592d4ad59c732cb 10-Jun-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwcomposer: Add adb property to disable Mixed Mode"
375bf507d05f48a1dd0dea957d1f4260a766e6ea 10-Jun-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Fix MDP comp array index access"
e5a8bbcdfedda1658779baa80bc8f067505097ca 24-May-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwcomposer: Add adb property to disable Mixed Mode

This change adds adb property support to disable mixed mode in
MDP Comp. Will be helpful in debugging issues to narrow down the
root cause.

Change-Id: I49b737bb8755dc3a35db2e1ea8ccb2043135d2b0
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
b68089410e6856f272c70cc9dbe652e336c82006 07-Jun-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Move max app layer check outside isFrameDoable routine.

Move the condition for checking maximum number of app layers
ourside the isFrameDoable function to avoid heap corruption while
updating hnd array in cacheAll function.

Change-Id: Id4458fcadc7775a2d78b1849de6782857c6ac17f
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1bccd080a21bd76d606bef74b3ccac888f01f3d0 07-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix MDP comp array index access

Fix MDP comp array index access in case of High Res pipe allocation.
This is already correct in case of Low Res allocation routine.

Change-Id: I7eaa0711ef8998ea03edba18b74db80459daf4c7
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
d9381b134ed518570554296fbfab8fd1175ecdb8 06-Jun-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Fix to avoid heap corruption

- Check for MAX_NUM_APP_LAYERS before updating yuv indices array.
- Fall back to GPU composition when number of app layers exceeds
MAX_NUM_APP_LAYERS to avoid heap corruption.

Change-Id: Ieb91b705a0a5f50ce2f8829d1f1ee048d44b7d2e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1ca0f09fec9ca2d43c5f88348fb16306b6d02411 23-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: In scaling check, consider out of bounds layers.

In scaling check, consider out of bounds layers, apply trim
and then decide if scaling is necessary or not.

Change-Id: Iad7f662f42096b3f7a4a1c4cfe71048d275f4b5f
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
42def420ce95ff338d3547d0305445a0786d37d8 20-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Don't permit rotator use under certain conditions"
e188278e86ebb2f7f1ed3762855f15062b7f9d03 16-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Don't permit rotator use under certain conditions

These include constrained targets, with external connected which could
lead to a scarcity of pipes. Furthermore owing to a scarcity of writeback
interfaces, even if pipes are available, we may not be able to still
use rotator.

Change-Id: Ie2fb4c1726f32addcace89c268a126abe0cddbe0
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
33b155572be4b98d60a51d534247a4fb6f5ffad1 15-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Implement idle-fallback for videos

In case of videos, do a fallback using 2 pipes per mixer at most.
This redraw will happen only once to reduce pipes from at most 4
to at most 2 and never draw again until there is an update.

Change-Id: I78c0dc2af4e3bd7e9128994e507e777187b4e247
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
a0e87cbc523323604e8fb7cb5526f410a1ed26df 16-Apr-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Do not show animation on External display.

- When primary is animating, the animation should not be
shown on the external display.
- Mark all app layers as HWC_OVERLAY on external during
animation so that SF wont compose it on FB.

Change-Id: Ic557cabfd9f2518614777c0e993541e36e090850
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
20242a75d65c410071434d639266311376a5b7f6 07-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix unnecessary pipe allocation from mdp comp.

In High res case, there was no check for whether a layer is marked for mdp
leading to unnecessary pipes reserved for rgb layers on external.

Remove z order setting in allocLayerPipes, its too early, incorrect and
will be over-written anyway.

Remove the separate pipe allocation block for YUV. It is redundant and
unnecessary.

Change-Id: Ie90b4202a27ca4f52874514e3fa2b136ae5717f5
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
616b464f245b30b01f6198ca4631863a0812e633 06-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwcomposer: use DMA overlay pipe to do frame update on 8x10"
ab61a68da3203adeaa377a6520c8df3900f46971 03-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix Idle fall back when external connected.

Reset idle fall back at the end of prepare, so that irrespective of
whether primary or external is configured first, both will fall back.

Change-Id: I6206f7cf0cccf71d1b33153044546515029f4e08
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
6387d878d0412c6f677d4eff28485d26f79b6fac 02-May-2013 Xiaoming Zhou <zhoux@codeaurora.org> hwcomposer: use DMA overlay pipe to do frame update on 8x10

8x10 MDP core only have DMA pipe, add the support to enable it
in hwcomposer.

Change-Id: I2dac76046d53b9afd9d3deb4653b98bbee1c9840
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ce145663a82a3fc845b10d48b73252053fe712ff 02-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Alpha downscale on MDP4 is not a hard condition.

Alpha downscaling check should be applied to the full and partial
mdp comp checks rather than as a hard-feature check.

This means we could still have a video going through MDP comp and
the volume bar (lets say) failing the Alpha downscale check.

Change-Id: I6a47057e826668f7f19e20b6d0a548fffa349de2
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
ab1a610e5f7858d4ade5795bf075295d33664999 02-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Update redrawing

By default make use of redrawing. It will be toggled only when caching
decides there shouldn't be any. Per our priority ordering:

1) Full MDP - redraw irrelevant
2) Partial/Cached MDP - decide on redraw
3) Only Video - 1 & 2, which include video, are not possible. Redraw.
4) Fallback - Redraw.

Change-Id: I6b74a5edcf79488ede2ea9480721731f371af9c8
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
41269096daf2363b16dcd89627dd674529a26601 01-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Check for mdp max downscale.

Check for MDP's max downscale limit before using MDP for composition.
MDP 4 can downscale in each direction upto a factor of 8.

Bug: 8744080
Change-Id: Ib9f640a6b1db3ba6244eb665a060f624425b4841
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1b9b395878eee6052ce3c382c4a3067b5adb13c4 24-Apr-2013 Sravan Kumar D.V.N <sravank1@codeaurora.org> hwc: Fallback to GPU if source image width or height is less than 2

There is h/w limitation when MDP_OP_SCALE_RGB_ENHANCED bit and
MDP4_OP_SCALEX_EN or MDP_OP_SCALEY_EN bit is set.
The minimum block size is 2x2. MDP will hang if the source RGB image
height or width is equal to 1. Hence fallback to GPU in such cases.

Change-Id: I7333b097fd26bfb888865de9c39d1664bc87acca
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
af5f82d1c39754b14e9fc91eedc0d0429020c049 25-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix bugs with mixed mode MDP comp

Fix reseting on handles, they never were in most cases,
owing to wrong size.

Fix redrawing, which needs to be done also when the fb's zorder changes.

Fix mdpcount update which should happen before we assess the pipes
available versus the pipes needed.

Handle video only cases, where other UI layers could be present, but we
cannot use MDP comp for them.

Restructure MDP comp decision model and some redesign.

Change-Id: I86a2efb77edccbbb9e9d7701d06c5b2578a9d2aa
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
586aedccc2eaa76923bc22a3325fc2e4eff415e2 23-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Introduce padding round between DMA modes.

Introduce a padding round between the DMA line and block modes.
Do this based on whether DMA is actually being used, when block mode
is first requested.

This relieves the driver of doing an UNSET ahead of vsync which could
cause blinks in all such transition scenarios.

This approach should lead to smooth transitions for multiple targets
with the exception of secure videos, where there could be a blink in
any of the different approaches we use.

Change-Id: Ibc0b8d284b5c6ed9291a7cfa7e7f221300a921e2
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8fe8c938d27e528fcf7fb4a408711b4b6e405f13 04-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Add support for decimation.

Add support for decimation on top of what MDP can downscale,
because decimation can have quality issues.
B-family MDP downscale of 1/4, plus decimation of 1/16 can let
us have a total downscale of 1/64.

Also decimate by 2 (min) if width is greater than what layer mixer
supports and is not handled by the client.

Change-Id: I3b7c4bf321c7561bd98206ad118f4ac1ee2879ae
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
98453badd1cedf05190f1dc4a147fb52f22de0b3 17-Apr-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Fix code handling downscale limitation"
11154eed0599cd2e03bd0706341e14e05265b907 13-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Fix dma mode design and issues.

Add support for tracking the mode in which DMA is being used in overlay.
Remove unnecessary tracking variables, and their set,reset inconsistency.

With such varibles in hwc, it still leads to overlay giving out DMA pipes.
Make overlay as the single tracking place.

Change-Id: Ib949f3d0ef5918ef323c81cb1768b68a68c83da4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
b393a0202cdfde0099530add9671277aeb018e89 13-Apr-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Fix code handling downscale limitation

Layer transform should be considered while performing
downscale limitation check. Failing which videos will
fall back to GPU.

CRs-fixed: 474244
Change-Id: I04e005afa77a209d5de58446d4c6f15842d9a43b
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
f9572cdbe3541d85522adea584f925671b375300 26-Feb-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Implement mixed mode composition.

With this change we are moving MDP composition from all-or-nothing
implementation to mixed mode implementation where layers can
partially be composited through MDP and while rest of the layers are
composed / cached in framebuffer.

- Mixed mode design is based on layer caching
- Mixed mode path is configured only when non-bypassing
layers are cached.
- Never allow mixed mode when FB needs to be udpated.
- If we cannot bypass all MDP comp marked layers, bail
out completely.

Change-Id: Ie08f39db07e032b537f042d0d2bfe772ebfed049
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
3393d793e88663ee9147b04e11289020be3721c9 26-Mar-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Initialize rotator field to NULL.

In case of High resolution MDP comp, initialize rot field to NULL,
which was missing.
This is already done in the Low resolution case.

Change-Id: I5a9be8393cceff58f0ba3b6d85a887949f25af62
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
f8f3943c612a0e324b9fb01c858bf668d9e5b859 07-Mar-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Add DMA pipe support in MDP composition.

This change adds support to MDP composition to use DMA pipes when
layer scaling is not needed. Also makes sure not to invoke
MDP rotator when DMA pipes are configured since MDP rotator will
expect both the DMA pipes to available for performing rotation.
In such cases, we let the first frame of rotated video frame to
fall back to FB.

Change-Id: I3c3697dd2713ce9b86ba1e23192ec5841abd25ec
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
327b2ba85538669304a50d0fb6cc2f6aab7aaf3b 26-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> 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
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c8d563c4df56d25bf6ac6f38fb6703150458737a 11-Jan-2013 Jeykumar Sankaran <jsanka@codeaurora.org> libhwcomposer: MDP composition for Higher Resolution panels

This patch:
-Implements MDP composition for higher resolution
panels of width more than 2k.
-Adds DMA pipe support for high res. MDP composition

Change-Id: Ib7b1f822e3600eca81521294fedfe05e948b65c3
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
82aa53fe4a6b2e5248370efc5e1b3cbe9554f083 15-Feb-2013 Linux Build Service Account <lnxbuild@localhost> Merge "libhwcomposer: Only 4 pipes can be used per display for MDP Comp."
8f108e8db2042b4cb842235a9deb58dbd66814bf 13-Feb-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> libhwcomposer: Only 4 pipes can be used per display for MDP Comp.

Although 6 pipes are available in total but only up to 4 pipes are
available per display (single mixer) for MDP Composition.

CRs-Fixed: 450985

Change-Id: I99df91ab955a1a7110dfbea2aaf790ba26058a78
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
736f2b25c5dc2be95de68574efb1d094e5fdb4a0 13-Feb-2013 Linux Build Service Account <lnxbuild@localhost> Merge "display: Reconcile display HALs"
0ee9643396d2a257034a1c9b6d4eb6f6f7255e2d 08-Feb-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Don't use MDP for buffers of width less than 5

This is a software workaround for MDP hardware limitation where
DSI mode panels wont give more than 30 FPS if buffers in RGB
pipes are of width less than 5

MDP can't handle layers of width less than 3. Fail MDP
Composition for those frames.

Change-Id: If45efab19817ea9e724fd2857fcc1c5d98ce0eab
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
59644b2127280052ca410cb053f0a41c3181a97a 09-Feb-2013 Naseer Ahmed <naseer@codeaurora.org> display: Reconcile display HALs

Make the display HALs compile with/without the Qualcomm BSP
specific features so they can work with pure AOSP.
Change-Id: I1ad7282c4fe1fe7e3309afb530a07735f165ffbe
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1c88e655e4318825583caea37c5721abb8b981b4 08-Feb-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Pass transform value while cropping dst rect"
ec1a85ab629562d116b44f939585e9921b7d1e17 30-Jan-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Pass transform value while cropping dst rect

While croping destination rect values for out of bound layers
consider its transform value.

Change-Id: I1f6bf25ac8ca8a27a3402c2d946edfaf57ab23d0
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
5a107b4b7124301baf3b9e58089c7621fb9dfc95 22-Jan-2013 Jeykumar Sankaran <jsanka@codeaurora.org> libhwcomposer: Allow 2 YUV layer frames to use MDP composition

This change introduces the following changes:
- Frames having 2 yuv layer can be bypassed
- if not handled by MDP comp, video path will not
handle any such frames and will be FB rendered

Change-Id: Id211dbc185608c482badbca00a2708fa6138a8e5
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
8b2d50f3c665329517352269a687bdf562b2cc6d 15-Jan-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> liboverlay: Rotator-assisted MDP downscaling of videos.

Engage the rotator to assist MDP in performing video downscale for
primary and external. This saves bandwidth and avoids causing the
driver to make too many panel mode switches between BLT (writeback)
and non-BLT (direct) modes.

Change-Id: Icfabc2c0f978a23cf96c78a9976cf69cea697b5f
CRs-Fixed: 434852
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
16fdbfa1b3314c14b63f91ead7044bcd4ad28a3e 10-Jan-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Add NULL check for metadata

Add NULL pointer check for metatdata buffer before accessing its
member variable

Change-Id: I91de520b76d3c9714f357cff2de696e701811d06
CRs-Fixed: 434388
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c500638565ae6b65a7007c5d1ad73f1ec5c7e53c 03-Jan-2013 Jeykumar Sankaran <jsanka@codeaurora.org> display: Return MDP pipe availability per display type

Pipes allocated for one display type cannot be used by other
display types without calling UNSET on them. So clients should
check for pipe availablity only for a specific display type.

Change-Id: Id2244e4976b4cc1f040ada7e56686742d5a65141

CRs-Fixed: 433870
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
463a7b337c76050ccab5aa65a662a23e09a44ece 04-Jan-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Delay HDMI/WFD connection request by one frame"
413701aeb9879f1b9ae4401def52199c6950191e 28-Dec-2012 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Delay HDMI/WFD connection request by one frame

This change introduces hdmi pending state, where we allow
frames to fall back to FB, closing all MDP pipes.

Pipes could be used by primary (mixer 0) in which case moving
them to external (mixer 1) involves unsetting them and setting
them in the same round which is not recommended by the driver.
It will fall back to GPU till HDMI is configured on a connect
event.

CRs-Fixed: 430057

Change-Id: I4b6677883c499f6d15656c3578190be1115ee6b4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c18b3a0ef41fe474fe37e2e1833ef1bb11c85b11 20-Dec-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: mdpcomp: Restructure for 4kx2k displays

Restructure MDPComp class for 4kx2k displays.
Cleanup MDPComp class to remove unused stuff and formatting.
Add a MDPCompLowRes class for current functionality.
Add a hollow MDPCompHighRes class for future.

Change-Id: I343540e712d31ca907257a73b49567578f49d5f7
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
591f83eb35f33cf108720d9bb30cb56933e1e724 07-Nov-2012 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Add display metadata in buffer handle

Allocate extra space for metadata in buffer handles
Provide api to map this space in client process and set the metadata

Change-Id: I8bca8448670d4aa88d439320faf402dae30458f8
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
93138887ec8fb0f232340c4fb852e3dbcb3542e4 26-Nov-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Implement dump function

Does a basic implementation of the dump function
called by SurfaceFlinger in dumpsys.
Further logs in different areas can be added later on
using the dumpsys_log utility.

Change-Id: I2194b4ed7f10947272b7b824ef802ce2ee3c8a48
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
33650f2bc6096f20fb3974f5d1f98cb60ed6bdf4 03-Dec-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Avoid MDP composition with alpha scaling

MDP4 supports scaling with alpha, only in RGB pipes.
In some cases this scaling happened with video pipes.
We now fall back to GLES composition for layers that have
alpha and need scaling.

Change-Id: I084355bad1cdb17c7308077b56006c59e75d2042
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Bug: 7648647
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
fb1a3f95726d362c7882557fcbd1a7656e4fc293 01-Dec-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Use number of app layers from the hwc context.

Current frame count is not valid in cases where MDP
composition is not doable. This could lead to clearing
the flags for the wrong number of layers.

Bug: 7643563
Change-Id: I1f506a4a0a8f706d02e954bd6c12e354c0fb5fe9
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
0114e85754fb37f4f0eb042fb682b41fd74aa4b5 02-Dec-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Disable mixed mode composition for secure videos

Also make sure layer cache is used correctly when
we're not using MDP composition

Bug: 7643563
Change-Id: I4dcd70c2da128b2dcbe0b72dc14031983649719d
Signed-off-by: Iliyan Malchev <malchev@google.com>
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
16791f95b2570b9d48fa360875676e9c8559c0a1 29-Nov-2012 Naseer Ahmed <naseer@codeaurora.org> libhwcomposer: Add support for 4 layer MDP Comp

This change extends MDP composition to support
upto 4 layers by making border fill as base pipe and
using all MDP h/w pipes in overlay mode.

Conflicts:

libhwcomposer/hwc.cpp
libhwcomposer/hwc_utils.cpp
libhwcomposer/hwc_utils.h

Bug: 7626586
Change-Id: I01a0e53ddfbcf3ed46734f6f3bb0ef7d912ceac6
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
d7dd5e35374e461d250dd8cc430a47624d6485c7 04-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> display: Add support for flip operation in MDP comp

This change adds support for flip operation during MDP composition. This
enables frames to get MDP composited during 270 degree orientation too (with
pre rotation doing 90 degree rotation) or even with layers with just h flip or
v flip.

Bug: 7435860
Change-Id: I7fd18226d8337b2cd9341d709c2bd030eff881f7
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
9a678455a788dc76a43ad93459ae6a792f0fd114 15-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: utils: Include orientation while screen-fitting.

MDP doesn't like out-of-screen-bounds parameters. So based on the position of
the layer, we adjust the portion of layer the MDP should pick.

However, this did not factor in orientation, so far. This patch does that and
allows panning to work in other orientations, without having to use GPU.

Bug: 7313955
Change-Id: Ice17ad144abcd60279c2ef9ad87fc617a1bd3621
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
b5e3a690995208ad018a083456d6a05628300e92 21-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Add premultiplied alpha support.

Add premultiplied alpha belnding support while using MDP for composition.
Layers could have PMA blending which was missing from hwc1.1
This change just handles the PMA case.

Bug: 7301436
Change-Id: I7d83169831b40943b2b595723fefc3a95a177137
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
b2fa7edbf5150e6bdc25b1d37dfd5e14ad571ae9 08-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> display/libhwcomposer: fix potential memory leak

This changes fixes a memory leak, by freeing up the pipe alloc structure
everytime before parsing the current frame.

related-to-bug: 7301196
Change-Id: I23edefca71ec0209291be24ee9d629b4a80f0a25
Acked-by: Jeykumar Sankaran<jsanka@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
76443245d153635b512539fbc68fdf7a904fdf6f 28-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: enable dual display on hwc 1.1

Enable dual display on HWC 1.1; video uses overlay.

Bug: 7124159
Change-Id: I8333e46cfc74072f6259fba2b82368f0dd52b6df
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
2e449280f98f003bb5831c274fc07ab722ac1a94 18-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: hwc 1.1 implementation

Bug: 7124159

--External disabled
--MDP comp coded but disabled.
--Videos via overlay, so that secure videos can work.

Change-Id: Ie48b264143d5e4237ab9724e28930e3f68ba49ee
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
bbee5b1c3475b630caa5061fbf535f87f21743f7 08-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> display: Create QService binder interface.

Add QService binder interface to enable communication
to display by the mediaserver for Securing/Unsecuring start and end
notifications.

Create separate lib for external.
Clear reserved field before applying format.

Change-Id: I463c9c6deac7587bd0c4e0b84513b5d0b5dd7e98
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
a79e534d42353d8e75b668f5e77b6f6357a08e07 01-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> display: Enable MDP pixel repeat on MDP Composition.

This change sets MDP_BACKEND_COMPOSITION flag during
MDP composition to enable pixel repeat in MDP H/W

Acked-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Change-Id: Ibc04878831c84e1e1fd0ace7c185bddce9b7ab7f
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
359c544e1ca5ad76be326d9ee809e7bee51f94b4 22-Aug-2012 Jesse Hall <jessehall@google.com> Update for cleanups in hwc interface

Also store the hwc_procs_t* into a dedicated field instead of one of
the hwc_composer_device_1_t::reserved_procs slots, which are supposed
to be NULL so the structure can be extended without breaking backwards
binary compatibility.

Change-Id: I11e6bc713958d854aba418242caa749cbcb21f1d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
6d41cb36a5f965bb6e5d6e0a6391f97ded56d39d 19-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwcomposer : Disable bypass, when connected to external display

Change-Id: I3690e2145967e95a4a8c2fdb5ced34fef6eba639
Acked-by: Ravi Kumar Neti <c_rneti@qualcomm.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1409b3ce70e0f46806c431eff4db4d9881598e05 17-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> libhwcomposer: Reset composition types on idle timeout.

SurfaceFlinger re-creates HWC worklist only for new frame and on layer geometry
change. Invalidate triggered by idle timeout refreshes the existing worklist
retaining its previous composition type. So its MDP comp's responsibility to
clear layer composition types to HWC_FRAMEBUFFER on timeout.

Change-Id: I2407c44f6aa3b11365586364e5865ae629d5326a
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
660267c43bb3370ab49f4e95562c027171d8fb83 02-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Update to new API

* Updates HWC to use the Jellybean MR1 API
* Remove qcom_ui which was using parts of the old API

Change-Id: I663363547b193d2318aae88f2256a9baed1e3d4b
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
1c51df74d381b330b9675429c93a09cbeb512629 31-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> display: Compile for mako, disable copybit route

Change-Id: I147b50dbedd9d52c715982f911be5c9ac0e267f1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp
c85d6b7428ded41c74a9455f580f3ee8b451bbde 01-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> display: Add support for MDP Composition

This change
1) implements MDP Composition upto 3 layers
2) adds invalidator support to fall back to FB
composition during idle screen condition.

Change-Id: I55f27321fd0df096b353d66aaad1cc720cd4b84b
Acked-by: Jeykumar Sankaran <jsanka@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_mdpcomp.cpp