* Perform is used for more than HDMI, and without this set on devices
that don't have HDMI enabled, crashes result.
Change-Id: I9029892a12ab09ffb66b3560f796ffb99ea57460
The calling function logs the appropriate error
Change-Id: I41f446b1495e23995aff4778f1c1a488d83537fb
CRs-fixed: 361831
(cherry picked from commit 81fd358ee8b70946b306417064d104fa3341d6fa)
HDMI should be updated only in conjunction with primary.
Which means on a resume from suspend (which is treated as
cable connect in HALs) we need not draw ahead of primary.
A good way (already existing) is to call invalidate() on SF
on cable connect so that primary is updated and only then HDMI,
by a trigger from disp_loop thread.
Change-Id: I7d5268b2f0e27adb04aade757c36483cdfc1333e
CRs-fixed: 335763
Conflicts:
libgralloc/framebuffer.cpp
libhwcomposer/hwcomposer.cpp
This change introduces API's in gralloc to allow clients
to synchronize with framebuffer posts.
CRs-fixed: 348953
(cherry picked from commit f81de75b1adb78018c0bd54b7f27901ba467defd)
Conflicts:
libgralloc/framebuffer.cpp
libqcomui/qcom_ui.h
Change-Id: I98b6a2b3243f520138cb5d1c76493cdfa3af60b6
- Add perform function to framebuffer and HWComposer HALS
- This will be used communicate custom events(external display,
video overlay, orientation, etc.,) to HALS
- remove setActionsafe API(not used)
CRs-Fixed: 341947
(cherry picked from commit 31999628ddd4a6c0996e22e9fbf1f311d6efb160)
Change-Id: I221f2ab49770e8db7602bb1881ef9972567b7780
The GRALLOC_USAGE_PROTECTED flag that was used
earlier for content protection is also used for
some other use cases such as disabling of
screen captures. Define this new flag that
is explicitly used for allocating secured
buffers for DRM.
Change-Id: Ia33f79fa0dea7f2f16dd320f267203e6173af48e
CRs-fixed: 348454
(cherry picked from commit 440a996f13be732895524412762793f109681c11)
calculate the yresolution virtual according to the hole
introduced by 4k alignment of frame buffer.
CRs-fixed: 325134
(cherry picked from commit 464443a5d3b216e06e644d0e41c234490c3c46c2)
Change-Id: Id7a93e11e2f3c1d52a26ec3669a9d710c369bf41
Align framebuffer size and offset to pagesize, calculate
framebuffer size based on this alignment and use it for
mapping framebuffer in userspace and page flipping.
CRs-fixed: 332175
(cherry picked from commit d89b0493b4651fbaaeccccf0ae880cbf1a3a3479)
Change-Id: I7840f7f3c5c42852087cb9df6ae85680c971c601
- check if the target supports true mirroring in fb_enableHDMIOutput
instead of framebuffer HAL initialization.
- We check if the target can support true mirroring by using the RGB1
pipe, with new driver changes, RGB1 pipe is allocated only after
first display update.
- Hence moved this call to fb_enableHDMIOutput
(cherry picked from commit db5225cc97b7c42871d5674702e1ca48a5a27904)
Change-Id: I9838fb0bfe6d49c5de3a7b1f4c116bd93c7b375c
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Fix heap corruption in overlay clients, caused by missing
compilation flags. All libraries using overlayLib.h should
have flags used for conditional member declaration in overlay.
CRs-fixed: 342959
(cherry picked from commit 42120b29500560ebedbd897e2e7adf7369eb0a21)
Change-Id: Idf613861c4dc67e96ecadf7ce7e37472cb4e4daf
-Introduce utils folder in qcomUI lib for all Qcom
implemented utility classes.
-Move FPS calculation profiler class into utils
folder.
CRs-Fixed: 342060
(cherry picked from commit e9469022741642cfd8483839de96e809f4d94f1e)
Change-Id: Ie0af0c0cc10b5304814b4f26aed581ea93ce7f5f
Layer buffer handles that fail gralloc validation must be removed
from hwcomposer's register of previous bypass and overlay handles.
(cherry picked from commit 18c7f1951018b6632bd6e1a4957194c01423b6ee)
Change-Id: Idaaf3557b05adb5b3e938e9cd46dac5b104b729e
CRs-Fixed: 347157
- debug.gr.swapinterval is now deprecated. It has been replaced by
debug.egl.swapinterval.
- Do not disable MDP bypass if we have ASYNCHRONOUS layers present
and debug.egl.swapinterval=0.
- Do not lock overlay buffers if debug.egl.swapinterval=0
Conflicts:
liboverlay/overlayLibUI.cpp
Change-Id: I004a437397570ad62b589bb68db2b9815917f551
The flag GRALLOC_USAGE_PRIVATE_UNCACHED can be set in the
usage to allow it to be uncached. If not set, the buffer
will be cached by default.
CRs-fixed: 341196
(cherry picked from commit 6232816aadd311dbb57b714c7c0a4073d3ddc7f7)
Change-Id: Ic10677d105328702972dd69581b919c984d17fe9
- clearing PRIV_FLAGS_NOT_MAPPED if
GRALLOC_USAGE_PRIVATE_DO_NOT_MAP flag is not set
so mmap can be skipped.
Crs-fixed:342782
Change-Id: I01de82dedf08c8c41db179789cc3a9927aa7e221
(cherry picked from commit 67215121cdff9df78d6a80cda442a6bfc7aa27b3)
this brings us inline with cafs ics_chocolate branch
per: f696608c9d9e3b6b60a92423338f08d59d19d746
Change-Id: Ibaff05220e7d7f0ddd1b4d7507626a38d717340c
Add support for external-only display. Layer buffers
marked with GRALLOC_USAGE_EXTERNAL_ONLY will be
displayed on external panel only, if available.
In addition if the layer buffer also has the flag
GRALLOC_USAGE_EXTERNAL_BLOCK then only that layer
will be displayed on external (During suspend).
When this mode is on, the default mirror mode for
external is stopped.
Conflicts:
libhwcomposer/hwcomposer.cpp
Change-Id: I8ea2920384c5b68311ee3fe00707d01ab6568b52
For secure content the MM heap should never be
mapped in userspace. Add a flag to avoid
doing this for rotator which does not need
userspace mapping.
(cherry picked from commit 8d9f2fa336564d5a021dd932f5619b5f389d5fad)
Change-Id: I17d1faa40859e261518d928089f2ce86084d31fd
CRs-fixed: 332402
- Changed the aspect ratio of UI on HDMI based on the aspect
ratio of the primary resolution.
- Remove the default values for action safe region.
Change-Id: I596611f8b01e6e1c1007ad7e6c323ea0ea710ec9
CRs-fixed: 323358
(cherry picked from commit b3c2e7f9d68db550f280ed60e37e7f4ee2a73058)
Conflicts:
liboverlay/overlayLib.h
Modify the overlay APIs to use only one parameter to set the overlay
flags, instead of adding a parameter per required flag.
Change-Id: Ia753e10b9e2c7a5ee1aabfd48f30c9b7583beaa1
(cherry picked from commit 5535a95c8f69891090a81dbd8ccdc11aa889a42c)
- HDMI has priority over Wifi display, if HDMI is connected during
Wifi, close the session for Wifi and start one for HDMI.
- the enableHDMIOutput parameter externaltype - HDMI/WIFI/OFF
Change-Id: If2cd9143fc7a953db49f38a6c166f9425ba5266e
Conflicts:
libqcomui/qcom_ui.cpp
This reverts commit f2dbabe786.
This change is not needed any more because we are caching the MDP pipe
contents when closing the channel. So no need to wait for postFB finish.
Change-Id: Ia6f01c33953762cb7a97e0b2b795d9afeb60d2d9
(cherry picked from commit 441f1824593bb12a97508b426b597a16b35091e6)
This function can be used from other components
to get the aligned dimensions and size of the buffer
given the width, height and color format.
Change-Id: I8d7532a262194f3883bf0f5166e806e0971392e2
Conflicts:
libgralloc/gpu.cpp
It is possible to use this object from multiple threads
and there could be a race between a failure in one thread
and another method call from a different thread which would
result in system calls being called with an invalid fd.
(cherry picked from commit 560ca6e8feb4f52c9aade34fa7cfcfed55288083)
Change-Id: Iefb94ba1ee7177ab20600bee4374daf8e818bdb9
Several ioctl calls were returning -1 instead of -errno,
which may confuse upper layers, especially when the error
is -ENOMEM. Also move some existing "err = -errno" calls
to the top of if statements so that errno cannot change
by libc calls in the error handling code.
(cherry picked from commit a8eda532452651eb1fbae419319455de2a078ef0)
Change-Id: I181f98d5a261e8e3e1b3f6ecd3ba288e7b4b5607
A Google modification to eglCreateWindowSurface was
causing SurfaceFlinger to set its swap interval
value back to 1, regardless of the value set in the
debug.gr.swapinterval property.
This patch modifies the fb_setSwapInterval function
in gralloc to check the debug.gr.swapinterval
property and not change the swap interval if a value
is set there.
CRs-fixed: 329524
Change-Id: I80463c1209addbff227db7832dd0023e94eb06ac
The mandate for the width and height to be even is only for the YV12
format. Add this check only for the YV12 format.
Change-Id: I1e8d2de174ecf2e62cd33cc40dfd8e97d70a3a59
If an uncached buffer is needed from gralloc, the
client must use the flag GRALLOC_USAGE_PRIVATE_UNCACHED
Change-Id: Ie3fcfee1071a87fa0440600f4ca3e2d7ff6243ed