History log of /hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5a7d156b76908b60b72d1acc1d4b5959e7a9647c 23-Jul-2014 Naseer Ahmed <naseer@codeaurora.org> display: Add HDMI CEC HAL

Implement the spec as per
hardware/libhardware/include/hardware/hdmi_cec.h

Change-Id: I02e1ba9deee1007b7e5922c363b9f5d6c6ad82a9
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
af497507a296d3280b6bcd231223d623ef4ef15f 31-Jul-2014 Saurabh Shah <saurshah@codeaurora.org> hwc: Switch to VD object

Use the VD object by default for writeback.

b/16315225 -- GCast: GCastV2 is mirroring a Green Screen to the Chromecast Dongle followed by a Kernel Panic
Change-Id: I4a16e1fd393f9098df675ac59c835bc835806832
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
e21110177d7605c4668bad3e2de85c8bb2a531f7 01-Apr-2014 Raj kamal <rkamal@codeaurora.org> Display and wfd synchronization during teardown.

* Provide a binder interface call for wfd module
to inform display about the start/stop/pause/resume
of wfd session.

* This is needed for wfd-hdmi synchronization in
case of v4l2 wfd solution. If hdmi is plugged
in during v4l2 wfd session, display-hal waits in
uevent thread for wfd teardown notification from
wfd module, before going ahead with configuring
external display.

* For VDS WFD solution, display-hal waits in uevent
thread for wfd-teardown to be signalled from
the composition thread.

Change-Id: I9514cb5bc7ff81de0b5dd4cdf66d8286a64ba094
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
bad2217825fe0a98d9c4a987a139f4d7a0e05a2f 21-Feb-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> hwc: Enable downscale feature through system property

Add support to turn the MDP downscale feature ON through the
use of a system property. 'sys.hwc.mdp_downscale_enabled' shall be
set to 'true' in build.prop file to enable this functionality.

This is required for OEMs that might have privacy concerns over panel
size information being exposed.

Change-Id: I354b25b1fdabe5786aed7552f2afccda35412467
(cherry picked from commit 5d14c718eeea661a8f29278bfb283c7d2161e4a2)
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
b651a4b0947e3b812e410bb6564e804980343685 02-Mar-2014 Linux Build Service Account <lnxbuild@localhost> Merge "gralloc: Add GRALLOC_PRIVATE_USAGE_WFD flag"
95a496f2c9ad7fed0cccaa33c3f544f47a542d44 20-Feb-2014 Manoj Kumar AVM <manojavm@codeaurora.org> gralloc: Add GRALLOC_PRIVATE_USAGE_WFD flag

1. Screenrecord and WFD use virtual display and encoder.
Since HAL supports only one virtual display, we need a
definite way to distinguish both use-cases.

Failure to differentiate will break Screen record + WFD
concurrent usecase.

WFD stack will set this usage flag and SF will query the usage
flags to differentiate WFD and screenrecord usecase.

2. Deprecate GRALLOC_USAGE_PRIVATE_EXTERNAL_CC and
GRALLOC_USAGE_PRIVATE_EXTERNAL_BLOCK flags as these are no
longer used.

Change-Id: Ifa260c5af2371eea830744ce62a5a83b8cfd0de7
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
6e02982097c44f4684e9f394c6b28b85ae99f325 20-Feb-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Derive view frame for external display."
1e8bb08f0275c3acef37838114ab2b37ae814f13 04-Feb-2014 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Derive view frame for external display.

Derive viewframe rectangle for external display from primary
resolution and primary device orientation.

Change-Id: I1885b660cd6343e41e4b574e358fd063cd47a54d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
d706f8d6183a49fd5f48b642cbbd0c8a868fc830 31-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Dynamic Resolution support on Primary"
b041f795560ae53110da55427e877f59ae8b34d2 31-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: vpu: Added a new flag to indicate VPU pipe"
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_utils.h
a9776b10e38f4ebdc7466955e933217fd15ae180 24-Jan-2014 Zohaib Alam <zalam@codeaurora.org> hwc: vpu: Added a new flag to indicate VPU pipe

Added a new layer flag: HWC_VPU_PIPE to indicate that the layer
will be drawn by VPU. There is a corresponding MDP pipe
flag: MDP_VPU_PIPE, which should be set for the VPU layers to
indicate the layer will be drawn by VPU, so that MDP driver does
the appropriate settings to allow this process.

