History log of /hardware/qcom/display/msm8084/liboverlay/overlay.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bce12990928d1c2d1e250271b43f5fb10174ecfc 13-May-2014 Saurabh Shah <saurshah@codeaurora.org> overlay: Remove usage of scale header

Remove usage of scale header and do not create or destroy objects.
the programScale() function exported out of libscale.so will
internally manage objects.

This frees up overlay from relying on scale.h which may not be
exported by libscale.so to a known location if only binaries are
shipped.

Change-Id: If6970541e2eb0ee2bdb907c73ed3534fc22e9dd1
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.cpp
314840035b55115a39d526cde009c678ccdacf40 05-Mar-2014 Saurabh Shah <saurshah@codeaurora.org> overlay: Support for returning pipe based on capability.

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

Change-Id: I0ab809662c0ad6297e19a44f39264ee929944d13
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
159568fb06ec2eaa1846e3aef51de95d7586a8df 15-Apr-2014 Tatenda Chipeperekwa <tatendac@codeaurora.org> hwc/overlay: Correct pipe priority comparison

MDP driver assigns pipe priority in inverse order. Lower the
number, higher the priority. HWC shall swap pipes if right
pipe is assigned lower number than left pipe.

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

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

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

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

Change-Id: I8b33d5ebd0f8765ee842bab128d8abd67a110145
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.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/liboverlay/overlay.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/liboverlay/overlay.cpp
18c3f73237eab2423455d717889a7b8a93d081a0 06-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc: allow DMA pipe in BLOCK mode for virtual dpy"
531ab83263f2678b1b406b65a0415655ef5e73b7 22-Oct-2013 Raj Kamal <rkamal@codeaurora.org> hwc: allow DMA pipe in BLOCK mode for virtual dpy

For portrait videos case on WFD, driver supports multiplexing
of DMA pipe in LINE and BLOCK mode.
Loosen the requirements to allow DMA pipe in block mode for
portrait case of virtual display.

Change-Id: I5821501f89b17bb2d29c425aee0a6c16b2a4783b
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
fc8e697b7355f921ab90e852a9517b378a0975e9 02-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "overlay: pipe reservation mechanism for overlay"
8d64e523e2f6c8f04cf859536c2c073d6193d70e 02-Dec-2013 Linux Build Service Account <lnxbuild@localhost> Merge "hwc/overlay: Add Color layer support in MDP Composition."
25a5fbfe77bcdba08934b0cb3081b6cf8021ba46 21-Nov-2013 Zohaib Alam <zalam@codeaurora.org> overlay: pipe reservation mechanism for overlay

This change provides APIs for this mechanism. In a case where
pipeid corresponding to the layer needs to be reserved, then pipe
session could be initiated for that pipe. This will ensure that
the pipe is not garbage collected, and is manually destroyed when
the session (or pipe requirement) has been ended. This change
also provides the api to locally allocate the dest for the given
reserved overlay pipeid.

Change-Id: I3fec3e26f69305c280395b7a92edf9e457398052
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
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/liboverlay/overlay.cpp
072cc46edd38e61fd21757c4725dbcef431bef08 27-Sep-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Add support for using scalar calculations

Add support for using scalar calculations from custom library.
The calculation will override pipe configurations if required on
basis of format, scaling, split display etc.

Change-Id: I53c73431b70b5b339ad09c19ac8792f0fc96aaaa
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.cpp
2f33bdfc88ba564dcad7e6f3698a3273b22cc41e 27-Aug-2013 Linux Build Service Account <lnxbuild@localhost> Merge "overlay: Remove optimization that prevents garbage collection"
4b64244ed3fc6dfab398dae4326a5e40fddc3718 24-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Remove optimization that prevents garbage collection

There is an optimization to not do garbage collection (and thus UNSET)
if pipe usage hasn't change, added during older chip time frames.
It worked then because, continuous overlay failures were not normal,
and on failure userspace didn't UNSET remaining pipes.

On newer chips, owing to bandwidth limitations, continuous overlay
failures could happen, plus now we UNSET all other pipes. Thus each
round if GPU gets used, the optimization infers that pipe usage hasn't
changed and does not UNSET pipes.

Also the optimization doesn't do anything useful than saving a few
loops, but is suicidal in current situations, so can safely be done
away with.

Change-Id: I33bd64a599d8ade337707301188c94cf8e6aac81
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.cpp
361900d9a618d2c4d2276a10ca76919214f6759f 02-Aug-2013 Jeykumar Sankaran <jsanka@codeaurora.org> display: External display refactor

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

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

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

Change-Id: I3c679cc4256363eeb70c5cf8bcaf5047b8a064c2
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
e856d4a5aa28bc6596398a0331c2e1703a343d7c 19-Jul-2013 Linux Build Service Account <lnxbuild@localhost> Merge "overlay: Fix crash due to small debug buffer size"
d6749ede0923b1660dbc45b9c0c93e48c83916ce 16-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Fix crash due to small debug buffer size

The debug buffer size is insufficient for newer targets with multiple
pipes. The code causing crash is enabled only if the PIPE_DEBUG macro
is enabled during local debugging.

We now increase the buffer size and also put some string operations under
the macro check for efficiency.

Change-Id: I4ad418d314fd8c7d374ccfdb0943dde44d968922
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.cpp
20ab3f49dbdb9482f456759cf2fed2264d1f01e2 23-May-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: Reset pipes on config failure

