Age | Commit message (Collapse) | Author |
|
This patch removes the workaround introduced by the patch:
2cb90b8 hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabled
Basically when the number of layers differ from the ones handled in the
previous frame, we don't trust anymore the region data and we need to
calculate it again. If the layers are the same in number and there has
not been a geometry change the region data can be reused for the same
frame
Change-Id: I4421ca5c7bc1b556cd54de888865ed83e957b919
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 3789ed446d031fbec5fd52ddc0dcde759129ce19)
|
|
It is possible when the HDMI cable is plugged in a geometry change
doesn't happen, hence the layers handled by the DSS and the
regionizer differ, since the dirty region counters are only reset
when a geometry change happens, this causes them to enter into
an invalid state leading to visual artifacts.
This fix compares if at any given time, the layers handled in the
regionizer differ in number from the previous frame, if that happens,
the dirty region counters are reset for all the layers.
Change-Id: If756b526cf52d66612729d7367c26d131c8a1ac0
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit f683df8b15dcc60d497ca1ef9e0bad2bf280fb5b)
|
|
When the ext display transform is different from the FB,
the mirroring/cloning is achived with the help of back-buffers,
which are allocated in TILER2D space to get the required
transformation. This patch adds support in HWC to detect
the ext display transform and allocate back buffers from
TILER2D space and program dsscomp accordingly.
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
hwc: make file fix for local include path
the local include path for ion is changed from base level
to local. this is required to allow compiling at hwc level.
Change-Id: Ie1e9e6688652fdc8aa496dfc367d385aca362a27
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
(cherry picked from commit 5d7b83b7ee03be090076d9aefd40dac294377aac)
Conflicts:
hwc/hwc.c
|
|
A region that is pixel wide is in the top-left corner of the screen
(0,0,1,1) makes the empty_rect function to return true, which
is wrong since the region is not an empty rectangle.
Since this function is being used in the moment the blits are
generated, the regionizer thinks the region is empty with no
intersections leading to error messages.
Change-Id: I5f838008a39dcd469e325cb3fdd834408aa91291
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 7863b0c86de6bae53e2afb4294b32f2f9840f2b8)
|
|
Rebased from p-ics-mr1:
8323a55 hwc: publicly define omap specific usage flags
Change-Id: I3bd14ca2d88192299de731c49eba15a90084b3fe
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 8a5ba6d5b8b3ff90f8e29b4ed8c407e032c53235)
|
|
The dirty region handling doesn't work properly when only one
layer is being blitted. The problem was the screen dirty state was
only set to zero when one layer reaches the dirty count to zero. In
case only one layer was being blitted the dirty region handling
is never triggered making the empty areas to be cleared on every
frame even if it was not needed.
This patch removes the screen dirty flag and instead introduces
a dirty count for the background and layers with the clear fb hint
as well, since we don't care about the handle, the dirty count
is decreased on every frame, in this way the dirty region handling
sees the background and layers with the clear fb hint as any other
layer.
Rebased from p-ics-mr1:
11e5f7e hwc: rgz: Fix dirty region not working when blitting only one layer
Change-Id: Ifbb111ce7738cd097e74ac01e2c48f3994857416
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
Conflicts:
hwc/rgz_2d.c
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit a79d46bbd0438140fb6500d6243b5e3aa392068b)
|
|
When the hdmi cable is connected a hotplug event is triggered, this
forces the DSS to exhaust the pipes available in most situations
so the 2D blitter is used to handle some layers.
When the cable is connected/disconnected it's highly possible a
geometry change doesn't happen right away (or it may not happen)
leading the region data to be invalid and not recalculated for an
instant, this ends up in sending to the blitter incorrect src
rectangle origins and sizes, most of the time this leads to L3
errors making the system unstable and unable to recover.
Rebased from p-ics-mr1:
104249c hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabled
Change-Id: Ie1675d0a0dd03e69fac80dd51cee006fcd6f8791
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit d5907246f792b70e82db195b1c5fb5c1c5be9d5d)
|
|
There is a bug when rotating NV12 buffers with the GC driver,
disable this for now until it is fixed.
Rebased from p-ics-mr1:
7c46d80 hwc: rgz: Disable NV12 rotation support for the regionizer
Change-Id: Ia3add3266bd308fec34cb2b9140146d1da07f7ec
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 86e65069ed99621c0b9d6c46096bb0bf2fbe97ef)
|
|
Enables the regionizer to support rotation with Bltsville.
This patch doesn't enable horizontal/vertical flips yet.
Rebased from p-ics-mr1:
bd6d0b5 hwc: regionizer: Give support for rotation with Bltsville
Change-Id: I595debea076727ef2c442d7544c1e355aef04808
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit eb5940af48a3b9bd029a5c70d7838d89a03c302b)
|
|
Regionizer adds the BVFLAG_ASYNC to all the blits, except for the
last one which is made synchronous. The last blit acts like a
fence to let the previous asynchronous blits to finish first.
Support in the GC driver must be present for this feature to work
properly.
Rebased from p-ics-mr1:
822ec12 hwc: regionizer: Add asynchronous blits support
Change-Id: Iec32de51e7d0b95d1b780e60ed4848e8daf7977f
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 75bcf14b2937c1edbe83834ae93371995dd64b0f)
|
|
+ Removed BVBATCH_DST since the destination parameters (buffdesc
and geometry) are not changing while performing blending within
a batch.
+ Removed BVBATCH_SRC2RECT_SIZE, the rectangle size never changes
while constructing blits within a horizontal subregion.
+ Added BVBATCH_SRC1RECT_ORIGIN, it's highly possible the src1 origin
changes from a previous blit within the batch, a good example is the
volume pop blended on top of the widget and wallpaper layers in the
Android homescreen.
This change doesn't address batch flags while scaling, those will
be revisited later when the GC driver supports it.
Rebased from p-ics-mr1 (also cleaned up commit msg):
93b69ce hwc: regionizer: Batch flags fixes
Change-Id: I9b85dce832b391e347aab93800e0b22e67072227
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 29136475929f69250818d96cf106d28ed4e1cd80)
|
|
Allow the regionizer to ignore (and clear if needed) a region
with a layer requesting to clear the framebuffer with a hint.
This mimics what SurfaceFlinger does when the HWC requests to
clear a layer area with transparent pixels.
Rebased from p-ics-mr1:
3c9a753 hwc: rgz: support layers with the HWC_HINT_CLEAR_FB hint
Change-Id: If61a4f50d0315eb23119d7b97b0f2cb5f994806f
Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com>
(cherry picked from commit 60d9c93b53b7133aca51d7a125f5d14666a772fe)
|
|
Fixes the following issue : when non-blended layers are composited
via overlays and blended layers are composited via FB, the idle timeout
does not yield invalidation and re-composition of the layers via SGX
resulting in the increased power consumption when the UI is idle.
The change simplifies the idle timeout logic as follows : SGX only
composition is forced after the idle timeout.
Rebased from p-ics-mr1:
4573812 hwc: fix and simplify the idle timeout logic
Change-Id: I37216892536a6900b5fb58c0e6ac616ef3f3ef72
Signed-off-by: Dima Svetlov <svetlov@ti.com>
(cherry picked from commit d62680abaf25e807070c2ba236cdc2d0cc935408)
|
|
Rebased from p-ics-mr1:
e2479b9 hwc: pass nv12 surfaces to gc320
Change-Id: I3f161273aa40da2ced869b7b60f2e9fe76cac3bf
Signed-off-by: Craig Stout <craig.stout@ti.com>
(cherry picked from commit ca5f8d664221423dd005f9333adf530aac51bc75)
|
|
Currently can_dss_render_all() doesn't consider docking mode for
decision making. In case of rotation on HDMI, current logic expects all
layers to be NV12 which is not true if in docking mode.
Adding logic to consider NV12 to be the dockable layer.
Rebased from p-ics-mr1:
6a5358f hwc: fix can_dss_render_all decision logic for docking mode
Change-Id: Ib56c88ef45293eb87e4db9bc1faa956ea96a533e
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
(cherry picked from commit c739886ef430dbb231357038410fbde6990bb19f)
|
|
Modified HWC hdmi best mode selection policy to consider Interlaced
modes as well.
DRT#OMAPS00262232 - HWC hal doesnt have support for interlaced timings for HDMI
Rebased from p-ics-mr1:
a11e07b hwc: Added Interlaced modes to the HDMI best mode selection logic
Change-Id: Ie7bbe55c5694c53cc669c39ec125a72f723c3920
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
(cherry picked from commit 3e8c057eac76d6a28abfb2cda9698b022b7328cc)
Conflicts:
hwc/hwc.c
|
|
This is a cheat to discriminate between blit layers and real overlay engine
layers in dumpsys SurfaceFlinger.
This patch is benign for an OVERLAY type layer the hints field should have bit 1
set when using dss overlays, and clear when it was blitted.
Ported from p-ics-mr1:
1f4cf8b hwc: use triple buffer for overlay layers
Change-Id: I7a9afed74c0b2e44bf08d3611775be28530378a1
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 407ca87c9557dfd381f7ce765f080503722e7fd7)
|
|
Ported from p-ics-mr1:
93f38c6 hwc: Add HAL_PIXEL_FORMAT_TI_NV12_1D
Change-Id: I6ec62cec7590b90fb58cddfbfb5d253b8a7b469e
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 7819b77e1a264805195cfa84c6da22de97b8bfe7)
|
|
With the SurfaceFlinger/GraphicBufferAllocator and gralloc HAL state following
the HWC overlay, HWC state often scrolls off the screen. Make the layer dump use
fewer lines.
Ported from p-ics-mr1:
037dac8 hwc: save some dumpsys log real-estate
Change-Id: I15d5e411056c57721105ca47b5deddfb496392d4
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 8e1337a74223aef92748843b80d0886f4c4f3a29)
|
|
Change-Id: I7033d847621f748d0263d9004cb32f4426c115ef
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 1726714f2c75a37bf1c904e32d6c45eb68246ec5)
Conflicts:
hwc/hwc.c
|
|
The padded NV12 format was never used.
Change-Id: I4796c71518edb3cd1c1a5daeed2a0045a45ca539
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit e3fe422bac3fba2f72c96b422c5d5a5e9fe04e8d)
Conflicts:
hwc/hwc.c
|
|
Use setprop debug.hwc.showfps 1 to show the average frames per second
displayed over the last 8 compositions.
debug.hwc.showfps can be set dynamically, the overhead of accessing Android
properties should be minor i.e. an access to an mmap'd() file, so this
should not be a significant overhead to composition when disabled.
Reworked from p-ics-mr1:
9ea53ce HWC: debug.hwc.showfps Android property shows current FPS
66a531d hwc: enable debug.hwc.showfps to be set dynamically
Change-Id: Ie2303e6ae9e73f38cf563d6ed6079928054e4c16
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 69400d18d6cfc7b2b55b5a563b1fd4387887ded4)
Conflicts:
hwc/hwc.c
|
|
Let NV12 layer be rendered with overlay even when force_sgx is used,
if it is upscaled by more than a configurable limit (default 2x).
This will limit video twitching because of SGX limitations
when scaling NV12 layer.
Rebased from p-ics-mr1:
3eb31b9 hwc: Don't force upscaled NV12 layer to SGX when force_sgx is used.
Change-Id: I114633447c2d54677dce45e047c5a121e200185f
Signed-Off-By: Rajesh Vandanapu<rajeshv@ti.com>
Signed-off-by: Lajos Molnar <lajos@ti.com>
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 2b826707289cd0052357187311d8d7bc1d5572a5)
Conflicts:
hwc/hwc.c
|
|
When the protected content is present, we need to have minimum two
external overlays to achieve mirroring.
Rebase from p-ics-mr1
76f23bf HWC: Fix for max_hw_overlay calcualtion during mirroring mode
Change-Id: Ibf95232e5f5d3b11eb05b4b4506fceb118dbfdd9
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit cb9e6c8c4a37e5e1835cec8a10c774bbcc156637)
Conflicts:
hwc/hwc.c
|
|
On hwc open xpy for lcd is calculated. In case values in mm are not
provided (=0) the result of xpy is NaN. That influences further
selection of external display resolution and calculation of video
dimensions for external tv.
Rebased from p-ics-mr1:
8d481bf HWC: corrected calculation of lcd_xpy
Change-Id: I3494bd9c7bd797a27e985b474d6390606bb4106d
Signed-off-by: Oleksandr Lugovyk <x0158320@ti.com>
Signed-off-by: Tony Lofthouse <a0741364@ti.com>
(cherry picked from commit 94970d78bf886d766ef37ec29b935c1edb34090d)
|
|
This patch fixes the bug in the logic to check the DSS downscale
limits for width. The code should return false incase the downscale limit
is greater than the HW supported limit and the decimation limit.
It was returning true earlier, because of coding error.
Rebased from p-ics-mr1:
1d9d4dc HWC: Fix while checking for HW scaling limits for manual panels
Change-Id: Id62494feaaf778f62ed29e170dece647d48fd28a
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
(cherry picked from commit 0b72db0376f805b48574e0192d2d3a020550a957)
|
|
It's now generated by the Android.mk in
vendor/google_devices/phantasm/liboemcrypto
Change-Id: I63e3293f38bd822d22563b50e1b8485dbcfc54cc
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
Change-Id: I8390a3422c6ff8fa4bc4c0e6a11c51a884aba3cb
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
Change-Id: I0cf5da4d3b5653244b8ffe9178d45c3582b48897
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
Change-Id: I1b6fbb3b897e8caa80c605dcace80114b58e4d40
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
Change-Id: I4b65db028d9f53635f193c74662a765408379e65
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
New ones from TI mainline and some that override/replace
those in bionic and system/core. We use LOCAL_C_INCLUDES
for projects that need these headers instead of the
AOSP ones (used by prime) in bionic and system/core.
Change-Id: Ic8e765b13e3abf5a7a7f5868de014763d46be7ee
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
Moving them to device/google/phantasm. Since the userland sgx
prebuilts need to match the prebuilt kernel, they are not really
generic and it's easier to make changes atomic if we just keep
the prebuilts together in the board specific device project.
Change-Id: I1b880b938b715a065683d7c650ef5796a1b697c3
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
Useful for testing.
Change-Id: I3c6b05a75c360a7dac73270e4059312ba2ef8e88
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
If HWC clients (aka, surface flinger) want to be receiving vsync
events, and HDMI is unplugged, fake the events instead. This is
particularly important at startup on JB; the system thinks that it has
turned the display on and enabled VSYNC events, failure to deliver
them results in Bad Things. We cannot rely on HDMI hardware to
delvier the events if the HDMI link is not established, so we just
fake them instead.
(cherry-picked from 25ab304446afba89283c1a7c7225a69cc3cf4385)
Change-Id: Id4806f96d37cf8ad5b6a05d9077b3d88fd24f4d5
Signed-off-by: John Grossman <johngro@google.com>
|
|
The property can be read by apps like YouTube to choose
lower resolution videos if the hdmi mode is < 1080p.
Saves bandwidth, latency, and time wasted scaling.
(cherry picked from commit ce768b26571c66e176fa6d10c64ded578da937d9)
Change-Id: Ia44cc0263f3c77444221c96d73cda0979be3ee28
Signed-off-by: Mike J. Chen <mjchen@google.com>
|
|
It was found that when there are more than
4 layers overlay 3 was gettig multiple assignements.
This was causing the mouse pointer layer not to show
on the screen.
(cherry picked from commit fc8f4796e2893e4e0d6b9051fa7a37ecf522f0b8)
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Signed-off-by: Muralidhar Dixit <murali@ti.com>
Conflicts:
hwc/hwc.c
Change-Id: Id91ecb1dc9f1a0ee7c20c1bf804f5440b0c21034
|
|
A hack to reset the display on the first frame was put in previously
to allow for a seamless transition between the boot logo from
the bootloader to the boot animation.
In our case, the kernel/hwc has already scanned and set the proper
hdmi mode, so we dont want to bounce the panel.
(cherry picked from commit eafa266c88c496aa539f46407fbdab137b86d2c7)
Change-Id: I858185c8a8416bff84ee77f67100c25f754c16b9
|
|
The kernel now passes all of the modes to user space with flags
to specify whether or not it is preferred or not and if the
hardware actually supports the mode. With this, we can try to
pick modes that match the 'preferred' mode as specified in the EDID
from the panel.
If the preferred mode is masked due to the driver, the logic will
try to favor available modes that match the resolution of the preferred
mode. If none of these options are available, fall back to the
older logic of trying to find the best mode to match what the
current framebuffer is set to.
(cherry picked from commit c63364590d5df4837438ba69b4ba7dad66af3321)
Conflicts:
hwc/hwc.c
Change-Id: Ic796819b60665ec34f4c9967f31f0cc1f2cb7a28
|
|
"**** should have assigned z-layer for fb"
Should find the real reason behind it, but for now it's filling up
the system logs.
(cherry picked from commit e22bec1a7e61fd1d0355587305c3233e5a44508b)
Conflicts:
hwc/hwc.c
Change-Id: Id1d296d1afde25d7b71a70e1a5d4f40dfbe098f6
|
|
Current dss hardware seems to be able to handle 2 layers of 1080p RGB32
content before buffer underrunning. One layer (OVL3) is always consumed
by the framebuffer, so we're left with at most one 1080p layer from
surfaceflinger.
Add code to punt the 2nd and above 1080p RGB32 layer to the SGX.
This works great for games and video content, since they seem to
generally be RGB16 and NV12 layers, which DSS can deal with.
(cherry picked from commit 299fdc0df5540a56df0796ff82d153f637c26fa1)
Conflicts:
hwc/hwc.c
Change-Id: I095180dedaf16955996804f795a474c08e47a349
|
|
Patch contains following features
1)Large frame buffer support:
Transformation matrix for LCD and HDMI added
to ensure correct composition and renderring
of all UI layers
Added support for overlay distrubution based
on FB size and target display
2)Default HDMI display support
Support for default HDMI display selection.
Added HDMI best mode selection on HPD
(cherry picked from commit 8e8bf69d94423df082460c43d818e58046b2d1de)
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Conflicts:
hwc/hwc.c
Change-Id: I591577b973405197d3254f3c83138036e67e9789
|
|
Choose correct llog by changing LOCAL_LDFLAGS to LOCAL_LDLIBS
for llog.
(cherry picked from commit ead6372c32dd20ee4de99ee3a2d6673e3274a861)
Change-Id: I86164615edf114d2fdc6a633561c6ce6641afb2e
Signed-off-by: Bryan Buckley <bryan.buckley@ti.com>
|
|
Remove sdrv_crypto.h
(cherry picked from commit d45edb436df2990e792f4ce375e197143de3e201)
Change-Id: I85ba6afccf55afd3a5e5c68a5329a09cbfef98d7
Signed-off-by: Bryan Buckley <bryan.buckley@ti.com>
|
|
These three components have not changed with this release.
Only changing version header for clarity.
(cherry picked from commit 54cc5c655243e9bb73763040c8a04cdc366aa25e)
Change-Id: Ife51d93403429513bc6a99adccb2f2c88184b0e4
Signed-off-by: Bryan Buckley <bryan.buckley@ti.com>
|
|
The TEE Client API defines a communications API for connecting
Client Applications running in a rich operating environment with
the Secure Services running inside the Trusted Foundations execution
environment.
The TEE Client API is a static library that must be linked with the
calling application or library.
The TEE Client API is used to implement higher-level APIs, such as
cryptography or secure storage.
(cherry picked from commit ccc83471b660f62b65fbc8f566e8a7e404c64540)
Change-Id: I4f1d40ddf8fb9eec0b62e2982fc0e25db36ce6a0
Signed-off-by: Bryan Buckley <bryan.buckley@ti.com>
Signed-off-by: Yong Zhi <y-zhi@ti.com>
Signed-off-by: Jorge E. Solano <x0062302@ti.com>
|
|
This contains the C header files for compiling both the normal-world and
secure-world software. The rest of the SDK is available in the mshield
package.
Some of these headers are:
cryptoki.h - definitions for the External Cry ptographic API
sst.h - definitions for the External Secure Storage API
mtc.h - definitions for the External Monotonic Counter API
ssdi.h - definitions for SSDI
tee_client_api.h - definitions for the TF Client API
(cherry picked from commit 41ab3216ed1b54184d0575ef9601394e7ba53f0d)
Change-Id: I24828f423456ac12f014a406acee42b60b40ae17
Signed-off-by: Bryan Buckley <bryan.buckley@ti.com>
|
|
The user-space SMC Daemon is takes care in particular of the effective
storage of the SMC secure storage within the device file system. The files
in which the SMC persistent data are stored are defined in the
Normal-World Configuration File.
All the security properties such as confidentiality, integrity, atomicity,
anti-rollback and bounding to the device are managed at the SMC PA level.
(cherry picked from commit c08b0dc330e67f33fa0a8fb9c62f38b07a9103c9)
Change-Id: I62714c8bb3b43ef2897a4b0efd49f88700a1ce55
Signed-off-by: Bryan Buckley <bryan.buckley@ti.com>
|
|
A user-land tool application used to install the signed SMC PA in the
Secure Environment. This application is just needed for the startup of the
SMC PA then it is no longer running.
(cherry picked from commit b6f0610ea54d990c121761a11e543e716a63c7ec)
Change-Id: I01c02f192b843bf8b8f1b12055c828d9b8e5ff12
Signed-off-by: Bryan Buckley <bryan.buckley@ti.com>
|
|
Change-Id: Ib0b97b68f186ce56de60a45df2465d86ced67142
Signed-off-by: Mike J. Chen <mjchen@google.com>
|