Commit Graph

125 Commits

Author SHA1 Message Date
Ramkumar Radhakrishnan
26bdee916c hwc: Initialize yuvIndices properly.
memset initializes first 32 bytes of yuvIndices array, so remove
memset initialization and initialize yuvIndices whenever it is required.

Change-Id: I2f01a5c3d07cfbc325f4ca06e3c019616b8a7588
2013-06-20 17:32:39 -07:00
Linux Build Service Account
1f1db52302 Merge "hwc: Fix Bwc policy's decimation check." 2013-06-07 03:30:02 -07:00
Linux Build Service Account
7b3c8b1b7b Merge "hwc: Fix to avoid heap corruption" 2013-06-06 07:58:11 -07:00
Ramkumar Radhakrishnan
e661f9677d hwc: Fix to avoid heap corruption
- 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
2013-06-05 18:41:47 -07:00
Arun Kumar K.R
82f1d28d5d hwc: Add action safe support for low res panels
Consider action safe values for UI and video while
configuring overlay for low res panels

Change-Id: Ia40c3e2bb21f808ec127df3edb10e484b82cec3f
CRs-fixed: 481442
2013-06-05 14:36:50 -07:00
Saurabh Shah
c5b96dc13e hwc: Fix Bwc policy's decimation check.
In decimation checks of BWC, take log, since a value > 0 and <= 1
doesn't mean decimation will be used.

Change-Id: I2a518e9021a814d3a65e3db793abbb1eb433120a
2013-06-05 13:19:52 -07:00
Linux Build Service Account
88cd5ed8e6 Merge "hwc: Add BWC policy manager" 2013-06-01 06:06:56 -07:00
Linux Build Service Account
3a6cbafeaa Merge "hwc: In scaling check, consider out of bounds layers." 2013-05-31 15:23:41 -07:00
Linux Build Service Account
22f9fe4528 Merge "hwc: Update orient info from transform." 2013-05-31 15:23:39 -07:00
Linux Build Service Account
87db49eb52 Merge "hwc: Featurize framework changes" 2013-05-31 00:29:38 -07:00
Linux Build Service Account
b2a40a4ce3 Merge "hwc/overlay: MDSS driver requires 4-aligned crop.h for interlaced" 2013-05-30 12:07:27 -07:00
Saurabh Shah
1a03d484e0 hwc: Add BWC policy manager
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
2013-05-29 13:44:20 -07:00
Naseer Ahmed
edbe51811c hwc: Featurize framework changes
These flags were added to the core HWC header and break pure AOSP
builds.

Change-Id: I0d2f2071ce3fd6a9a0dc848b08098895b669c94e
2013-05-28 19:56:11 -04:00
Linux Build Service Account
5a7dcbbab6 Merge "hwc: Unblank primary display on bootup." 2013-05-27 07:12:31 -07:00
Sushil Chauhan
5491c8ade9 hwc/overlay: MDSS driver requires 4-aligned crop.h for interlaced
MDSS driver requires the crop height to be multiple of 4 to
de-interlace the interlaced Yuv content.

CRs-Fixed: 491488
Change-Id: I9a95392a71cca217e2890c9736f1450fd8aa4a59
2013-05-24 10:23:55 -07:00
Saurabh Shah
8a11793ad1 hwc: In scaling check, consider out of bounds layers.
In scaling check, consider out of bounds layers, apply trim
and then decide if scaling is necessary or not.

Change-Id: Iad7f662f42096b3f7a4a1c4cfe71048d275f4b5f
2013-05-23 12:48:13 -07:00
Ramkumar Radhakrishnan
d7e8d0c3d1 hwc: Update orient info from transform.
Update orient info from transform for animation use case.

Change-Id: I33e51d3ee9f5010c04642535316bc8ed97d10b33
2013-05-22 12:31:48 -07:00
Linux Build Service Account
6c8c61a45b Merge "hwc: Add check for YUV formats in configRotator." 2013-05-21 09:26:39 -07:00
Naseer Ahmed
22616d9e18 hwc: Unblank primary display on bootup.
SurfaceFlinger assumes that the primary is unblanked on bootup.

Change-Id: I481ece9772ad29ac5eddd2b31f67f3f68bb3baa5
2013-05-21 11:49:59 -04:00
Linux Build Service Account
ad257b5c8a Merge "hwc: Set List should not block DMA on 8x10" 2013-05-21 06:14:14 -07:00
Linux Build Service Account
69db7afdd5 Merge "hwc: Don't permit rotator use under certain conditions" 2013-05-20 04:21:38 -07:00
Sushil Chauhan
6181aa265a hwc: Add check for YUV formats in configRotator.
Since configRotator gets called from FBUpdate for non-YUV layer,
check for YUV formats is required.

Change-Id: Idaef9d9b650499f8a0342ddfc04e1f55c9b75f73
2013-05-17 18:04:10 -07:00
Terence Hampson
45c02efdb1 hwc: Set List should not block DMA on 8x10
Since DMA is the only overlay pipe on 8x10 it should not be
blocked in the set list.

