Commit Graph

1033 Commits

Author SHA1 Message Date
Linux Build Service Account
dde6252243 Merge "hwc: Calculate viewframe from layers display frame information." 2013-12-12 08:48:41 -08:00
Linux Build Service Account
3bfb8caac1 Merge "HWC: Fix for use int reference in function call" 2013-12-12 00:09:18 -08:00
Linux Build Service Account
6ba55d898f Merge "hwc/copybit: Fix the wrong layer transform check." 2013-12-12 00:08:30 -08:00
Linux Build Service Account
23c77c865e Merge "hwc : Add hw limitation checks for MDP compposition." 2013-12-11 20:40:13 -08:00
Linux Build Service Account
b42f70f3d0 Merge "hwc: Crop source rect for the optimized destination" 2013-12-11 05:06:45 -08:00
Prabhanjan Kandula
21918db5d1 hwc : Add hw limitation checks for MDP compposition.
Add hw limitation checks for MDP composition once
we identify actual layers for MDP. This should be generic
way for all basic hw limitations of underlying MDP/MDSS.
Current limitations:
- a-family : MDP can not handle alpha scaling.
- 8226 & 8974 : Can not handle if multiple layers need
  downscaling and blending

Change-Id: Ia944802d798f2d0e9cd4515d7e9854c7314cac78
CRs-fixed: 538803
2013-12-11 15:41:38 +05:30
Ramkumar Radhakrishnan
dd38b8210c hwc: Calculate viewframe from layers display frame information.
Calculate view frame of each display from the displayframe of all
the application layers.

Change-Id: I9ba4076b7b4419bd3559417fad28b4e1de6acff3
2013-12-10 22:16:15 -08:00
Linux Build Service Account
0616b39ffe Merge "hwcomposer : Fixing copybit render buffer fence closing." 2013-12-10 00:08:14 -08:00
Arpita Banerjee
b28b309ae7 HWC: Fix for use int reference in function call
To use the integer reference, declared integer
variable to get value directly in that variable.

Change-Id: I1fd1a45580be99dd95ccbc3495e28455a4c7de23
2013-12-09 16:55:45 -08:00
Linux Build Service Account
b7ead22283 Merge "hwc: mdpcomp: Remove redundant function to program MDP" 2013-12-09 15:45:58 -08:00
Linux Build Service Account
b96cfd7078 Merge "overlay: Remove support for forced pipe configs" 2013-12-09 15:45:57 -08:00
Sushil Chauhan
dffbf4314c hwc/copybit: Fix the wrong layer transform check.
At 90/270 degree rotations, if there is vertical or horizontal flip in
layer transform, it is wrongly interpreted by display HAL due to wrong
check. So Copybit destination rectangle width & height are not swapped
which leads to unwanted out-of-range scaling.

Change-Id: Ib917b907d1284b91b7d6c25038050bbcb503a792
2013-12-09 15:33:57 -08:00
Saurabh Shah
c7e4f1d37c hwc: mdpcomp: Remove redundant function to program MDP
The programYUV used for video-only cases is the same as programMDP
function. Remove the redundant function

Change-Id: I1d891404a77b2a47f90c236d4d6dcbbd02143d93
2013-12-09 11:00:21 -08:00
Saurabh Shah
7445d4b04c overlay: Remove support for forced pipe configs
Forced pipe configs were used during geometry changes to track bandwidth
in driver, which is no longer the case

Change-Id: I49fb1ca1b7173da2e17ccfc8ce9b447152b9b7b6
2013-12-09 11:00:16 -08:00
Linux Build Service Account
f81272988c Merge "hwc: Reset layer-to-rotator map and fences on configuration failure" 2013-12-08 13:29:58 -08:00
Linux Build Service Account
1dfaed1ca4 Merge "copybit: Set default value on COPYBIT_TRANSFORM for Color layer." 2013-12-07 23:19:28 -08:00
Linux Build Service Account
83593a3aeb Merge "hwc: Do not use fb handle in hwc_prepare" 2013-12-07 00:26:12 -08:00
Linux Build Service Account
cad0cbb6f4 Merge "qdutils: mdpversion: Add device version checks" 2013-12-06 20:58:51 -08:00
Linux Build Service Account
813d679c84 Merge "hwc: Use GPU Composition for 8x26 virtual dpy scaling case" 2013-12-06 16:32:30 -08:00
Linux Build Service Account
f44ef1f803 Merge "utils: prevent clear from occurring on HWC_BLIT layers" 2013-12-06 16:32:14 -08:00
Saurabh Shah
220a30c282 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

