History log of /hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6d1d1d5fe4f4ae7f6ba558f17904aa13b3f0da16 20-Aug-2014 Naseer Ahmed <naseer@codeaurora.org> hwc: reset overlay and writeback in unblank if writeback is active

Writeback might be re-initialized after primary is blanked, kernel might
enter suspend afterwards, reset overlay and writeback at primary unblanking
so that kernel and user space are in sync.

Change-Id: I0bbfbbb2c038bb721f7c5a6b901438fdc767dc97
Bug: 16576263
Acked-by: Ken Zhang <kenz@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
304c6eaab1fe546d37591ba4c84a9cb58368c29b 26-Jul-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Bump up version to 1.4

Add support for setPowerMode HWC_POWER_MODE_DOZE and
HWC_POWER_MODE_DOZE_SUSPEND are treated equally.

getActiveConfig and setActiveConfig only support the default 0th
config for now.

Change-Id: I0303ed077409a66d9666c840cad8d917d7aad600
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
8df62de616b3025ad53714460320aa100e97165c 29-Apr-2014 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Use layerIndex while populating hw layers

Use layerIndex instead of dpy while populating layers from the layer
list of each display.

Change-Id: I6bb4401482afc859447b58fcb6c5daa11a23fcd8
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
e54f8a454099b5773541ecc70bbe3b7579c5d66b 20-May-2014 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Fix compiler warning

Fix compiler warning messages due to narrowed conversions.

Change-Id: Ifa770683fa9af7d5280c9117520276e04100302c
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
b46b3f2b885a796f1ddde486e35173d2618792e4 30-Apr-2014 Jeykumar Sankaran <jsanka@codeaurora.org> Revert "hwc: Do not re-program H/W, if the frame geometry has not changed"

This reverts commit 5e268fcf56e7f5bd0fc524d50c0a97c9e34010a1.

Reason: Breaking cache based composition strategy and partial
update feature.

Change-Id: I0c881c8e2bc6be2a0b3dc0d5e7d22a388179f8d8
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
4ff22529c8b7c5a65ff877ea7bf731cd03305a5a 16-Apr-2014 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc: Do not re-program H/W, if the frame geometry has not changed

There is no need to re-program the H/W, if the frame geometry of all
active displays, has not changed. It will help to improve performance
by avoiding re-configuration of HAL and driver, if it is not needed.

Change-Id: Ie01dce33be89afc7308a8103128d27b4b9fb5c4b
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
a7075caa2020c42d35d48ffa44302a4d92e5ab5a 23-Apr-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Clear overlay and layer-rot map from caller

Clear overlay and layer-rot map from the top level caller of
composition, rather than from the place of actual intermediate
failure. This makes sure, even in cases of GPU comp failure,
overlay and layer-rot maps are cleared and eventually pipes unset.

Change-Id: Ibf1152a0e8ca66d87bcc6b87009c4b09e451099d
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.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.cpp
2a345b980298c7623e553634ff56cf5f619765d9 10-Apr-2014 Raj Kamal <rkamal@codeaurora.org> hwc: Set DMA state at the start of composition

* Set DMA state at the start of the composition cycle
based on the following.

Set it to LINE_MODE if the number of active rotator
sessions are 0.

Set it to BLOCK_MODE if
** A yuv-layer for any display-device requires rotation
** (or) mExtOrientation is set
** (or) mBufferMirrorMode is set

* Separate out the reset helper function into more
modular ones

Change-Id: I6a22ac4379565cd1fd2d875a7a417f4ed3ee0f1e
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
9c2ae1c5238bfa2bfb2fb004fd82534c0460d7f9 15-May-2014 Naseer Ahmed <naseer@codeaurora.org> Revert "Revert "hwc: Set GPU performance hint.""

This reverts commit 74252f471f908060c238d63195acd7d39a615fd3.
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
74252f471f908060c238d63195acd7d39a615fd3 28-Apr-2014 Iliyan Malchev <malchev@google.com> Revert "hwc: Set GPU performance hint."

This reverts commit 2230bdba7e80ef0378f67687771faa1bbfa630bd.
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
2230bdba7e80ef0378f67687771faa1bbfa630bd 15-Mar-2014 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Set GPU performance hint.

1. Set the GPU hint flag to high for MIXED/GPU composition only for
first frame after MDP to GPU/MIXED mode transition.
2. Set the GPU hint to default if the current composition type is GPU
due to idle fallback or MDP composition.

Change-Id: I208a778017435a5a4620142da9d9fb3c50e09155
(cherry picked from commit fb822910e1ecb65a13e06751c92ef1f1ae332b75)
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
01cbebaaabd86eb7674a6d4b6939b0899f7bce3f 05-Mar-2014 Naseer Ahmed <naseer@codeaurora.org> display: Remove VPU related code

Targets in which VPU interacts with display through HWC are no
longer supported.

Change-Id: I65a5348a375ad0c193a8659d0cdfb37c2db6f38e
(cherry picked from commit 330a2820c28355e805cbecd097c839914a6dc1b2)
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
6fb800fb7108ab91ab9e796e049e6d123a2b2dee 03-Mar-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc : Skip panel reset sequence if panel is already off"
22f9855af73ad424c96023dab90f1d33342df7e2 17-Feb-2014 Neti Ravi Kumar <ravineti@codeaurora.org> hwc : Skip panel reset sequence if panel is already off

Do not proceed with panel recovery sequence if panel is already off.
Proceeding with reset sequence, if panel is already off, results in
race conditions.

One e.g., there is race condition between early suspend triggered
by pressing power key and panel recovery triggeredby ESD uevent.
If pressing power key happens exactly at kernel DSI driver is
reporting ESD uevent, it's likely that panel will be unexpectedly
on by ESD uevent after having blanked the screen by early suspend.

This change avoids unintentional panel recovery in the case above.

Change-Id: I19022691ec3c178f62f392913435ddc032ee1ab2
CRs-Fixed: 613155
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
d2d5dac2c7b1a99f6f82ac3b246e4dd9f27f5423 22-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "Revert "hwc: Add support to query max. supported WriteBack width""
41ebb4f375e69bf590f1e2bb0bdb372929fa44ae 20-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "display: Remove klockwork warnings and errors."
a78cdbc396ebb7e12c21d871fcfe2f6271f1b343 20-Feb-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> Revert "hwc: Add support to query max. supported WriteBack width"

This reverts commit 744cc693f9bfd28b9313fa5261cf24c1df0d75b9.

Change-Id: I7a37059323d0a071765dce8d865cdfa0198a64de
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
c9cbe63708025b7aed15e251b2fb3a914fd842a0 01-Feb-2014 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Remove klockwork warnings and errors.

Remove all klockwork warnings and errors for libgralloc,
libhwcomposer, liboverlay, libqdutils, libqservice, libvirtual,
libexternal libraries to avoid buffer overflow and memory leaks.

Change-Id: I078143bcbcf5e4b342156bd8305a644566f7cc4b
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
6bf645f729dcca66e156330cd1e2c2c6cbe4a40c 12-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "Invoke a padding round in certain use-cases."
fb068ef54e71e59ac74f70d02da58c787a99fea9 11-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add support to query max. supported WriteBack width"
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.cpp
dae66008d990f2f00e59f0a317cd5bc674c37673 06-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: vds: Add support for black frame generation on PWR suspend"
eb64200bcdc1ea0f76250eb306885c28f6e614c5 05-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: validate and prepare frame"
9ecc0656796f1834bbedd8d552c87da44a317277 22-Jan-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> hwc: Add support to query max. supported WriteBack width

Adds a query to provide maximum supported WriteBack width.

Change-Id: I2f3f2ca1f7783394bd05e860e846dab504dbe071
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
5f3876753d4cad8082915ad81c0b463b713ea1a6 15-Jan-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> hwc: vds: Add support for black frame generation on PWR suspend

If VDS is connected, do not clear WB object as it will end up
detaching IOMMU. We need to keep the WB session active in order
to send a black frame to WFD sink on power suspend.

For AD use case, we will keep the WB object active.

Change-Id: Ic6db255676ca0baafd468887fc3f88eafc581cea
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
b0f5e47fdc9c351d603ba7cc71b4fc61074d797a 28-Sep-2013 Zohaib Alam <zalam@codeaurora.org> hwc: vpuclient: vpuClient implementation

Vpuclient is the client side for VFM in hwc. It follows the
similar pattern of prepare and draw. It has 2 step prepare
including: setVpuSession and prepare. The setVpuSession function
passes all the layers from the SF list to VFM, which marks
the layers that it can support. After this, the layer
allocation/configuration is done, and finally in prepare the
allocated pipes are passed down to VFM. The draw function
passes the handle to the VFM to draw the video layer.

Change-Id: I5d8795de35ed98716f7fa4cd48506b488cb3cb5d
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
d706f8d6183a49fd5f48b642cbbd0c8a868fc830 31-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Dynamic Resolution support on Primary"
f2a7cdb337bc7b0767c0fcca735b1c1d95b6c715 29-Jan-2014 Dileep Kumar Reddi <dkumarre@codeaurora.org> hwc: Dynamic Resolution support on Primary

* Useful to estimate GPU/MDP performance for different resolutions.
* MDP:
Every layer is downscaled/upscaled to primary panel resolution.
* GPU:
All layers will be composed in required resolution to FB.
FB is downscaled/upscaled to primary panel resolution.
* Steps to follow:
step 1: adb root
step 2: adb shell setprop debug.hwc.fbsize XRESxYRES
step 3: adb shell stop
step 4: adb shell start

Change-Id: I82a032df87c91549c49a9cdbd981ff02f105ff2e
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
4c087a193c4d6e1b5e20aa8e561bf5eba4592856 27-Jan-2014 Raj Kamal <rkamal@codeaurora.org> Set priority among various display devices

* When a non-WFD virtual display device (SSD/
screenrecord) is active along with
non-hybrid WFD solution(WFD faked on
external), give preference to non-hybrid WFD
device over non-WFD virtual display device.

* This is needed only in cases when WFD is
enabled via v4l2 rather than using VDS api's.

Change-Id: I63e53baa214bdcdac19430ca30b939cdd7416cbb
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
eda2877ed666e3fd91d61e3029d4c0f858a8be5c 20-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Remove need for intermediate for mdp3 composition"
ec790b7b6d49528435d5b421641975f122506c1b 18-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Refactor disable animation on external"
ef49cc7dd1d50a020598a9e821c5aa234503b559 09-Oct-2013 Terence Hampson <thampson@codeaurora.org> hwc: Remove need for intermediate for mdp3 composition

8x10 has a product line that is suppose to use 256MB. The
intermediate buffers allocated are not needed when we can
compose onto fb frame.

Change-Id: I13fd2deb328a3ef4b6738cfe7030fe67ea7bd6c6
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
b2f91c7c700da36fa5bcc5a4fe61b8911bf3fded 10-Dec-2013 Raj Kamal <rkamal@codeaurora.org> Donot compose layers if external is in pause state

* Donot compose external/virtual layer-list when
when external/virtual is in pause state.
* Marking the layers for GPU composition when external/virtual
is in pause state would update FB_TARGET layer which inturn would
affect partial mdpcomp after resume.

Change-Id: Id2806bd7156085c00158a31dff3c3dc4c2b61146
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
b28b611dec8392c7c8f17bc5e71b0a656fa8daa8 06-Dec-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Remove support for forced pipe configs

Forced pipe configs were used during geometry changes to track bandwidth
in driver, which is no longer the case

Change-Id: I49fb1ca1b7173da2e17ccfc8ce9b447152b9b7b6
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
c4aeb6a47160792212f22edecdf1ed45e5f575f3 30-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Do not use fb handle in hwc_prepare

Do not use fb handle in prepare. Use displayFrame for dimensions,
align them and hardcode format

Change-Id: I5c494a74a807d3a52a1c88257494b58c583700f5
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
905042d4ea8c4c736ea248b694d93ef2f59866d5 22-Oct-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/copybit: Add Color layer support in MDP Copybit composition.

1. Color layer has a destination rectangle, RGBA color and plane
alpha. There is no gralloc buffer. Layer flag HWC_COLOR_FILL
denotes color layer. MDP BLIT happens via MDP_SOLID_FILL mode.
2. There is no color member in HWC layer, so RGBA color value is
passed via "tranform" member from framework to HAL.
3. Update HWC query to enable framework to query for Color layer
support in HAL, at run-time.

Change-Id: I2c698007c1689779fe86d549093bb5285432dc5f
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
1c07ffd996a1d740133c49c4247198470fee1d21 05-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Listen fb0 event for panel status"
f62bb2ae847f3729a9453e214bd149b80886d63c 05-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "overlay: writeback: Do not create writeback instance on dumpsys"
3aaa003801643146fe86e91364c5ad9493ad40d7 23-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Set DMA mode to LINE after UNSET, commit of BLOCK session

Set DMA mode to LINE only after we UNSET and commit the sessions
in BLOCK mode from previous rounds.
Currently, it is incorrectly set to LINE always at the beginning
of a draw cycle.
Now we set it to LINE only at the end of a draw cycle if no rotator
sessions are active.