Change-Id: I61270aca633bb831bf34d413877bf925a3d2ac37
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
ec2437450b4ac63684102a63d24420d178732fd5 16-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add support for Macro Tile feature"
c38cdae859e0ee12ad3284a308eaeef9d2708c74 10-Oct-2013 Manoj Kumar AVM <manojavm@codeaurora.org> hwc: Add support for Macro Tile feature

Macro tile is enabled only if all the conditions are met:
1. GPU hardware should support Macro Tiling.
2. MDSS hardware should support Macro Tiling.
3. USAGE flags shouldnt contain GRALLOC_USAGE_SW_READ_OFTEN and
GRALLOC_USAGE_SW_WRITE_OFTEN.
4. RGB 16bit and 32bit formats.
5. persist.hwc.macro_tile_enable flag should be enabled.

PRIV_FLAGS_TILE_RENDERED flag is added to indicate whether the layer
is rendered/composited in Macro Tiling or Linear format.

Change-Id: Ie3139839c84d76c5d1a2300f33910a09eb7336f4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
0fc5f16d9a2eb0faf7904282eb9f716124e9c93b 09-Jan-2014 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Disable MDPComp for external UI layers if scaling is present."
f39af541bb947658b15cda3602beeb0df8cf5c56 04-Dec-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add binder interface to pause/resume WFD

- Client can call this when it want to pause/resume wfd
- Calling this will make sure after pause, black screen
is shown on the sink
- Currently used by the SecureDisplay module

Change-Id: If618edf76a82abe49fb676d3845ca1f1d5a8bf25
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
ac5b9f4e6b7dc80e0f91c1581f0bcb4464a48ef4 07-Dec-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: Add binder interface to get the visibleRegion

- This binder interface can be used by clients to know the
active visible region for a display(pri/ext/virt)
- When external orientation is used, return the destFrame of
the FrameBuffer layer, as its the viewFrame

Change-Id: I7cfd149c76c16b9a3031103c89b1932d44bcbecd
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
ec790b7b6d49528435d5b421641975f122506c1b 18-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Refactor disable animation on external"
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_utils.h
75e03b293cdfb6835494ee14b33311377cb97bc4 12-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Calculate viewframe from layers display frame information."
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_utils.h
456d555b1dc25dd1891ab7e38494d057b6bdf82e 05-Dec-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Calculate viewframe from layers display frame information.

Calculate view frame of each display from the displayframe of all
the application layers.

Change-Id: I9ba4076b7b4419bd3559417fad28b4e1de6acff3
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
b746f91fe3184bf7c3b6475d247d3cc16cc74646 26-Nov-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Reset layer-to-rotator map and fences on configuration failure

When a rotator or mdp configuration for a display fails, reset the
layer-to-rotator mappings for that display and reset the release
fences for the rotator objects used for that display.

Note: The rotator itself is offline and not tied to any mixer. It is
from the mappings that we deduce which rotator object was used for
layers of which display. Also we don't delete rotator objects held
for a specific display, since during stability runs, failures could
repeat each round and we end up allocating and deallocating memory
unnecessarily. The rotator objects will be deleted automatically
when not required anymore.

Change-Id: I9a67f02574be30be3b96b3575f60530cb1c89e10
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
39e492498664b6e9bbb23e7d40e95933c1131349 05-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "HWC: Use 2 VG pipes for YUV layer with width > 2048"
8d64e523e2f6c8f04cf859536c2c073d6193d70e 02-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: Add Color layer support in MDP Composition."
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_utils.h
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_utils.h
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_utils.h
9c8367e12edfdd0530bd0b10e498c1819056a0a4 19-Nov-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add deduction operation to Rect utils"
b81222638c632a44d894b15590c9c90b1adc959e 09-Nov-2013 Jeykumar Sankaran <jsanka@codeaurora.org> hwc: Add deduction operation to Rect utils

Seperate out rectangle deduction from the layer cropping. Update
layer sourceCrop and displayFrame after deducting the rect value.
This makes the function generic enough to be used by other
modules.

Change-Id: I587ac951357af823a1bf5e06c15ff47ac6a9c2a0
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
e511861c7d8c28d5dec95263e8957f34ce9f4ee5 29-Oct-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add support to smooth streaming feature."
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_utils.h
0d530c8c754e9ccb1f122ee2818d9d1d47d7d4da 05-Jun-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Add support to smooth streaming feature.

update the source video width and height set by the video decoder
for secure video smooth streaming usecase from metadata.

Change-Id: I73a3804d90557034604142481a232787dbc08f23
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
b80a98f092bd469121cb1b0b83b9e35a281f23a5 22-Oct-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/copybit: Handle "R/B swap" for RGBA and RGBX color formats."
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_utils.h
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_utils.h
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_utils.h
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_utils.h
f13681b96223de6b84461174aa08fe6d2959ced0 03-Oct-2013 Jeykumar Sankaran <jsanka@codeaurora.org> libhwcomposer: Make Rect utils generic.

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

Change-Id: Ie935302592ac8eb5f7cfaffe03ac49da077a290d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
77846b8bdb582d03273ccaf9be58f8544659cd10 25-Sep-2013 Prabhanjan Kandula <pkandula@codeaurora.org> libhwcomposer: Optimize layer crops when possible.

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

Change-Id: I6391a13b0501cb972b134f72b58514cb807c7613
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
292610b5e44c81667db5802195d5417977e355a6 14-Sep-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add needsScalingWithSplit for high resolution display."
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_utils.h
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_utils.h
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_utils.h
97c10c26c62d57a3fc31197fdd37d1bbfb8d1c2a 22-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> hwc: Cleanup patch for SideSync and WFD/HDMI downscale feature

Move block of code corresponds to SideSync and WFD/HDMI downscale
feature to a seperate function.

Change-Id: Ib07cec61abf3a7226bc4dd2ebb9f313519114fd4
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
5208cf1acefb3cb74ea3ba904b6bee9f800133da 29-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "display: Add BufferMirrorMode support for External"
5320999d7fe1c517ff6629b5c1165bbadf387359 29-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Perform MDP downscaling for WFD/HDMI Scenario"
d31b37c202cc65d0c6a2cc9616b754368597e49a 29-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "libhwcomposer: align rotator source buffers for tile format."
5365726ef260406513c4787b6ed253eda754370c 23-Apr-2013 Prabhanjan Kandula <pkandula@codeaurora.org> libhwcomposer: align rotator source buffers for tile format.

for tile format make the rotator source buffers aligned to 64 X 32.
This avoids rotator hang during source fetch.

Change-Id: I9e42788cc6f538b155c073028ce41bf48e1d9349
CRs-fixed: 473297
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
ad60172f872d4827299c20b937f2b02da1a19987 24-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "Revert "hwc: Perform MDP downscaling for WFD/HDMI Scenario""
cc30f59623dfc338567c7178f6f7ef96aa89438a 24-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "Revert "display: Add BufferMirrorMode support for External""
a11a948e71ee2e6941689acb440ce2ae66a4e1ee 24-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Fix locking."
effbd25d502916fcdebadd1d2b83988559434e79 25-Jul-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add BufferMirrorMode support for External

- In Buffer mirror mode, the output on the external should be rotated
based on the primary orientation.
- this is used for the side sync feature.
- buffermirrormode has higher precedence over external orientation
- Add binder interface to enable/disable buffermirror mode

Change-Id: Ibea0af9627d69b4d42453adc868b113d82613437
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
fea63d61337f1efeb2d1c7a7a4fafe472611704c 14-Mar-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Perform MDP downscaling for WFD/HDMI Scenario

On WFD/HDMI connection, if the configured resolution is less than
Primary Resolution, Display HAL does the following:

1. sends hpd notification to SF with primary resolution.
2. configures MDP pipes with configured Resolution.

This is done to improve UI quality as MDP has better downscale
filter options compared to GPU.

Change-Id: I33570c13016a35ed6c5d22d4c34dfe75b2c605a1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
e831288603d44b7e6133efae7dac9d0d117fd0e3 22-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> Revert "hwc: Perform MDP downscaling for WFD/HDMI Scenario"

This reverts commit 1291675ee44cadc234c4403cf1b0cfe70eadaf3a.
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
b89a73f96e83ea4fb1747c6fbec81af0d958cb70 22-Aug-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> Revert "display: Add BufferMirrorMode support for External"

This reverts commit 027d96511c3c5794f200ef1e8c3ef8f264a80d33.
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
60bd7a77779badae5d2e2eabb64ba6dadd820c81 22-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add support for plane alpha"
e509bd3c325dd88c44873873176c6255c2dfd09a 21-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "display: Add BufferMirrorMode support for External"
b679700652c618a195329023a73b01521a4be22b 21-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Perform MDP downscaling for WFD/HDMI Scenario"
23842b9f0cabf4e8ccbb7bda85a68579b4908df1 21-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: fix aspect ratio calculations"
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_utils.h
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_utils.h
f9b43cd974f838c678ae4dffa4a23b516360ff97 25-Jul-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add BufferMirrorMode support for External

