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

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

Change-Id: I0bbfbbb2c038bb721f7c5a6b901438fdc767dc97
Bug: 16576263
Acked-by: Ken Zhang <kenz@codeaurora.org>
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
2cacc353e699139eb7966576fe33f48e74c09e26 15-Nov-2013 Jesse Hall <jessehall@google.com> Copy virtual display FB to outbuf even with no app layers

Bug: 11676429
Change-Id: I971a2374baf03354afb5918b84f6fd68e1ff29c0
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
2d3fc4ca3f32c5621b15cc7f7b7f895e29f9a09b 07-Nov-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Drop alpha from writeback

The alpha in the writeback is unused right now. Force MDP to use
RGBX for composing writeback.
Bug: 11479817

Change-Id: I87e3fff962283af05a07d28698811a4402f2606c
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
36c325dbfbf4b305266b0bc8e43e04b080be6b3f 07-Nov-2013 Vineeta Srivastava <vsrivastava@google.com> Merge "overlay: writeback: Do not create writeback instance on dumpsys" into klp-dev
22af1a294d360a5e92cf3e2e3626b5f332166bbe 30-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: writeback: Do not create writeback instance on dumpsys

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

b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: Ic8ea5ddd8d05203234da7c7dfccd2c2b497e62f7
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
8f1c93c4d5c2feb515cde2a6ecc2309188002cbe 05-Nov-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: virtual display: Use outbuf handle width to configure xres

Use outbuf handle width to configure display xres, since that would
have the necessary alignment. The outbuf is guaranteed to be valid
by the framework during hwc_prepare.
We use the framebuffer layer's display frame to obtain the actual
width.
For example, the actual width could be 720 but the aligned width
would be 736.

Bug: 11430248
Change-Id: Ide221b0c7ada5eaedc7b0355c37e536e64c39f65
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
103c736926cace1ff5a6d154715b375ff1018f8e 29-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> overlay: writeback: Add dumpsys info

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

b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: I808ce67aae16e27c3aa6d6db45983929b1386b69
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
30f8aae831920b8bbdca1fbb199ac88973bf9af4 30-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Do not use fb handle in hwc_prepare

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

b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: I5c494a74a807d3a52a1c88257494b58c583700f5
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
b434b98715e4bfe9b8bfb0ac34f33e695aa9891d 05-Oct-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Add support for virtual displays

Add support for virtual displays in hwc.
The availability is detected when a valid list first appears.
Need a valid framebuffer handle to configure writeback based
on aligned dimensions.
Force full GLES virtual layers to go through HWC based on
boardconfig flag.

b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: Ice26d47022c8582a6d30503cfa5c918057046320
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
a92335e734f3c09bf51438f422d36fc3aa8ed6d2 27-Sep-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Do not enable HPD.

With devices that have slimport/MHL, the hotplug detection takes
place within the driver at the time of USB connection. Disable
explicit enabling of HPD from userspace.

Change-Id: I667339bb007917ba25086d77f37d49b44362c0c5
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
d79de9b08a0d1affb272dcfb37062bd42c6540e8 09-Sep-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Add additional trace points

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

Change-Id: If0abb438da96d3507fb3e2a42bcb8d8b4734fb8f
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
83f9f73c45da200a06244749e4f21a632ecc01ba 30-Aug-2013 Jesse Hall <jessehall@google.com> Unrevert "hwc: Bump up version to 1.3"

This reverts commit ad17afc8bcda6c2d6006a3b005defb011042aaac,
which reverted commit a5b5aebd86ed595990435692e7e7ede31aeb63dc.

The original change exposed a bug in the platform but wasn't itself
buggy; the platform bug has now been fixed.

Bug: 10443969
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
be984c968c2ff350ff9943d775fcfdce620ce8d5 29-Aug-2013 Vineeta Srivastava <vsrivastava@google.com> Merge changes Ib0ef6b1b,Ie0e266ee,I96365b4c,I595547dd,I33bd64a5,I14adf2df into klp-dev

* changes:
hwc: Enable sync-pt for rotator on B-family
gralloc: Move getAllocator in unlock
libhwcomposer: Add check for MDP comp dump
hwc: Fix locking.
overlay: Remove optimization that prevents garbage collection
hwc: Change log message for AD feature
01f9a13e06f5b25788dfb042d20583ce2f974579 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().

Conflicts:

msm8974/libhwcomposer/hwc.cpp
msm8974/libhwcomposer/hwc_qclient.cpp
msm8974/libhwcomposer/hwc_uevents.cpp
msm8974/libhwcomposer/hwc_utils.h