Change-Id: Ie8ba7028ceaf90e1a3211ef076bc839e793017de
2013-05-17 17:28:17 -04:00
Linux Build Service Account
9659a6a7ad Merge "hwc: Simplify vsync code" 2013-05-17 06:43:42 -07:00
Linux Build Service Account
b27da8ff97 Merge "hwc/overlay: If configRotator fails, mark all pipes as available." 2013-05-17 04:15:21 -07:00
Linux Build Service Account
cc8c72deb8 Merge "display: Remove default arguments for setMdpFlags function." 2013-05-17 04:13:12 -07:00
Saurabh Shah
e247408f06 hwc: Don't permit rotator use under certain conditions
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
2013-05-16 17:56:37 -07:00
Sushil Chauhan
bd3ea926be 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
2013-05-15 14:56:31 -07:00
Ramkumar Radhakrishnan
9d52f4395f display: Remove default arguments for setMdpFlags function.
Remove default arguments from setMDPflags function to get rid of
issues hidden from the developer.

Change-Id: Ic78645675b0aaab284fe2d0de8fffb4b26beabc7
2013-05-14 14:46:59 -07:00
Sushil Chauhan
1cac81521d hwc/overlay: Crop x, y, w and h should be even for MDSS Rotator.
MDSS driver requires Rotator crop x, y, w and h to be even for YUV
formats.

CRs-Fixed: 485216
Change-Id: I9a066970f8cedaed7ba18534bb99edd1bcf421dd
2013-05-14 00:01:50 -07:00
Naseer Ahmed
8bb8f9de3b hwc: Simplify vsync code
Handle the wait properly in the kernel and remove unnecessary
thread signaling.

Change-Id: Iff05825a7a85d0353f3feb64e7f9a06cedab7869
2013-05-13 17:38:26 -04:00
Ramkumar Radhakrishnan
59a110773c hwc: Do not show animation on External display.
- 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
2013-05-11 18:37:37 -07:00
Arun Kumar K.R
ffef74885b display: Add support orientation control on ext display
- 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
2013-05-11 18:16:46 -07:00
Arun Kumar K.R
a2978452bd hwc: Add support for EXT_ONLY Layers
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
2013-05-11 18:05:40 -07:00
Ping Li
9404e2a474 hwc: Add property to differentiate the input image format
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
2013-05-03 13:00:49 -07:00
Linux Build Service Account
cc796a207e Merge "liboverlay: Add support for MDSS Bandwidth Compression" 2013-05-01 12:03:01 -07:00
Linux Build Service Account
c4c8c668ef Merge "display: Fix Bug in 180 degree rotation use case for 4kx2k panel." 2013-05-01 12:02:56 -07:00
Linux Build Service Account
1784f4a142 Merge "hwc: Fix right mixer layer positioning." 2013-04-30 23:09:19 -07:00
Ramkumar Radhakrishnan
fe7ce80e8a display: Fix Bug in 180 degree rotation use case for 4kx2k panel.
Check NULL condition for pointer to rotator object to swap
configuration information between right and left mixer.

Change-Id: Ib23552efcb7807164a33f618f7ff41c469661cb5
2013-04-30 11:38:59 -07:00
Sushil Chauhan
bab187a53e liboverlay: Add support for MDSS Bandwidth Compression
- 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
2013-04-29 13:51:44 -07:00
Linux Build Service Account
4bc32bdf74 Merge "display: Enable more Debug logs." 2013-04-29 13:42:52 -07:00
Ramkumar Radhakrishnan
b32a0bc134 display: Enable more Debug logs.
- Dump more info for BUFFER_SYNC ioctl failure case.
   - Enable debug logs for blank/unblank display.

Change-Id: I289ed8ad39a0181ff4a404644b90cb02a8144b9a
2013-04-29 11:02:04 -07:00
Sushil Chauhan
80fc1f95f0 hwc/overlay: Set crop rectangle for MDSS Rotator.
Since MDSS rotator will crop, the crop rectangle for overlay
will always start from (0,0).

CRs-Fixed: 476494
Change-Id: I1ccece8eab7d1a97ccec561a4d0df4558b5e33c4
2013-04-26 13:38:54 -07:00
Saurabh Shah
baa68983ce hwc: Fix right mixer layer positioning.
Fix positioning of layer on the right mixer, by making it relative to
the half width of total panel.

Change-Id: Iecbe4496db1faae426b2606118ccaab90c1e4fca
2013-04-26 09:55:29 -07:00
Saurabh Shah
0ceeb6ad01 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
2013-04-24 10:33:58 -07:00
Linux Build Service Account
722b477e9b Merge "libexternal: change action safe property to persist" 2013-04-23 22:23:34 -07:00
Arun Kumar K.R
4d73d64744 libexternal: change action safe property to persist
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
2013-04-23 18:12:05 -07:00
Sravan Kumar D.V.N
78f51e7050 hwc: Close Fds in case of errors in openFramebuffer
Close opened Fds in case of errors in openFramebuffer
function.

Change-Id: Ifd80adf1eff0d2efd698cd4abd3980d5c1f333ab
CRs-fixed: 473488
2013-04-23 07:33:02 -07:00
Saurabh Shah
85234ec2ec 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
2013-04-15 10:10:43 -07:00
Linux Build Service Account
3dda2a0953 Merge "overlay: Swap flips on 90 only for older mdp version." 2013-04-12 23:18:36 -07:00