Change-Id: I6e2351d214d01764eced0673b639f709fbd193c3
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
ca0e4bf967a8d0d8bdbc93041f2a97bddaaa44d8 02-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Ignore force overlay_set on mdp3 targets"
27ed7a681887d87449209c0d3bab4fac6aae8e3c 23-Jul-2013 Veera Sankaran <veeras@codeaurora.org> hwc: Listen fb0 event for panel status

Listen fb0 status change event for panel status. fb0 will receive
"PANEL_ALIVE=0" when panel is not responding to status call.
Call blank and unblank to reset the panel in next hwc_prepare
call.

Change-Id: I941a501a82d9f3b725660ad09631c1d8602b7325
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
ed86bfc13ab26a6d48eabf2dcc241b76241fa591 30-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: writeback: Do not create writeback instance on dumpsys

Do not create a writeback instance during dumpsys.
Instead use the dumpsys to return empty if no instance exists.
This fixes the issue where
a) Unnecessary instance is created.
b) Dumpsys has garbage, if a valid instance didn't exist

Change-Id: Ic8ea5ddd8d05203234da7c7dfccd2c2b497e62f7
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
d292850924144d1e3ff1a1ba0ff0c31a54857c9a 29-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: writeback: Add dumpsys info

Add dumpsys information from writeback data structure.
Remove some unused fields, formatting to save space.

Change-Id: I808ce67aae16e27c3aa6d6db45983929b1386b69
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
0ba4c1d6ac1b48697b6464f6450665836e50baeb 17-Oct-2013 Terence Hampson <thampson@codeaurora.org> hwc: Ignore force overlay_set on mdp3 targets

Since mdp3 only has one dma pipe for overlay, which in the driver
is just a sw overlay, there is no need to force a overlay_set call
when HWC_GEOMETRY_CHANGED is set.
Also we are moving the wait for distination buffer fence to
wait inside the blit call for mdp3.

Change-Id: Id0aed8732dc49b1041d8174a5ff38703c8023abf
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
f01e10a58786e9cb3200a757f65547868a29773d 11-Oct-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/copybit: Handle "R/B swap" for RGBA and RGBX color formats.

1.Framework notifies HAL with "HWC_FORMAT_RB_SWAP" layer flag to handle
a limitation where R and B components were swapped in Rendering phase.
2.Add "R/B swap" in hwc query to enable framework to query for support
in display HAL, at run-time.

Change-Id: I3b44d15b51b4f24939048fee9d1bac2b9009c97c
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
59789c2c124889c67158456a670062c092a985fc 16-Sep-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Set display as active only after unblanking it"
c439b604bcd6441e3706fdcaa5084ec58cbaf16d 29-Jul-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Add vpu client

Stub implementation of VPU in HWC.
This commit passes through binder calls from HWC
to the VPU library. It also has stub prepare/draw calls
in the VPU client object which can be used to configure
VPU in the composition cycle.

Change-Id: I2606f2884e870448d29ef26e02faac92e157e2c6
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
36c127e5d9e52db10c0333a7db2253fd5f3cf2a7 11-Sep-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add additional trace points"
895d8f140897e5da2911ea4a3fbf90ec12774406 11-Sep-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc:Donot invoke commit when wfd is in pause state"
bc9577e5f6134bde4c5b650c35c78bc851643ae3 06-Sep-2013 Raj Kamal <rkamal@codeaurora.org> hwc: Set display as active only after unblanking it

* For HDMI and non-Hybrid WFD solution, on receiving
online event, display hal sends hotplug connect to SF.
* In case of such displays, set them as active only
after receiving an unblank call.
* For Hybrid WFD solution, since display hal will not
be receiving unblank call from SF, set it as active
as part of processing online event itself.

Change-Id: I319f1576cba954da2024680568c37fedb1eb5d43
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
3156a8f38820366117cdd42cb727c7a2e0bc66ca 09-Sep-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Add additional trace points

Require HAL tag for tracing HWC and add additional trace points
for systrace.

Change-Id: If0abb438da96d3507fb3e2a42bcb8d8b4734fb8f
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
9730e4cbb73d6d80f647ea1f8d6705b4cf4e5c18 04-Sep-2013 Dileep Kumar Reddi <dkumarre@codeaurora.org> hwc:Donot invoke commit when wfd is in pause state

Donot invoke commit when wfd is in pause state
in hwc_set_virtual

Change-Id: I7202237e33b1b5de11f3bb1fdece4a897d3e6434
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
bf5438200b5c0cf81cb008481e951760df83b161 27-Aug-2013 Dileep Kumar Reddi <dkumarre@codeaurora.org> hwc: Do not overwrite retireFenceFd if already set

* Do not overwrite retireFenceFd of displaylist in
hwc_set_virtual if it is already set

Change-Id: I785618bf3b266dc6fa8e881677df6e0849870ae7
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
4d0834b7bc85f5130867a704e3e5fbaed5210c3a 14-Aug-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Fix Pause/Resume issues

1. During PAUSE event, trigger an invalidate frame
which will unset the pipes (in draw call) and invoke
display commit as part of hwc_event thread.
This is required to avoid iommu page faults arising when
WFD encoder is in the middle of configuring buffers
and providing to Writeback as part of RESUME event and
Display HAL tries to invoke display commit as part of PAUSE.

2. Allow usage of rotator for Primary when WFD is in Pause
state.

The above changes are required to support secure/non-secure
video playback on HDCP WFD session and Pause/Resume.

Change-Id: I7391ae4cc7cd8b968873996a1a00fee5fbe6039c
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
8f4aa803299924d78caffbb209c16dc5a79486fa 21-Aug-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Replace redundant display_commit with Overlay displayCommit

1. As part of Writeback class implementation, display commit is
implemented in Overlay class.
Replace display_commit function with Overlay::displayCommit
function.
2. Fix return value of hwc_blank function

Change-Id: Ie54fa9876495608a60216025e57cf4de7f6cb03c
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
eab2696fe84189de2eecbd9187fa7fa037310975 22-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc/overlay: Force pipe config if list geometry changes

Force pipes of a display, whose geometry has changed, to pass
configuration arguments using MSMFB_SET_IOCTL. This helps the driver
make additive bandwidth calculations and reject the frame if the
requirements go beyond what the hardware can support.

This change still preserves the optmization to avoid ioctl calls, in
cases where pipe params are the same but makes an exception when
list geometry changes.

Change-Id: I909d35b2a8c33059b34b65943ccbbc08650461db
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
12a7b537b1e043a61b06db3d083c2372c11ef1f2 19-Mar-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Add support for plane alpha

HWC 1.2 API passes down the plane alpha and the blending
operation to apply. Pass this information to the MDP.