Change-Id: I595547dd5a393a8af6cd8c9297d50793b715e658
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
ad17afc8bcda6c2d6006a3b005defb011042aaac 27-Aug-2013 Jesse Hall <jessehall@google.com> Revert "hwc: Bump up version to 1.3"

This reverts commit a5b5aebd86ed595990435692e7e7ede31aeb63dc.

That change added support for float croprects, but didn't add support
for virtual displays. SurfaceFlinger crashed when virtual displays
(including wifi display) were used because HWC didn't behave as
expected.

Bug: 10443969
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
87838778cdb83d1f8d5c708865714268bc8ea167 27-Aug-2013 Naseer Ahmed <naseer@codeaurora.org> hwcomposer: Deprecate setupBasePipe

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

Conflicts:
msm8974/libhwcomposer/hwc_mdpcomp.cpp

Change-Id: I5118b8b41e4f864f8c73a115398b13bffa1f3383
Acked-by: Jeykumar Sankaran <jsanka@codeaurora.org>
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
4f4c03bfb459159490795165a191e01c564e5788 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.

Conflicts:
msm8974/libhwcomposer/hwc.cpp

Change-Id: I909d35b2a8c33059b34b65943ccbbc08650461db
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
a5b5aebd86ed595990435692e7e7ede31aeb63dc 17-Aug-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
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
fcd23276f6846a81a107c52372a9a29cf5dd8b4a 15-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Cleanup secondary configuration variables / helpers.

Make secondary configuration status as an attribute per display.
Replace the unused helpers related to display's active state with
display's configuring state.

Memset display atttibutes to 0 at bootup.

Change-Id: Id964eba9d268c5a0daa7a9f187a542db36f90362
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
78d42591f4cff5d783c631ede5157757278a45c3 14-Aug-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Hold blank lock for the entire composition cycle.

Hold blank lock for the entire composition cycle, since
a blank call may delete objects required by hwc_set.

Change-Id: Ie9050adaac00d8f769835152d0ecfc1721aa4e8c
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
d80659c540b719660c7af9f530445268bc409db6 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.

Conflicts:

msm8974/libhwcomposer/Android.mk
msm8974/libhwcomposer/hwc_utils.cpp
msm8974/libhwcomposer/hwc_utils.h

Change-Id: If5520f9dc849de3189c9f9ed4e9072c8f8f760e1
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
0ddfa307452987336b5ec22967ba701c221f8402 18-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Fix locking in external connect and composition.

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

Locks should be held by composition for the entire duration.

Change-Id: I703f69f156c665bf422613567c00aae340f3ee12

Conflicts:

msm8974/libhwcomposer/hwc.cpp
msm8974/libhwcomposer/hwc_uevents.cpp
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
63740d39c9a8140e7a26f24e8069e75f73d1a32d 23-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: Configure framebuffer before other layers.

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

Change-Id: Ie7a6903d1b9fb98b308689c81522571449bf2e8e
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
2e60af57ad7146a776ac535c702f1b0183dd85c8 11-Jul-2013 Saurabh Shah <saurshah@codeaurora.org> hwc: wfd: Fix locking on pause resume events

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

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

Change-Id: I0f2f0953a7ab322128d044ca3458e359da4e575e

Conflicts:

msm8974/libhwcomposer/hwc.cpp
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
5ceb9c6a763418d5e0cf5da4e74b7a7c733fb4b1 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/msm8974/libhwcomposer/hwc.cpp
742ad624e555511b687879e1b3256ee21bf7f9bf 09-Jul-2013 Naseer Ahmed <naseer@codeaurora.org> hwc: Don't lock eventControl for vsync events

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

Change-Id: I2bf18ae9235f8dd428a495a9a23af7f00f34ff1d

Conflicts:
msm8974/libhwcomposer/hwc.cpp
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
04af919f7d16572b16a91d8b681afe42386fb4e1 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

Conflicts:
msm8974/libhwcomposer/hwc_fbupdate.cpp
msm8974/libhwcomposer/hwc_utils.cpp
msm8974/libhwcomposer/hwc_utils.h
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
513ddc2124abf90c63af41999201f0d2031af0c8 12-Jun-2013 Vineeta Srivastava <vsrivastava@google.com> Splitting hardware/qcom/display chip specific.

Moved msm8960 specific code in msm8960/ directory.
Moved msm8974 specific code in msm8974/ directory.
Updated Makefiles to point to correct header files.

Change-Id: I0623022f324be0ae42571660074f16afa1f71df5
/hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp