libexternal: enable HPD if target supports HDMI

enable HPD only on targets that has valid HDMI fb device.

Change-Id: Ia43d9138167b6ab3a887f7663a05831a2fcc09ea
CRs-fixed: 506363
hwc: split display: Fix flip on which to do crop swap

Crop swapping is being done on V flip, rather it should be done
on H-flip in case of split displays.

Change-Id: If6136ad36731f4ac4847e94d8dfa851182f25c83
hwc : Fix crash during dumpsys

Dumpsys runs in different thread not in composition thread.
Accessing mdp composition frame info in dumpsys with out
synchronizing could cause crash since frame info can get reset
in composition thread.

CRs-fixed: 503268

Change-Id: If3f7d8cc9fce8b14622e666fa52583ff0cfdedd2
gralloc: Remove memset.

The ion driver now guarantees that it will give us a zero'd out
buffer at allocation.

Change-Id: I7ec2b7d6dd94cdc394de12b69249ac9e1baa6708
libcopybit: Fix GPU page fault on c2d use

On HDMI connect or other use cases where finish_copybit
is called, reset dst_surface_mapped and dst_surface_base
as destination surface is already unmapped.

Change-Id: I0073a46178e6b1ecfdbf0a08d8790af4271bc37b
CRs-fixed: 481685
CRs-fixed: 502555
liboverlay: Allocate cached rotator buffers

- gralloc does not invalidate and clean the cached buffers.
- Using cached buffers for rotator does not add any benefit as
  rotator doesn't touch the L2 cache. Since no one accesses the
  memory but the rotator and mdp, so make rotator buffers uncached

Change-Id: I3dc3c91afb2fc07b7473662323339aac1cea3d73
Merge "hwc: Add support for uneven split primary displays"
Merge "libexternal: enable HPD if target supports HDMI"
Merge "libcopybit: Fix GPU page fault on c2d use"
Merge "hwc: support 8x26 variants"
copybit: Fix mismatch between HAL and MDP formats.

Fix the format mismatch between HAL and MDP formats
in copybit. This is to handle chroma issues on 8x10
for SW decoded videos.

Change-Id: I0b1ddc10cfca0c8b219838b33253a0c87b7c8f97
liboverlay: remove the unused rotator object

The rotator object in the generic pipe is never used.
Remove this unused object along with other rotator
related member variables.

Change-Id: I66d60e14565cab730228c3116e67e5c619296284
Merge "hwc: wfd: Call commit even if in pause"
Merge "hwc: Add 8084 to the list of mdss targets."
Merge "hwc: split display: Fix flip on which to do crop swap"
hwc: Sync for rotator

Implement sync for rotator.
If a buffer is rotated, it can be used by producer soon after
rotation (and it wont have to wait until vsync).

Mdp waits for the rotator buffer's release fence to signal
to start display.

Hwc waits for previous access to rotator buffer by MDP to finish
before using it

Change-Id: I5664806a17c44d58af62a2825ce454089fcd31cf
gralloc: Do not map framebuffer memory unless needed

The SurfaceFlinger opens the framebuffer module even when it
isn't necessary. It does this for some legacy hals.
Due to this we unnecessarily mmap the fb memory in gralloc.
Do not map this unless the property to use the framebuffer
memory is set.

Change-Id: Ib4ebfdf9a63af0dabb53170342181bac0360baeb
libqdutils: delay the close of fd handle

During surfaceflinger initialization, the first fb open
call comes from the MDP version check.   The MDPVersion
class implements a singleton object, which open and close
the fb device.  This initial fb open and close will trigger
the kernel driver to turn on and off the display, which
results two side effects: 1) extra delay in the display on,
2) one flicker when the display is turned on and off.
The change is to close the fd handle in the destructor.

Change-Id: I2ee5cfc78cbb613ed1326d9f7c26cbca97406163
hwcomposer: 8x10: increase frame buffer count to 3 for copybit

On 8x10, ppp composition is enabled.  For PPP blending operation,
it can take around 14-15ms. This results that when the frame is
given to the display for rendering, it can happen around the
vsync boundary.   While DMA does the page flipping, it makes sure
it happens on vsync boundary.  However, in the ppp case, the vsync
can be from the previous frame, not the new frame just delivered.
Because of that, there will be tearing.  Increase the buffer count
to 3 will resolve this issue, and improve the frame rate as well.

Change-Id: I53bff1a61b38eaecd286fdbe8a069522e28df6ba
copybit: call blit ioctl before freeing intermediate buffer

Pass in buffer handle before it is freed to prevent blit operation
from failing while importing buffer.

Change-Id: I4a944e7b2c0f6e19b55ed5602eda49d14d5e78f0