Change-Id: I7fbd17345d9157aa654e4b1031ac3e26adf87f37
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
73337e3c21aa7ebcf11e5ffe45e4b5f8adf47465 18-Jul-2013 Raj kamal <rkamal@codeaurora.org> hwc: Define and Use mSecureLock

Define and Use mSecureLock in composition and binder
thread. This is to ensure both variables mSecureMode
and mSecuring are updated in binder thread without
any context switch to composition thread

Change-Id: Ibd701bd3363515e2f7e8a9711bbc5b66053cfa03
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
7ae68d77a59cba7ba47172be26c5f943b77d93c1 15-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Reset state of layer which needs rotation"
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.cpp
bef8ca47f3b15f7ae3caa871c1ed5da5508aca3f 13-Aug-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Reset state of layer which needs rotation

This change was removed during re base
( original commit id: I266a87228193fd85252a22242b66dd4af5f3033f).

Bringing it back.

Change-Id: I625add1996ca98c47cedecbe8c9f27d298c5f079
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
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.cpp
7351e690989ae638e281be1999b002b3333cd403 18-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix locking in external connect and composition.

The external configuring flag should be set after holding locks.
Before opening FB for HDMI/WFD, composition should give up any
open external FB resources.

Locks should be held by composition for the entire duration.

Change-Id: I703f69f156c665bf422613567c00aae340f3ee12
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
9f69b91e962b59f708dac458f24b11c4c4b94348 23-Jul-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: move fbzorder initialization code to hwc_fbupdate.cpp

move fbzorder initialization for external during display animation
from landscape to portrait from hwc.cpp to hwc_fbupdate.cpp.

Change-Id: I4dbac87fe56f8262356043865b61a982244cd72a
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
464983fc2b8c5df172e5bf94e0a53d7d61bb77d8 23-Jul-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Refactor of allowing virtual displays to HWC"
04a63f7f903d852042a288a84e29368e5f6ad0e0 19-Jul-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Don't lock eventControl for vsync events"
f981ade1d3b2525466afdd9d3b0621d0cb19a2f7 18-Jul-2013 Linux Build Service Account <lnxbuild@localhost> Merge "overlay: Add writeback support"
0df43c5a5da262ea6716f7614019fc710562028b 01-Jul-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Refactor of allowing virtual displays to HWC

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

This refactor is done to address Framework reboot issue.

Change-Id: I266a87228193fd85252a22242b66dd4af5f3033f
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
76a5cdf91ae7c3f98845c0464dcc49c45d1af10b 27-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Add writeback support

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

Change-Id: I171e60cea5ed8f6649859e3eb189df37b39962f1
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
0ae2e21a8a58721c507138d6a68a5305db5afb61 11-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: wfd: Fix locking on pause resume events

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

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

Change-Id: I0f2f0953a7ab322128d044ca3458e359da4e575e
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
6af3757806fc72028ea15f27db1a4e0fd439dfd9 09-Jul-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Don't lock eventControl for vsync events

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

Change-Id: I2bf18ae9235f8dd428a495a9a23af7f00f34ff1d
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
43addde8368fa726b6be3ff2194eca4fc0741994 21-Mar-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Sync for rotator

Implement sync for rotator.
If a buffer is rotated, it can be used by producer soon after
rotation (and it wont have to wait until vsync).

Mdp waits for the rotator buffer's release fence to signal
to start display.

Hwc waits for previous access to rotator buffer by MDP to finish
before using it

Change-Id: I5664806a17c44d58af62a2825ce454089fcd31cf
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
52826a3783c16ebbd5d918b2f3e744ede995fba8 04-Jul-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: wfd: Call commit even if in pause"
ce2921af57f8531d235d006b509d8dbef636d737 25-Jun-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: wfd: Call commit even if in pause

We need to call commit on wfd even if in paused state so that pipes
which are unset are actually unstaged from driver

Change-Id: Id71de8b80c44a632989de154a2387380d8fa66f0
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
f1e233034ba5bc96e32861fa98a5504aad06415b 29-May-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Featurize framework changes

These flags were added to the core HWC header and break pure AOSP
builds.

Change-Id: I0d2f2071ce3fd6a9a0dc848b08098895b669c94e
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
0c3cc78a939cbb9f9770670cd224a2dabd6d1a41 21-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "display: Enable copybit on msm8610"
a307d44ce42806fff97279c23775b738f86fc253 17-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Implement idle-fallback for videos"
7373b01342416475789bda78901a1a1cc146335b 17-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Simplify vsync code"
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.cpp
34e2a93ebfeb283ba8cb6d7fe3119ca5fd8b8877 14-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Do not show animation on External display."
be7ea8e148416ec9ce8302a25483688b94500380 14-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add support for EXT_ONLY Layers"
10d293b379d1b8bdaa383b67c05b187365c5d1af 11-May-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Simplify vsync code

Handle the wait properly in the kernel and remove unnecessary
thread signaling.

Change-Id: Iff05825a7a85d0353f3feb64e7f9a06cedab7869
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
50c8773e2800263be1340a4bae443ddef6d43940 12-May-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Fix acquireFenceFd memory leak

Remove return statement from display commit failure and assign
the return value as -1 to avoid memory leak during error scenario.

Change-Id: I87dd73e997e016f89944bb1603b517847bbc555c
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
eb43d2b7b681164a58e3f86bd0b0d88eea6a3591 07-Feb-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Add support for EXT_ONLY Layers

If there are any EXTERNAL_ONLY layers present in the list, mark
them as HWC_OVERLAY such that SF does not compose and in hwc_set
post that layer to Ext display, ignore other layers

Change-Id: Ic5db3bfa88295167d23d1fb2be7640c9fc772054
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
9ee1fcd75e50f365572a2b4e32eeef685845d323 19-Apr-2013 Terence Hampson <thampson@codeaurora.org> display: Enable copybit on msm8610

This change is the hwc and copybit changes need to enable
composition to go through mdp on msm8610.

Change-Id: If0df3a247c5f4f4310966d14fe8fd839bf84b9d5
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
53e55853cc3b0365a190b9d24f894cc5321766ee 09-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "Fix crash issue arising out of multiple hdmi connect/disconnects"
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.cpp
6e5f4943b740677ec2f124fda808f6fb2d715cde 02-May-2013 Raj kamal <rkamal@codeaurora.org> Fix crash issue arising out of multiple hdmi connect/disconnects

Acquire mExtLock before proceeding further in
hwc_prepare_external to prevent crashes arising out
of updating ctx variables from two different
threads(composition and uevent threads)

