hwc: Get the retire fence from the MDP driver

Get the retire fence separately instead of duplicating the
release fence.

Bug: 9319776
Change-Id: Iacb773c2d94f635e27a7b355d399cb2e36dac2a5
qdutils: idle_invalidator: Use fixed timeout rather than range

Currently the idle timeout is in a range from idle_timeout / 2
to idle_timeout, since we didn't need precise values.

Change this to a fixed value using timestamps, because the timeout
is too low and warrants precision.

Change-Id: I9cec1db7f1d7fda2996ab80449c61269915f6be4
h/q/d: Optimize layer rects on sourceCropf

This change optimizes layer dest rects  and updates its
corresponding source crop value on sourceCropf.

Change-Id: Ie921908aa23ae029d2cd3add61795f71a6e5294e
hwc: Add type casting to aspect ratio calculations

Type casting to float prevents rounding off errors which could
result in invalid or unexpected results when doing calculations
with integers.

Change-Id: I6d5c233c013322c4e9c7f7db61b5c604f915643c
display : change wormhole calculation for swap rect

In case of swap rect use case ,wormhole rect will
be same as  dirty rect (if has any blending)

Change-Id: Id2ee34d860207c440a033010460723fe964f7074
hwc: Reset FB Z order to -1 instead of 0

In Video-only mode FB Z-order of 0 was being used, incorrectly,
because the value was reset to 0 and wasn't changed subsequently.

Reset to -1 to prevent this. Any MDP comp strategy that needs to use
FB should set it's Z order appropriately.

If cache based mode has no MDP comp layers, fail so that other
strategies can be used, rather than succeeding with FB Z as 0, which
will at most allow GPU comp to be used.

Change-Id: Ifdae2cd5f8d8ff0e10447b1fed6ee1671260f311
h/q/d: Drop layers from composition on NULL ROI.

While optimizing layer list for composition, drop the layers
blindly on encountering NULL ROI.

CRs-Fixed: 605482

Change-Id: Ib81f43e8f34d140e6222135f3caa9491cdbbd41e
gralloc: Set default value for implementation defined formats

For implementation defined formats which go via HWC, set the
default value to RGBA8888

Change-Id: I7f8c46bc47746dcf1c4a03438b8f93d7bab78bb1
gralloc: Fix getSize and getAlignedWidthAndHeight

getSize was incorrectly modifying aligned height and allocating
a buffer of lesser than expected size.

All alignments should be done in getAlignedWidthAndHeight so as not
to break the GRALLOC_PERFORM functions.

getSize()'s return type is unsigned, but a signed value is returned.
Instead on error, a size of 0 should be reported.

Conflicts:
	libgralloc/alloc_controller.cpp

Change-Id: Ifae5e758de8e689701cd43892324ccc0140675cd
hwc: hwc_sync - populate correct fences for BLIT

Previously, the acquire and release fences for BLIT
composition were populated using same logic as Overlay,
but BLIT composition consists of separate BLIT step
before screen refresh, and app buffers are no longer
required after BLIT. So holding the buffers for both
the steps is unnecessary and impacts performance.

This change adds condition for BLIT in fence population
logic in hwc_sync and populates the right fences for the
App Buffers and Display Refresh during BLIT composition.

Change-Id: I9998a7052c0375acb32a174bdf0469d2a88f79e8
hwc: Cleanup after merge

Change-Id: Iac1b46d0700f39fd9ee50f9f4f28914a433f1102
h/q/d: Consider dropped layers in load based MDP comp

While batching up layers for load based MDP composition, filter
out dropped layers.

CRs-Fixed: 607196

Change-Id: I78031f1094330e1d960ceb56d5441c27a041e48c
qdutils: Pre-allocate initial buffer for getline().

Some frameworks override malloc() and free() but not getline().
Pre-allocating the buffer avoids heap mismatch on free().

Change-Id: I9bd934f701ad7dbc10ec2aa21967e2a626c496f4
hwc/overlay: validate and prepare frame

Send the entire frame (array of overlays) to driver, so that it would
check pipes params and the whole frame wrt bandwidth and SMP.

Now, the overlay's commit API just prepares an overlay object but
makes no ioctl calls.

If the driver finds the frame, as a whole, to be not ok, the
validation fails and overlay/hwc return silently.

If a certain overlay object is mis-configured or pipes are
unavailable, the driver sets the number of objects it processed.
Overlay uses this to dump the incorrect config.

Change-Id: Ifb2b7fadc6bd6d9d94a35ba3908fbd832f41447f
hwc: Do not set a default DPI value

If the driver does not expose primary panel's physical
dimensions, do not assume a default DPI of 160. Instead,
set it to the default value specified in the build property.

Change-Id: If71e721f6a3fa5ece93c307f6e09b45d1ecafed4
h/q/d: Rename property to enable partial update

Rename property to enable partial update to keep within MAX
string length.

Change-Id: I16d09b49500f3cd996c66eb52aa80df3a5f62b27