There can be frequent failures in pipe config on certain targets
owing to scare SMP blocks. In such cases, reset usage of all pipes;
forcibly configure them next time, even if params haven't changed;

Change-Id: I769513fc3513e292d9d9b7f126735841a7a8f493
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
6c00d487ca26b6ad864256248b0c5c59034d120e 15-May-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> hwc/overlay: If configRotator fails, mark all pipes as available.

If configRotator fails, reset usage & allocation bits on all pipes
for the given display to make them available for the current draw
cycle. It is required because if external is connected and Rotator
commit() on Video fails, all pipes which were picked-up by primary
are not available for FB update, hence it runs out of pipes.

CRs-Fixed: 483002
Change-Id: Ifd0d708e4ef8e3ddbe9d0531f6090539b8dcb249
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
a4ab187a1b29575833190181c3a653a4b9ab76de 02-May-2013 Xiaoming Zhou <zhoux@codeaurora.org> liboverlay: add the support for 8x10 MDP h/w core

Add the check for 8x10 MDP h/w version before verifying mixer information

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

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

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

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

Change-Id: Ibc0b8d284b5c6ed9291a7cfa7e7f221300a921e2
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.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/liboverlay/overlay.cpp
5d50448ce691782fde0c26ec8247b3d5d6b2de82 23-Jan-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add MetaData support in overlay path.

DONE:
1. HSIC(SPA) test.
2. IGC R/G/B channel test.
3. QSEED2 sharpening/smooth test verified through register value check.

Change-Id: Ia9472f489c013df22a3411eeaac3c8d1e6e22ac0
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
6e146950e61327d425750c1de36bfd70d526acad 07-Mar-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> qdutils: Retrieve MDP revision and pipes information from driver.

Userspace can retrieve MDP revision number and number of different
types of MDP pipes (RGB,VG,DMA) information from driver. Add target
specific flag as previous MDP versions do not provide this support.

- Make use of this information while maintaining PipeBook.
- Move PipeBook related functions from overlay utils to PipeBook.

Change-Id: I46578bb27e515c4b9525d90b6619c11d7749914f
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
46731b93be48272c1d4e662a6af3c1d80365eb06 01-Mar-2013 Sushil Chauhan <sushilchauhan@codeaurora.org> overlay: Reset allocation on all pipes, if commit fails.

If commit fails on a pipe, overlay hal needs to reset allocation
on all pipes for the given display. As MDP Comp fails, it falls
back to video and PipeBook logic does not pick-up those pipes on
which commit was successful. Driver sets new pipes and un-stages
previously set pipes (with same z-order). Pipe clean-up happens
and then in next round, PipeBook logic picks-up previous pipes
hence userspcae and driver remain out of sync.

Change-Id: I963fbdf89f346184688c5bcac2824606a5f7a0f2
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
c8d563c4df56d25bf6ac6f38fb6703150458737a 11-Jan-2013 Jeykumar Sankaran <jsanka@codeaurora.org> libhwcomposer: MDP composition for Higher Resolution panels

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

Change-Id: Ib7b1f822e3600eca81521294fedfe05e948b65c3
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.cpp
620fc1f5f84e968c2e9b803e8580ee718c3c3f65 03-Dec-2012 Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org> hwc: support WFD external display

Change-Id: I3d24ff1757e79c4b41ff6c6db17d0274cd665671
(cherry picked from commit f8942672226a7af26218aa8d325c1677ae2b83dd)
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.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/liboverlay/overlay.cpp
99052c13b84efd00bfc1083e454d660a31cbf38a 07-Sep-2012 Ajay Dudani <adudani@codeaurora.org> liboverlay: close all the opened pipes after framework reboot.

b/7147557

Add initOverlay() function to close all the opened pipes when
Surfaceflinger process gets killed.

Change-Id: I9c65a61c81f9c81198f1076d6cbd27933b164c05
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
f621867a9f77ca62c71b65cbdc3cf8d8877d2b32 01-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> liboverlay: Remove waitForVsync, getOvPipeType APIs

Remove waitForVsync support.
Vsync will be done explicitly by clients outside of overlay.

Remove support for the unused getOvPipeType API.
Remove redundant state checks in class Overlay

Change-Id: I8b35d7868bb46b0be755833dc8f28a158d3ff104
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
/hardware/qcom/display/msm8084/liboverlay/overlay.cpp
79f8c83e7613b3058814499a75dde323a3f6aed8 01-Aug-2012 Naseer Ahmed <naseer@codeaurora.org> overlay: Refactor State Transitions.

Refactor transitions by templatizing to have default behavior for most cases
and full specializations for specific cases.
Partial specialization of functions is not allowed, so create templatized
intermediate functions for those use cases.
For ex: if we have 8 states, we don't need 8x8 transition handlers.

Add and define OV_DUAL_DISPLAY state.
Add a GenericPipe for subtitles to OV_2D_VIDEO_ON_PANEL_TV state.
Add a 2D_VIDEO_ON_TV state and its transitions.

Change-Id: I064cf813c43c3e3736800fbd465c6f1aa9b3a2d3
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
/hardware/qcom/display/msm8084/liboverlay/overlay.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/liboverlay/overlay.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/liboverlay/overlay.cpp