Change-Id: I5c494a74a807d3a52a1c88257494b58c583700f5
2013-12-06 16:04:17 -08:00
Linux Build Service Account
9f1f44a743 Merge "hwc: allow DMA pipe in BLOCK mode for virtual dpy" 2013-12-05 22:28:54 -08:00
Saurabh Shah
da5b3ce3eb hwc: Reset layer-to-rotator map and fences on configuration failure
When a rotator or mdp configuration for a display fails, reset the
layer-to-rotator mappings for that display and reset the release
fences for the rotator objects used for that display.

Note: The rotator itself is offline and not tied to any mixer. It is
from the mappings that we deduce which rotator object was used for
layers of which display. Also we don't delete rotator objects held
for a specific display, since during stability runs, failures could
repeat each round and we end up allocating and deallocating memory
unnecessarily. The rotator objects will be deleted automatically
when not required anymore.

Change-Id: I9a67f02574be30be3b96b3575f60530cb1c89e10
2013-12-05 10:57:43 -08:00
Saurabh Shah
173ec33dbf qdutils: mdpversion: Add device version checks
Add device version inline checks for hardware devices.
Also fixes the issue of 8084 being treated as 8974v2
owing to the expanded range.

Change-Id: Iaeefb505e14e022b6e542daa8b84a87a22e7f69a
2013-12-05 09:31:47 -08:00
Linux Build Service Account
07263b7612 Merge "libexternal: limit ext downscale to FullHD Resolution" 2013-12-05 01:21:41 -08:00
Linux Build Service Account
e54fed63dc Merge "copybit: Use rounded integer crop value." 2013-12-05 01:19:33 -08:00
Yang Xu
9c1eb2be21 hwc: Use GPU Composition for 8x26 virtual dpy scaling case
For 8x26, if there is only one layer which needs scale for
secondary display, while no scale for primary display, DMA
pipe is occupied by primary. If layer changed and need to
fall back to GLES composition, virtual display lacks DMA
pipe and error is reported.

To avoid this case, use GPU composition for virtual display
scaling case on 8x26.

Change-Id: I42297a18006517532e30d1a01c67ff8ca187482a
2013-12-05 13:55:19 +08:00
Linux Build Service Account
c258d31430 Merge "HWC: Use 2 VG pipes for YUV layer with width > 2048" 2013-12-04 19:31:07 -08:00
Sushil Chauhan
2babecc511 copybit: Set default value on COPYBIT_TRANSFORM for Color layer.
1. For Color layer, set zero transform value on COPYBIT_TRANSFORM
otherwise it causes MDP IOMMU page fault at 90/270 degree rotation.
2. Color layer is part of Copybit context list, so no need to call
msm_copybit() explicitly for it, that will be called during flush.

Change-Id: I4421b4bddfeca56b0ad8534d921c3d743a7d92bb
2013-12-04 18:39:11 -08:00
Jeykumar Sankaran
1b3da407b3 hwc: Crop source rect for the optimized destination
If a layer destination can be optimized, its source rect
needs to be cropped for the optimized destination rect.

Change-Id: If9a9891200d9cea52b58b253299b4007197cd9e5
2013-12-04 16:22:34 -08:00
Linux Build Service Account
9ea19df8d2 Merge "copybit: Initialize release & acquire fence fds of Copybit context." 2013-12-04 16:11:51 -08:00
Linux Build Service Account
361de1d037 Merge "hwc: Bandwidth check upgrade." 2013-12-04 16:11:49 -08:00
Linux Build Service Account
3e19930e52 Merge "qdutils: Parse low and high bandwidth from mdp capabilities node" 2013-12-04 16:11:48 -08:00
Arun Kumar K.R
fcf2fe15d7 libexternal: limit ext downscale to FullHD Resolution
- should not be enabling external downscale when primary panel
  is of higher resolution
- while enabling downscale on external, also check if primary is
  within the Full HD resolution

Change-Id: I871a435834b6bca9b0e6899680aa8282dddad624
2013-12-03 16:07:55 -08:00
Terence Hampson
f96aec529b utils: prevent clear from occurring on HWC_BLIT layers
Right now clear is already being done in SF using GPU for
HWC_BLIT layers, no need to clear layers a second time.

Change-Id: Ie6ed6a2e7ad3b24fae6e6bfd81988c604f07eac1
2013-12-03 13:18:25 -05:00
Raj Kamal
a8c065f55d hwc: allow DMA pipe in BLOCK mode for virtual dpy
For portrait videos case on WFD, driver supports multiplexing
of DMA pipe in LINE and BLOCK mode.
Loosen the requirements to allow DMA pipe in block mode for
portrait case of virtual display.