Change-Id: I0f18c41b117f18aeb25572b53ef6eba3638bb826
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
2a9082bf46b3de9f997036a53a97834bcef170d9 12-Apr-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Enable more Debug logs.

- Dump more info for BUFFER_SYNC ioctl failure case.
- Enable debug logs for blank/unblank display.

Change-Id: I289ed8ad39a0181ff4a404644b90cb02a8144b9a
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
4762db4eb027284225be9d10f08d87252612064c 11-Apr-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix dumpsys crash

In extreme cases, when all pipes are used, the buffer is insufficient.
Reduce logging by striping off unnecessary bytes.

Change-Id: I5a6ffb9ff288e389eea4e9ca4ac850ed59d539ff
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
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.cpp
c9889a4a83afe2e431bd6982144cee1b6370d451 06-Apr-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> libhwcomposer: Log and dump app layers of screen frames

Log a frame-by-frame succession of HWComposer layers' data and write
their buffers, if any, into raw or png files based on system property
values.

Change-Id: Icceccf5fff5ab4d78dbc6c28c11210b8837ddfd9
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
f2cd273d336010a91602546685168b4a4907d2da 04-Apr-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Reduce blank/unblank logspam

This is logged in the kernel and if there are excessive delays,
logged in the PowerManager.

Bug:8485194
Change-Id: Ia83b186ccae1fb6de59f200faf28346f84d832b6
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
76155c0b581cd54a5611ea29d43e85aaaeceb649 03-Apr-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: clean up overlay on external display blank"
905c994790c2e9ce6aa585cd9d70178db4391cce 29-Mar-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: clean up overlay on external display blank

- On suspend, SurfaceFlinger calls hwc_blank on primary and
external separately, inbetween these calls there might be a
update, which leads to acquiring overlay pipes for external
which will not be cleared and results in showing up stale
frame on external display
- This change clears all the overlay pipes used on every blank

Change-Id: I44d62b7d0fcd992cf8a26bb0c21df77952bc1381
CRs-fixed: 464070
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
95eb7a8800a05d8a0b6f5ba3f05e48d8dd36705f 28-Mar-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Add debug logging for fps

This is indicative of how many frames are posted to the display
by SurfaceFlinger. Set debug.gr.calcfps to 1 and restart the
framework to enable.

Change-Id: Ic503c14380fd7d8a5b062aa5da0d61bfc3991cb2
CRs-Fixed: 462010
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
54a4a8e7d7b1aadb06153ee36935860cacf1e643 22-Mar-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Configure pipe for FB even if we exceed max layers

Even if we exceed max supported layers, configure pipe for FB
Because FB contents are always displayed using hwc

Also some minor code fixes

Change-Id: I740ab7e908c916373b1d87facd831e09098ce753
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
c567a93cd9ff7079ac03024d4fdb1ddc5683e748 21-Feb-2013 Jeykumar Sankaran <jsanka@codeaurora.org> display: Remove framebuffer HAL usage

This patch removes the usage of the framebuffer HAL which is
deprecated in JB MR1 onwards. The code is left for compatibility
such as conformance tests but it is unused for normal display
usage.

Change-Id: If98133bdaa759cdc41d4503ff695b225ee43cb6f

Conflicts:

libhwcomposer/hwc_utils.cpp
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
55290a90518c4a8e2cc41d7bdb40918248a9920e 05-Mar-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Check for correct screen state before enabling vsync

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

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

Change-Id: Ibec04e9ffebd0ac6e1d32b7031e3668abd9390ff
CRs-fixed: 443113
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
c153772cdc9433454019afa97581f85c2828377e 07-Mar-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: handle blank/unblank for virtual display explicitly."
f235bb03f9f3c8b547983a0bb3fab1ce3a7ea0a9 07-Mar-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Use intermediate buffers for copybit"
750d7e98a5ff841c9dc958e676837514193daa5c 26-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Process only MAX_NUM_LAYERS

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

CRs-fixed: 456906
Change-Id: I53159104e5e714ba313d0196ca959f55c82e18ae
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
3fa62188eb14c34b64fc95167162cb807de64336 26-Feb-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: handle blank/unblank for virtual display explicitly.

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

Change-Id: Iec7a1611a8963408f65c8a73a1c15e47cd7faab6
CRs-Fixed: 456810
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
04a2afbd65e9f8bc580a637bf44bfc4e627edce0 14-Feb-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Use intermediate buffers for copybit

The earlier copybit solution involved blitting directly into
the SurfaceFlinger's framebuffer target. That solution involved
unnecessary framework changes and caused issues when the
framebuffer was being written to both by GL and copybit.
Update hwc_copybit to use our own buffers for this purpose.
We also make sure we display only the region we're interested in
so that unnecessary artifacts from previous blits do not show up
on the display. This way, we can avoid clearing the intermediate
buffers every frame.

Change-Id: I713b3fc606e0768444c621af76853ece41964da1
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
a2fbf2e17b5b50016125016f05cb0b52bea5ce5f 26-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Close acquireFenceFds always.

Close acquireFenceFds always even in case of failures if a layer is either
OVERLAY or FRAMEBUFFER_TARGET to prevent leaks in case of failures.
The framework is *not* responsible for closing acquire fds, for layers
marked as above two.

Change-Id: Ia6c751d3ec25f196f5503120894fc6cc692b9d25
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
90571fc7c38e38858ad22a79e95efcb99c3a8b1d 17-Jan-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Allow HWC to support Virtual Display

This change allows virtual display to be composed
by HWC for supporting Google WFD App + QCOM WFD stack.

Change-Id: If8892230256e72fa34e3fb5ae715c3ad8cbd5b64
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
a22f5873a9974b00f352370e077db9788ad67699 13-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Add support for pipe dumps.

Add support for pipe state dump useful in dumpsys.
Reduce debug log spam when mdp state changes.

Change-Id: Ie27ad00698085e2ffd6166ad2f7503fe16a571f8
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
2a67868e6e048684c4a505f74808c3a2aba63c79 06-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Call MSMFB_DISPLAY_COMMIT even if FB handle is null.

Call MSMFB_DISPLAY_COMMIT for primary FB even if FB handle is null.
This is already done for external FB.

Change-Id: I5c405f933ce0fd99df6813acea45169802c54226
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
e5287a408d2eae29afa055d6bfd646c250d129fb 11-Jan-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Invoke commit ioctl even if there are no app layers

Android has scenarios where it calls HWC::prepare and HWC::set
without any application layers. In such cases, for power
optimization, user space avoids calling PLAY
(on FB - since there is no new content drawn) and COMMIT ioctls.
But we might have called UNSET on mdp pipes used for the previous
frame. As per the current MDP design, these freed pipes will not
be unstaged unless atleast a COMMIT ioctl is called on that mixer.

Change-Id: I7f7574b2e589e80c4926533066e35784bb29b4a5
CRs-Fixed: 437736
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
4019c64ad8721cd9f3dc5c4e7be260a5f0706e34 28-Nov-2012 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Add support for copybit(C2D) composition

- Add CopybitEngine to hwc_context
- draw the layer on the HWC_FRAMEBUFFER_TARGET using
copybit(c2d) if it qualifies for C2D composition.
- use fence returned from the copybit during c2d
composition

Change-Id: I052da015cd031f7abd6411d83d7944c335caeff7
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
3ffc467822ce99b148d842c13dc22e1889ba0241 04-Jan-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: commit changes for ext display on blank

- When the device is suspended, the overlay pipes will be unset,
but they wont be unstaged as there is no DISPLAY_COMMIT ioctl
called for ext display, as a result the fence wont be signalled
by the MDP.
- This is needed as we dont turn off the External display(HDMI)

Change-Id: I9794ad2ae7c9d7b4ce3f9787f50ea9da87966e41
CRs-fixed: 425483
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.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.cpp
640cb9421639c13248aeb30c3496cdfaec6d894c 13-Dec-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Support 4kx2k FB for Primary and External.

Add support for 4kx2k FB for primary and external panels.
Change class design to create appropriate version of FBUpdate on boot up based
on the panel resolution.

Change-Id: I216d815d9b81c610aa39e351f7b55736dfa48b43
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
ae51d72461558464c3a2a9d20408b5d90f0a5828 12-Dec-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Fix issue with Layercache

When MDP comp is done the layer cache
is not reset. Calling the layer cache updated
after MDP comp is configured ensures that the
cache is reset correctly.

Change-Id: I9fc3ddd713ceac4be708e33782c3661e758dfcb9
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
0d3aa44c38407285c63f00308d4b1572f7de34f1 08-Dec-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: User Layercache for external display

Change-Id: Ibca92e1470ef72dc02d16d4ef8c05f1a1d2d485c
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
d15e2f2e32f203c34f9de54b7f5f99881612cd3e 09-Dec-2012 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Implement dump function"
71005afe9fda149b1bdd2720d0aed1414dc5a455 27-Nov-2012 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: changes for hdmi hotplug and hpd

This commit has the following changes:
1. Use hdmi switch node for hdmi hotplug
- uses /devices/virtual/switch/hdmi switch_state to determine
the hdmi connect/disconnect
- this switch will be set to 1 on connect and 0 on disconnect
- on connect, open framebuffer device, will trigger the hdcp
authentication.
- the driver will set the hdmi_audio switch to indicate that
the HDMI sink supports audio
2. Enable HDP on unblank
- this will resolve the device freeze during the bootup with hdmi
connected

Change-Id: Id7a656d548a31178e31dcb9aea8acf38a56c9e0c
(cherry picked from commit 953b04b3cbba2f91d25795e5b0560c13d47844b0)
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.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.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.cpp
47377987cc4eef72ee3b0cdced8c3a15038b39eb 28-Nov-2012 Naseer Ahmed <naseer@codeaurora.org> hwc/overlay: Dynamic pipe tracking.

Remove state based pipe handling and make pipes tracked dynamically.
Add the configStart, configDone, nextPipe availablePipes APIs.
Remove setState API.

-configStart marks all pipes available.
-configDone garbage-collects unused pipe objects.
-nextPipe returns the index of next available pipe and create a corresponding
pipe object if not present
-availablePipes returns total of "unallocated" pipes. (Pipes could be allocated
but unused)

Changes in hwc adapt to the new overlay APIs.
Compile out MDP comp.
Remove unused files in overlay and hwc.
Update licenses.

Conflicts:

libhwcomposer/hwc.cpp
libhwcomposer/hwc_utils.cpp

Bug: 7626586
Change-Id: Id8e56901d34e5dc0fd088260d05e3e46f68ff090
Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
9f0b36a26d1c37ad0d31e59136b1e5d6f4d7efde 17-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: cache layers on framebuffer

In the cases where all the layers that are marked as HWC_FRAMEBUFFER did not
change, we can mark them as HWC_OVERLAY since their contents are already on the
framebuffer and do not need any additional processing.

This optimization shows power improvement for video playback.

Bug: 7623741
Change-Id: Ia178a926e6f56a3ec9291250a22a66f212c30b14
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
3475d840ef8603c8e21fe903cb5b17fa4cc948b3 11-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Return failure code if hwc_set fails to draw

Check for errors while drawing the layers in hwc_set.

Return -1 in the error case so that framework doesn't wait on fences.

Bug: 7284105
Change-Id: I024f9ca07faf64d6b90d4f483164dc15c0d7992c
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
6e458c9164c7891d0f869a58c0ea12280c23e9ca 13-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: clean up overlay for external from the draw thread only

Cleanup overlay for external from the draw thread. If done from the uevent
thread, its possible that the object being used by draw thread is deleted by
uevent thread.

This also removes unnecessary side-effects where libexternal sets states in
hwc, whereas, it could be set from hwc itself. There should be no need for
libexternal to modify states in hwc.

Bug: 7335863 (partial fix)
Change-Id: If07483e640abae2ced2418e0d5c8f278f8c6ec33
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
f6205c18f4bbd23e7f39672f781498c34e6b7494 11-Oct-2012 Kinjal Bhavsar <kbhavsar@codeaurora.org> HWC: Protect hwc_set from async events

Wait for hwc_set completion if already in progress before processing
the async events.

Bug: 7288769
Change-Id: Ibdd0ee82f079df566b899c94df19f6bb1031d686
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
8eb66cfb97ccc186e9f4ae5f38e8d8f6087ae5b7 12-Oct-2012 Iliyan Malchev <malchev@google.com> hwc: add some logging

We are seeing errors where a device's hwcVsyncThread is not present for some
reason. The surface flinger has not crashed, so either the thread never got
created, or it exited withouth throwing an error. This patch adds some more
verbose on-error logging to the HWC as an attempt to verify the theory that the
thread does not get created, or fails in pthread_create. While we're at it, we
add the same logging at pthread_create() for hwcUeventThread, as well.

Also, replace the lseek()+read() with a pread() combo in the vsync thread.

Change-Id: I555d786a7d66ff4ef1dbfd95947a7d9341e56f11
related-to-bug: 7305728
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
a2bfc3940f0cbf6e3a8f25d397c0335efeb4721b 10-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: fix for not ignoring framebuffer

If the FB is not used, because all the app layers are overlays, then set the
flag to have the driver not fetch from the FB pipe.