- In Buffer mirror mode, the output on the external should be rotated
based on the primary orientation.
- this is used for the side sync feature.
- buffermirrormode has higher precedence over external orientation
- Add binder interface to enable/disable buffermirror mode

Change-Id: I1768dbfac239ae663927358ca9b8e5510b683385
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
88722217d313796d01a1afde4ae456f23ed562fd 14-Mar-2013 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: Perform MDP downscaling for WFD/HDMI Scenario

On WFD/HDMI connection, if the configured resolution is less than
Primary Resolution, Display HAL does the following:

1. sends hpd notification to SF with primary resolution.
2. configures MDP pipes with configured Resolution.

This is done to improve UI quality as MDP has better downscale
filter options compared to GPU.
This works only for QCOM WFD proprietary solution.

Change-Id: Ic20e837bf02c0f7b6718946e70b936f3a469fa7c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
23421d260e81161813b0d8a14dac30d4d89ed380 17-Jul-2013 Arun Kumar K.R <akumarkr@codeaurora.org> hwc: fix aspect ratio calculations

- Make aspectratio calculations independent of ext dpy w/h
- pass hwc_rect_t to getAspectRatioPosition function instead of
x, y, w, h
- overload getAspectRatioPosition func to return the upscaled
or transformed position for a particular display based on the
values set by SurfaceFlinger

Change-Id: I0be9b2b4b030bdd8e69dc1493dc8cbac31918c27
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
b1f967cdfb6a3e223ec8c45601da5640a8307228 01-Jun-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Add BWC policy manager"
f0a7a20029deae76ea13d90099a09cc5e540f6ba 29-May-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add BWC policy manager

Add a BWC policy manager that decides if BWC needs to be disabled on
certain conditions.
These conditions are statically determined. BWC might get used and
still fail (or cause failure of subsequent pipe requests) if SMP
blocks are not sufficient.

Change-Id: I805738911a8da7dfc6232c133c74ef844c3af5b1
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
42def420ce95ff338d3547d0305445a0786d37d8 20-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Don't permit rotator use under certain conditions"
7373b01342416475789bda78901a1a1cc146335b 17-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Simplify vsync code"
fa412e12943c16335c30bf81dbc2b0eef2118972 17-May-2013 Linux Build Service Account <lnxbuild@localhost> Merge "display: Remove default arguments for setMdpFlags function."
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_utils.h
3e76f19cb2c0441315ebe54110f7b452d2932f52 14-May-2013 Ramkumar Radhakrishnan <ramkumar@codeaurora.org> display: Remove default arguments for setMdpFlags function.

Remove default arguments from setMDPflags function to get rid of
issues hidden from the developer.

Change-Id: Ic78645675b0aaab284fe2d0de8fffb4b26beabc7
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
e2f07405d2d04aaf5577080761cd2b11a9e3c736 09-May-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/overlay: Crop x, y, w and h should be even for MDSS Rotator.

MDSS driver requires Rotator crop x, y, w and h to be even for YUV
formats.

CRs-Fixed: 485216
Change-Id: I9a066970f8cedaed7ba18534bb99edd1bcf421dd
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
3b9570a337a3115ad05dee3c1aa2ecc6f82f6ab1 10-Apr-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add support orientation control on ext display

- The required orientation on External can be set using the
properyt sys.ext_orientation.
- Values can be HAL_TRANSFORM_ROT_90, HAL_TRANSFORM_ROT_270
- According to the value set, the FB_TARGET for External will
be rotated and positioned as per aspect ratio on Ext
- For YUV(video layer) it just calculates the position, as the
rotation should be the source orientation
- This feature is supported only for low resolution panel.

Change-Id: I3d532ee0cb8dca3c37869537b55cd8044fd9047e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
e58b83d65c0e78769e603baefbf19005de5470da 29-Mar-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Use correct z-order in video overlay"
5bc7cb561519f724219bbe642405d4273e7982fb 27-Mar-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: Fix alpha downscale check for mdp composition"
5c937230915bced21130a3e5d129c4f470fd74d3 15-Mar-2013 Sravan Kumar D.V.N <sravank1@codeaurora.org> hwc: Use correct z-order in video overlay

Set z-order of video layer to 0 and framebuffer to 1 in case
of video overlay composition so that the blending takes effect.
Also set is_fg OFF for framebuffer.

Change-Id: I05f930074d265d690f29a1003b7c28077df89bbf
CRs-fixed: 458180
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
a6b4d9570f8cc6d57f8b4f724c06e6ec6877b4a4 20-Mar-2013 Sravan Kumar D.V.N <sravank1@codeaurora.org> hwc: Fix alpha downscale check for mdp composition

