hwc: Pass transform value while cropping dst rect

While croping destination rect values for out of bound layers
consider its transform value.

Change-Id: I1f6bf25ac8ca8a27a3402c2d946edfaf57ab23d0
display: Add support for overscan compensation for ext display

- Read scan_info sys file node to check if TV underscans
- Apply action safe parameters to avoid overscan on ext display
- Store action safe width and height ratio using system  property
- Use these to calculate the destination position on the ext display
- Remove unsed ActionSafe Class

Change-Id: Id27e6fa20966fb13fc16aa7e237cacce8caeb642
CRs-fixed: 447367
hwc: Call MSMFB_DISPLAY_COMMIT even if FB handle is null.

Call MSMFB_DISPLAY_COMMIT for primary FB even if FB handle is null.
This is already done for external FB.

Change-Id: I5c405f933ce0fd99df6813acea45169802c54226

Conflicts:
	libgralloc/framebuffer.cpp
libexternal: change the order of ioctl call for HDMI

In driver PUTVSCREEN_INFO ioctl uses the META_DATA to configure, so
change the order in which the iocts are called during setResolution

Change-Id: I79e1bcf191756b3567b3e73a8eccd50ecb8857a7
CRs-fixed: 449567
gralloc: Do not set ION_SECURE for non-contiguous heaps

The GRALLOC_USAGE_PROTECTED flag is being used for non TZ DRM
if non contiguous heaps such as IOMMU are used. Hence do not
set the ION_SECURE flag for such heaps as they cannot be secured
through trustzone.

Change-Id: I48e9460ef66abb827c9df1b3c55037e8e4214f81
overlay: Remove unnecessary lock.

Remove the unnecessary lock used in setter and getter of external.

Change-Id: If752c212e4c28a81db5c6957d0e751444e23ff93
libhwcomposer: Don't count video layers marked for SKIP

When YUV layers are marked for SKIP, it needs to be composed by
SurfaceFlinger. No need for tracking them in HWC

Change-Id: I4c8ca9710b709b9df9dcb6867681387b7507e14c
Update copyright to The Linux Foundation

Change-Id: I145b66896159ff9886ed73507f17b3165ba0266d
hwc: Don't use MDP for buffers of width less than 5

This is a software workaround for MDP hardware limitation where
DSI mode panels wont give more than 30 FPS if buffers in RGB
pipes are of width less than 5

MDP can't handle layers of width less than 3. Fail MDP
Composition for those frames.

Change-Id: If45efab19817ea9e724fd2857fcc1c5d98ce0eab
liboverlay: Set mdp src format as rotator output format.

* Set mdp source format as rotator output format
rather than determine it from a fixed mapping of
input/output formats.

* This is needed since for the same input format
to rotator, fastyuv mode if enabled may result in
a different output format than the one if the mode
is not enabled.

* Do the inline optimization for rotator where possible

CRs-fixed: 451064
Change-Id: If0bb2f3a44df10968383ab3f5c3625257518934d
hwc: Log if vsync read takes more than 2 expected vsyncs

Change-Id: Id1daffa9d1d3521f42d121634bf5b00757f3609f
libhwcomposer: Only 4 pipes can be used per display for MDP Comp.

Although 6 pipes are available in total but only up to 4 pipes are
available per display (single mixer) for MDP Composition.

CRs-Fixed: 450985

Change-Id: I99df91ab955a1a7110dfbea2aaf790ba26058a78
libgralloc: Add Perform function to get the stride.

- Introduce a new class to Get the Adreno computed stride information.
This class has been added to allow adreno library computed strides to
be propagated to the allocation function as well as those clients
requesting it.
- Add a new Perform function to get the stride. The width and the format
can be passed from the calling functions (like EGL) to get the stride of
the buffer.

Change-Id: I4c2b4a02deff327f0ea5558c478997527fe9d3cf

Conflicts:
	libgralloc/alloc_controller.cpp
	libgralloc/gralloc_priv.h
qdutils: Default to GPU composition

If composition type is not set, default to GPU composition.
This is because CPU composition is not supported from MR1 onwards

Change-Id: I951dcb5586a8dbcfbe73cd7292d0f1690d6528ba
libqservice: Add a client interface.

Add a client interface which interfaces with hwc.
qservice upon receiving IPC, provides a callback notification to the qclient
which does appropriate stuff in hwc.

In future, qservice can safely be even made a separate process with no changes
to exisiting code. This was not true earlier owing to the hwc pointer held by
qservice forcing it to be in the same process that hwc is in.

CRs-fixed: 452977
Change-Id: I05838c213f5d4606a6573693de1bacbc5876107e
libgralloc: Get the stride information from libadreno_utils.so

libadreno_utils.so is an adreno utility library. It computes the
optimal stride required for a surface of a particular width and
bpp. Using this computed stride allows us to efficiently use the
dual memory channels and increase performance.
Currently the utility library only computes the optimal stride
for RGB surfaces.

Change-Id: I0f70bd11602a5144515ab07c3bd2b80a01586a06
gralloc: stop the log spam

Change-Id: Ib433aefd0725198d0c7dd210b9f10de38f4f4aa2

Conflicts:

	libgralloc/ashmemalloc.cpp
	libgralloc/ionalloc.cpp
	libgralloc/pmemalloc.cpp
Revert "gralloc:  Send first 2 FB buffers to carveout and next to IOMMU"

This reverts commit d80a52cbf961d737f6f3beef47b868a581b98591.

Revert "hwc: Call MSMFB_DISPLAY_COMMIT even if FB handle is null."

This reverts commit 4333330e1181d35e01bb2b443dcb2e8003c8c073.