Bug: 7183992
Change-Id: I96ecc1610ac052e8512158d189b0614ecf82d139
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
8cc5d853c3125df5867ce35a10d7a01dd51d48c6 05-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: more error checks

-- numHwLayers==1 means that there is only the FB_TARGET which HWC shouldn't
draw. Also check for blank in set. Checking for this in prepare prevents us
from acquiring pipes.
-- add null check for private handle
-- print out vsync timestamp data on error

bug: 7274417
related-to-bug: 7288769
Change-Id: I8dae0d0748c5226fdc33ed8f5cc5259835dec2de
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
3602b636ea4985b3fd9f6c0bd276aa9038ea20f1 05-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Remove call to glFinish

It had a glFinish which is not needed anymore on HWC 1.1

Bug: 7274951
Change-Id: I1389802a0ed3f0199d7d7ba0110a343b2f571106
Acked-by: Naseer Ahmed <naseer@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
0f5d0c11aff663c047803afcc2cb30e33bad8051 04-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: move enable disable ioctls to vsync thread

This patch stabilized the vsync signal.

Bug: 7274951
Change-Id: Ieb6396c67d4dfb20cfde39a63a45ab6742d9ec5b
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
dc8c69a5f00ed27acab3821541e2d41d13b777bc 04-Oct-2012 Iliyan Malchev <malchev@google.com> hwc: fix some race conditions

Fix some race conditions between hwc_eventControl and the hwcVsyncThread.

Bug: 7274951
Change-Id: Ic71d65918303b4cef6a379ff5397702b2b578373
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
4267d405186dccc076536208c9f428761146bae4 03-Oct-2012 Omprakash Dhyade <odhyade@codeaurora.org> don't call vsync-ctrl ioctl for same enable value

Bug: 7274951
Change-Id: Ib21f1ddd623b36a20f195483236ba6cd4bc87c8d
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
aff82051a79fbaf752d3769667d34828cee2841d 01-Oct-2012 Naseer Ahmed <naseer@codeaurora.org> hwcomposer : Use sysfs to read vysnc information

* Read sysfs entries to get vsync timestamp from kernel.
* External display continues to use uevents for hotplug events
* A new thread, vsyncThread is created to read and send vsync
timestamps to HAL.
* Disable H/W VSYNC for MDP 5.x targets until kernel changes are
complete.
* Synchronization is needed to make sure read() is not called
by hwcVsyncThread when VSYNC is disabled.

Change-Id: Iab0a94a3cfce9142b8867859f2a7d9bcaecb0996
Acked-by: Neti Ravi Kumar <ravineti@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
77d8f24cb4fece120f062f2f997f018372338b66 29-Sep-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Make blank wait for set to complete

Bug: 7217641
Change-Id: Ie25c9caa7a4c6a256c0f35fc40cbae2ef4572f5d
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
0db89625ae1d8d87b4f7c593aea00ffbcc51865e 27-Sep-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Close unused pipes before PAN

If the pipes are closed after PAN a blank screen is
seen when when we transition from MDP composition
to GLES composition.
We close the unused pipes at the beginning of the set
since the decision has already been made in prepare.

Bug: 7188473
Change-Id: I6f946fa3d02f1c84fb2bb8d3b8e5c823c1151fd5
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
01b7e7da456f9170e46544be30dc2547763bfd6f 27-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Call sync before draw.

Call sync before draw since draw could use rotator which reads out of the
buffer. For that to happen cleanly, the buffer should not be in use. Calling
sync before draw makes sure, the buffer is free to be used.

[TEMP]
Enable rotator for external video, since sync-pt is not used for external yet.

Bug: 7227220
Change-Id: I25fec8ecc158e28801f238d2829af4d635f3e2c9
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
d0db1f51d6012df6c4bbfc00aee1aa56b900f4eb 27-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix tearing on HDMI. Call glFinish()

When rotator is rotating GPU writes into it causing tearing. With hwc1.1,
framework doesnt use fbDev, which had a call to glFinish(). Consequently, this
was missed out. Adding this missing code to hwc1.1

Related-to-Bug: 7227220
Change-Id: I7287d3d73b839fef818e31c1c8a783f1fb96d9f1
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
adcebca8a2f6bae7a0e37d785caa0db84e3caae3 27-Sep-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Check for the validity of the fb layer

Need to check if this is valid before doing anything
Extra NULL checks all around to prevent any invalid
lists from SurfaceFlinger

Change-Id: I57ca97167e469910bcaaa68672ae70b41a061ded
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
79e14117f5e66a080b9f2a783ce3b215c72c8653 27-Sep-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Fix dpi values reported

HWC 1.1 expects DPI multiplied by 1000

Bug 7241591

Change-Id: I680da8769f53f8a18d942a3b292d96a16885ebfa
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
074dab343c4cfc5c77511a77247d759b10089a94 26-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> (TEMP) hwc: external: Enable default mirroring on hwc1.1

Related to bug: 7124159

UI Mirror works with tearing because sync operates at primary vsync. Need
kernel patch to wait on external post.

Change-Id: I77116ef40ae25a2207feb5ca3cd9065ef0da6e4a
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
33147743328e88e7859db6c935072f11ca038448 19-Sep-2012 Kinjal Bhavsar <kbhavsar@codeaurora.org> hwc: sync-point implementation.

Add sync pt implementation.
Add genlock and sync pt under conditional compilation flags.

Change-Id: I32fb7f6051ccc706662152e90ac15b6b6743f897
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
25322c7f78dfeb2c9c441dc0720dba6c639b198c 17-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Minor bug fixes.

Some minor bug fixes.

Change-Id: Ie8c2f58b9c6db6e77739e4693da503f6f963827d
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
d90585de4fc3946815c846ee97385d8b0183cf54 18-Sep-2012 Iliyan Malchev <malchev@google.com> hwc: add more debug print

- when UNBLANK completes
- when POWERDOWN completes

Change-Id: Ife7b4b40309de0f58052184ca3e4584b50c69bb1
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
ade7461cd279f0ca3806e35a38862f2ef4fe8563 13-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Add non-zero checks. Move warning log.

Add check for presence of non-zero number of layers.
Move the "composition after powerdown" log under that check.
Move the caching of dpy under list non-null check.

Change-Id: I99b9293e671a15ba1fb31692e30413d2bbd97867
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
1e396eddac16f39d5bd09dc9f6f8a704b468c2d3 12-Sep-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Add some debug and warning logs.

Add debug logs for blank, unblank and warning logs for composition on powerdown.

Change-Id: I184a9503a26d401cf70e072815603a47d3972eed
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
21fe85b5b8212ac43d81f5db4b2b30f71ac048e2 30-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix fps calculation.

