memset initializes first 32 bytes of yuvIndices array, so remove
memset initialization and initialize yuvIndices whenever it is required.
Change-Id: I2f01a5c3d07cfbc325f4ca06e3c019616b8a7588
- 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
Consider action safe values for UI and video while
configuring overlay for low res panels
Change-Id: Ia40c3e2bb21f808ec127df3edb10e484b82cec3f
CRs-fixed: 481442
In decimation checks of BWC, take log, since a value > 0 and <= 1
doesn't mean decimation will be used.
Change-Id: I2a518e9021a814d3a65e3db793abbb1eb433120a
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
MDSS driver requires the crop height to be multiple of 4 to
de-interlace the interlaced Yuv content.
CRs-Fixed: 491488
Change-Id: I9a95392a71cca217e2890c9736f1450fd8aa4a59
In scaling check, consider out of bounds layers, apply trim
and then decide if scaling is necessary or not.
Change-Id: Iad7f662f42096b3f7a4a1c4cfe71048d275f4b5f
Since configRotator gets called from FBUpdate for non-YUV layer,
check for YUV formats is required.
Change-Id: Idaef9d9b650499f8a0342ddfc04e1f55c9b75f73
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
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
Remove default arguments from setMDPflags function to get rid of
issues hidden from the developer.
Change-Id: Ic78645675b0aaab284fe2d0de8fffb4b26beabc7
- 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
- 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
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
Set different vaules to property hw.cabl.yuv based on the input
image format, so that mm-pp-daemon can adjust CABL power
saving levels accordingly.
CRs-fixed: 464799
Change-Id: I212035d387a975e61a08749ba118a9da30e18d81
Check NULL condition for pointer to rotator object to swap
configuration information between right and left mixer.
Change-Id: Ib23552efcb7807164a33f618f7ff41c469661cb5
- This adds support for Bandwidth Compression.
- If MDSS supports BWC, then we set BWC flags
to both Rotator(encode) and overlay(decode)
Change-Id: I6f7800716a2ce2ab855f4c0b1a53cd96f7d06d74
- Dump more info for BUFFER_SYNC ioctl failure case.
- Enable debug logs for blank/unblank display.
Change-Id: I289ed8ad39a0181ff4a404644b90cb02a8144b9a
Since MDSS rotator will crop, the crop rectangle for overlay
will always start from (0,0).
CRs-Fixed: 476494
Change-Id: I1ccece8eab7d1a97ccec561a4d0df4558b5e33c4
Fix positioning of layer on the right mixer, by making it relative to
the half width of total panel.
Change-Id: Iecbe4496db1faae426b2606118ccaab90c1e4fca
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
It is more probable that end user always use same TV to connect.
Hence make the action safe property persist, so that it is
persistent across reboot
Also, change property to sys. from hw. so that hwc can write
Change-Id: I5a77156012d121e28d1adbadb9162fcdf7ca3edd
CRs-fixed: 472431
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