Do not allow mdp composition when any layer format has alpha channel
and needs scaling as the VG pipes are not supporting alpha downscaling.

In few scenarios, at the beginning/ending of animations Surface Flinger
passes few frames with flag HWC_BLENDING_NONE though it has Alpha.
When such layer passed to VG piple and if needs scaling , it results in
flicker. Hence, just checking for HWC_BLENDING_NONE is not enough.

Change-Id: I70fdfe4547df6fe7b2771ed8042f43aa4e07a71d
CRs-fixed: 462508
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
255e4ae008be4e95530e7153f4ce2d55c70a1e18 20-Mar-2013 Naseer Ahmed <naseer@codeaurora.org> display: Fix merge issue in jb_mr1

Slightly different version went on jb_2.5 which caused a
mismatch. Escaped testing because FB HAL is not used.

Change-Id: Ia7ee2fb80bf937499d372383641f71530dc1feca
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
ff148d4e5a75674193e26db0404a4b39ea4ddfc2 01-Mar-2013 Linux Build Service Account <lnxbuild@localhost> Merge "libhwcomposer: MDP composition for Higher Resolution panels"
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_utils.h
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_utils.h
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_utils.h
c59c27830019a78f668f6fb2e9518483587ce098 09-Feb-2013 Saurabh Shah <saurshah@codeaurora.org> libqservice: Add a client interface.

Add a client interface which interfaces with hwc.
qservice upon receiving IPC, provides a callback notification to the qclient
which does appropriate stuff in hwc.

In future, qservice can safely be even made a separate process with no changes
to exisiting code. This was not true earlier owing to the hwc pointer held by
qservice forcing it to be in the same process that hwc is in.

CRs-fixed: 452977
Change-Id: I05838c213f5d4606a6573693de1bacbc5876107e
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
0ae34e340382b0b3b767b844305db19e91257edd 01-Feb-2013 Arun Kumar K.R <akumarkr@codeaurora.org> display: Add support for overscan compensation for ext display

- Read scan_info sys file node to check if TV underscans
- Apply action safe parameters to avoid overscan on ext display
- Store action safe width and height ratio using system property
- Use these to calculate the destination position on the ext display
- Remove unsed ActionSafe Class

Change-Id: Id27e6fa20966fb13fc16aa7e237cacce8caeb642
CRs-fixed: 447367
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
6b90a0c838871669457f5f81361ec062feb7539d 09-Jan-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwcomposer: In Mdss,secure content policy applies to layer buffer

In Mdss, mSecureMode is never set, instead the secure content flag
has been set/unset on each layer buffer.

Change-Id: I3283533c11206e189ce70dbc84776b2cff3a909d
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
0d3aa44c38407285c63f00308d4b1572f7de34f1 08-Dec-2012 Naseer Ahmed <naseer@codeaurora.org> hwc: User Layercache for external display

Change-Id: Ibca92e1470ef72dc02d16d4ef8c05f1a1d2d485c
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
ee0d135b8a226b5844fd569fb166a90aa55bbba0 06-Oct-2012 Saurabh Shah <saurshah@codeaurora.org> hwc: external: Cleanup overlay objects on external disconnect.

Cleanup overlay objects and close fds when external is disconnected. Without
this, the external does not come on when cable connected-disconnected multiple
times when device is in suspended state.

Bug: 7150885 (part of the fix)
Bug: 7295979
Bug: 7150885 (partial)
Change-Id: I1ae2ce7220b9928dde332ce3644dbe671d25c7e6
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
ed68f0b13f56426735e7897519aa1c43072ceb90 27-Aug-2012 Saurabh Shah <saurshah@codeaurora.org> hwcomposer: keep secure content in an overlay when below skip layer

Secure content can not be displayed unless in an overlay. Since
getLayerStats marks all layers under the skip layer for framebuffer
composition, when there is a skip layer on top of protected content,
the protected content disappears since surfaceflinger doesn't draw
protected layers.

Acked-by: Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org>
Change-Id: I59dd5dffad08dbf578baa459f5f4c726b6674c83
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
b3c6e058ce1dbc689f27e7d7acbf1529d37307d8 26-Jul-2012 Naseer Ahmed <naseer@codeaurora.org> display: Get panel type from framebuffer

Change-Id: I3b7cb78d7c6019482ae698b30d553ca782f5022b
/hardware/qcom/display/msm8084/libhwcomposer/hwc_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h
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_utils.h