Fps is returned directly by the driver. No need of additional calculations.

Change-Id: I17bed4347f094b71340ca39e37b66fbcf9fdba9c
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
93fc2181d524746e8681e9c2b75d1a12f69351f6 23-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: Unlock prev. buffers in N+1th draw round.

Unlock previously locked overlay buffers in N+1th draw round, rather than N+2th.
This is now possible because of wait for PAN.
Provides an opportunity to improve genlock behavior.

Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>

Change-Id: I13d9c39e276918c3d3d27b2f07ed486b27b58441
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
a71a7ecd0323a16fe7728271474f8b7056c679d8 18-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwc/fb/overlay: wait for fbpost and pan display

Draw sequence in hwc_set
--eglSwapBuffers
--wait for fb_post. Its ok to draw to External only at this point.
--draw to external | Parallel with PAN
--commit to external | Parallel with PAN
--wait for pan (happening in fb_post) to finish.

Call MSMFB_OVERLAY_SET ioctl only when params change.

These thing together ensure a correct sequence and should fix tearing and
stuttering, the latter assuming there are no other display pipeline delays.

Acked-by: Arun Kumar K.R <akumarkr@codeaurora.org>

Change-Id: Ibb0ad8485fa6b30dc6ac07ae8b25a760941c08ce
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
7eab0d105a7e7a83294bbf119d337b9246eb6979 16-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: qbuf: Add API to unlock all

Add API to unlock all current and previous buffers.
This is essential in suspend cases.

Change-Id: I61c26db2e0e2b3e5e7f526a62a56424a8632f1d8
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
1ddbd4ef2e8a4e14b19e9ce4c9ad00b63b76bbe9 17-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Call blank ioctls

The blank ioctls were never called, we were relying on
the driver to implicitly do this on suspend/resume.
Fix this by calling blank with the right parameters.

Change-Id: Ib969c4e55d9f460255750f07aecefb04a310bd7a
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
9426ca0404d3807a5838cd7d7b7a5df6d3d3e1a6 12-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> Revert "hwc: Fallback to GPU for video playback usecase"

This reverts commit e217fbfb09b0ead3689d542da3ad651fc6c4f5c7.
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.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.cpp
e2cb361a1ac1df575a6316b691f49b6bad177a2e 01-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> libhwcomposer: Add C2D support to copybit

Change-Id: I2f2c915bb92d5c459428078149a9709356ae83f1
Acked-by: Neti Ravi Kumar <ravineti@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
5d0935531842ab9cf01775a77e92f204e6d40971 01-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: Add support for external-only layers

Add support for different types of external-only layers
EXTERNAL_ONLY: General purpose
EXTERNAL_BLOCK: Blocks the display of other ext-only layers
EXTERNAL_CC: Used for closed captions with videos.

Change-Id: I9cc7b9a1dbf1085194725474d6a4d1094e27a0c8
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
b3c6e058ce1dbc689f27e7d7acbf1529d37307d8 26-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> display: Get panel type from framebuffer

Change-Id: I3b7cb78d7c6019482ae698b30d553ca782f5022b
/hardware/qcom/display/msm8084/libhwcomposer/hwc.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.cpp
080cfcaf2e972513fc09a0207d034ef5dcc975d8 01-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: enable vsync for external display

- wait for hdmi vsync when connected to hdmi
- add commit to call PANDISPLAY for updating ext display
- add functions to close fb and reset info

Change-Id: I49afbeb85935b111055a872b29a1f65d87ab72c9
Acked-by: Arun Kumar K.R <akumarkr@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
1589dee5c27293d278d3e549af8a4bda27e080f8 21-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> display: Enable vsync

* Use the vsync uevents from the kernel to start
surfaceflinger composition.
* This patch also does some code cleanup
- Move copybit specific functions to copybit files.
- Cleanup verbose logging.

Change-Id: I36936e4b0a082cfb0347d8ee7d2bc936e01808e6
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
bd4704d4b447bd4aa59e4894d68a7162ce4f99fd 01-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> display : Add support for copybit composition

This change add support for copybit composition in display HAL
for MDP3 targets.

Change-Id: I9bc8e40f624b0760f4faa223cb03a13695611bb3
Acked-by: Sravan Kumar D.V.N <sravank1@codeaurora.org>
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
980c5fda4cd64d03609aa2e672501be0af2ac95b 26-Jul-2012 Ajay Dudani <adudani@codeaurora.org> hwc: Fallback to GPU for video playback usecase

Change-Id: I0496f709f184d0420cd976056f74f26bb1bbdba1
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
ccf943e44f9e9d615a6019459625148830039f8d 20-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> hwcomposer: Add support for UI mirroring

- Uevent observer as part of Hwcomposer
- HPD, enabling/disabling external display from HWC

Change-Id: I52b4f30c78e98c5b52c86722046389f458c2dbee
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
ee7fc0347e52276d43413e91f31d72d6db99dcfb 20-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> liboverlay: Refactor, bug-fixes, upgrade.

* Fix memory leak during copying pipe objects.
* Remove unused / unnecessary code.
* setMemoryId API is merged with queueBuffer.
* setParameter API is setTransform now.
* Rotator upgraded to:
--Allow different rotator hardware types.
--Remove dependency on MDP code.
--Allocate memory only during first playback,
close when the associated pipe is closed.
* Have single commit implementation.
* Include new format types.
* Remove WAIT and CHANNEL enums and usage. Replace BypassPipe with
GenericPipe. Client expected to set alignments and parameters.
Add transform combination enums.
* Allow APIs to be called in any order. Do transform calcs in commit.
Move ext type setter and getter functions.
* Add calculations for 180 transform.
* Add secure session support in rotator
* Implement all rotations in terms of H flip, V flip and 90 rotation.

Change-Id: I34a9a2a0f1255b3467a0abbaa254d0b584e901ce
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
0f859f6f0db0e0c05d8c319d8d597ad2731513ae 02-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> display: Add QC Display utils

* Rename qcomui directory to qdutils
* Avoid inclusion of qcom_ui header
* Add class to get MDP version
* Add namespace for qdutils to prevent collison

Change-Id: I9a3f440e6b0fea1cfcc478ddca90af5df3bbb897
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp
befc466069680cb8a65b1f22ad44723d949128c8 14-Jun-2012 Naseer Ahmed <naseer@codeaurora.org> qcom/display: Update HALs

- Update the display HAL from Code Aurora Forum
- Add updated overlay library
- Enable HWC with basic video going through overlay
- Cleanup some files

Change-Id: I65c687c51be458cee71213c79e03eeda962d9086
/hardware/qcom/display/msm8084/libhwcomposer/hwc.cpp