Change-Id: I5821501f89b17bb2d29c425aee0a6c16b2a4783b
2013-12-03 09:54:06 +05:30
Sushil Chauhan
9be6542ada copybit: Initialize release & acquire fence fds of Copybit context.
Initialize release and acquire fence fds of Copybit context to -1.
Otherwise fd 0 gets closed in first call to msm_copybit, which is
valid fd and it leads to bad state if fd 0 is being used as stdin.

Change-Id: I01278bbb580d61e2d4b4c7b3f7b346274af6d914
2013-12-02 13:27:53 -08:00
Linux Build Service Account
bff954800a Merge "hwc: Check for downscale support only when needed" 2013-12-02 02:44:04 -08:00
Linux Build Service Account
23c2140420 Merge "overlay: pipe reservation mechanism for overlay" 2013-12-02 02:43:53 -08:00
Linux Build Service Account
3b689fb79c Merge "hwc/overlay: Add Color layer support in MDP Composition." 2013-12-02 02:43:48 -08:00
Saurabh Shah
f5f2b137bc hwc: Bandwidth check upgrade.
Use the low and high bandwidth values exported from driver per target
Use the low bandwidth value when the system has at least 1 video
mode panel, else use the high bandwidth value.
Newer targets could have bandwidth exceeding what an uint32 could
hold, so change the bytes read to be in gigs.
Do not use the framebuffer handle to get size, since the handle may
be null.

Change-Id: If3124ddc33334eba80d34ab7d8fc64d1b46697ce
2013-12-01 18:43:58 -08:00
Saurabh Shah
8ee5e89553 qdutils: Parse low and high bandwidth from mdp capabilities node
Parse low and high bandwidth from mdp capabilities sysfs node
/sys/class/graphics/fb0/mdp/caps
This will be specified in kbps.

Conflicts:
	libqdutils/mdp_version.cpp

Change-Id: I2956e340106d47bb49f5744e4f9a4a0bb796f6e3
2013-12-01 18:43:28 -08:00
Zohaib Alam
4b0a924ff4 overlay: pipe reservation mechanism for overlay
This change provides APIs for this mechanism. In a case where
pipeid corresponding to the layer needs to be reserved, then pipe
session could be initiated for that pipe. This will ensure that
the pipe is not garbage collected, and is manually destroyed when
the session (or pipe requirement) has been ended. This change
also provides the api to locally allocate the dest for the given
reserved overlay pipeid.

Change-Id: I3fec3e26f69305c280395b7a92edf9e457398052
2013-11-28 12:16:06 -05:00
Ramakant Singh
f2b51e6cce copybit: Use rounded integer crop value.
We are getting floating crop value in layer
but need to convert as integer for MDP.
Change-Id: Id1de7f61804295df40f3f699446c69860752b867
2013-11-28 12:18:50 +05:30
Linux Build Service Account
1905d3427f Merge "display: Clean up binder interface" 2013-11-27 15:07:19 -08:00
Jeykumar Sankaran
1706a77364 hwc: Check for downscale support only when needed
Check for downscale support only for layers which needs to
be downscaled. Fixes issue where we bail out for all layers having
width more than MAX_LAYER_WIDTH even when they don't need scaling.

Change-Id: I19ee4d69e986390ed3df122b8ca9c0e102f3f916
2013-11-27 12:55:19 -08:00
radhakrishna
c9a6741e15 HWC: Use 2 VG pipes for YUV layer with width > 2048
To minimize usage of decimation when 4K x 2K video is played
on primary, split the yuv layer into 2 halves and configure
each layer to individual VG pipes. With this approach,
decimation can be avoided in some 4K x 2K video use cases,
thereby improving performance.

Change-Id: I7cddfab787c50f6ff132eaa7f5a3d9cfd636c282
2013-11-27 18:35:24 +05:30
Linux Build Service Account
9becf92940 Merge "qdutils: Remove fb open dependency to read MDSS capabiliites" 2013-11-26 16:45:40 -08:00
Naseer Ahmed
4957c52d9c display: Clean up binder interface
The current binder implementation is inflexible when it comes to
adding new input/output parameters. It also needs a lot of
boilerplate code written when adding a simple enable/disable type
command.
Instead, let clients specify the parcels they want to pass and
unparcel them at the end points only.
Please note that it is assumed that all commands coming in
need the same permission checks. If this is no longer the case,
some commands need to be split out on the receiver end in
IQService.cpp.
This change also simplifies the code end clients need to write.
They should be able to include QServiceUtils and call a single
function to set the binder up and make the call.

Change-Id: I4db66f2427ecf16d7a6264462ae85815217a16b1
2013-11-25 20:36:13 -08:00
Linux Build Service Account
01b3d3a6ae Merge "libqdutils: Add generic metadata structure for VFM" 2013-11-23 21:27:53 -08:00