Add support for white LEDs

Bug: 9079860
Change-Id: Icc981682a274546c1414bd7c0b0045b1293575bf
display: Remove libmm-abl dependency

This lib no longer needs to be linked to any component in the
display HAL.

Change-Id: Id332d3cb22fc35e16f655d4c6127d6f1891330b0
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
Signed-off-by: Iliyan Malchev <malchev@google.com>
Signed-off-by: Ethan Chen <intervigil@gmail.com>
hwc: Disable idle invalidation for command mode panels

Command mode panels have an internal framebuffer with which they
refresh, hence the idle invalidator isn't needed for them.

Change-Id: I6acf0cc1f8c520cbcf706f109a42e47304c534d3
Don't force GPU composite for older devices

Older devices (8960) don't take this very well in programs like
Netflix. Modeled on 94b8632b85e2b6588a1b3260d1f4e48462501d4b

Change-Id: Ie716bbfb6f6560d8f9f52b7b72ca0b04d1bad6b8
liboverlay: do not return error if fb num >= 2 doesn't exist (writeback).

Some devices doesn't have writeback support, but needs HDMI (fb1)
This will allow them not to break HDMI support.
This is a cleaner implementation as it won't change handling on
8660 devices having writeback (if those exists).

Change-Id: I6c09759dfa4f2b1734f85012cab4eb4f350820ea
libcopybit: Add missing return statement

Change-Id: I662699b7418eba2c4792ed6c7c7b628762ebe03b
(cherry picked from commit f2e940109252c63b6e21f929e45ba794dfe12b95)
copybit: Fix type conversion error for GCC 4.7

    GCC 4.7 has stricter type conversion rules in copybit.cpp

Change-Id: I7f8572e2d9416ccb2ba17e707c7f75a2e69d69cf
Revert "display: Video Encoding not working"

* "display: Video Encoding not working" was mismerged
  into another commit (de13ed01a21db7d6b46962729fa3f9ff3ef8c2cd)
  by upstream in kk_2.7 from kk_3.5
* The original commit has since been reverted in kk_3.5,
  this is a cherry-pick of that.

This reverts commit 0a1db6aef28c3b90d1f992f56abc562dbae10b55.
Video encoder uses the NV12 encodeable format again.

Change-Id: I1b5170a5c2b5c7de0791cc5bc44457257519f749
hwc: Make the fallback to Copybit composition a compile time option

- let only the devices that actually need it to use this code path
  (it breaks the transition animations on S4 Plus devices otherwise)

Change-Id: Ie6dadf5f0b32631c355eb41e6a0e77ed4e08f763
gralloc: Fix compatibility issue

* Only new gralloc drivers support GET_CUSTOM_STRIDE_AND_HEIGHT, so
  default to older gralloc behavior.
* New behavior can be enabled by adding flag HAVE_NEW_GRALLOC

Change-Id: Iaa05c02d7e611c84b63c9afda0fcedb6d9b6e661
display: Use direct project pathmap

Change-Id: I95c38dca68831207d38f0b1b630e46280c734840
overlay: Bring back debug.mdpcomp.maxlayer

 * We're having underrun issues with 4-layer composition. It generally
   works, but when the system CPU ramps down and the device is mostly
   idle, underrun is happening.
 * Limiting to 3 layers solves the problem temporarily on these devices.
 * Readd the option so that the issue can be debugged without afflicting
   our current users with massive amounts of flickering.

Change-Id: I7ab7d013f65eaf12a3d21a91229dcaad6a815069
display: Add support for MDP 4.1

 * MDP 4.1 does not support the borderfill pipe and the baselayer logic
   should not be used.
 * Only use 3 pipes for MDP 4.1.

Change-Id: Ide542079902f35818300619f8eefd3d188342b5d
display: Fix support for MDP 4.1

 * MDP 4.1 still does not support the borderfill pipe, baselayer logic
   should not be used.

Change-Id: I587bdff4a03ced141e43819eea70cec1aedaeb7b
copybit: Fallback to SF heap when IOMMU isn't available

Change-Id: I0baa43a84fa12f8dbde8e958f1bb37f7a46f388b
gralloc: Backward compat for devices using older camera heap

Change-Id: I5d3feadd0c4dd629fcb3a750e9d4be0c6b3d6a6f
display: Add flag to allow legacy allocations from MM heap

 * New devices with IOMMU use the MM heap exclusively for protected
   buffers. We need to support the old behavior for devices with legacy
   userspace.
 * Enable the old behavior with TARGET_DISPLAY_INSECURE_MM_HEAP.

Change-Id: I7882354fa8f159c707be11d7021c18561abfb522
display: Properly handle NO_IOMMU case

 * Enable it by default for msm8660 too.

Change-Id: Icbd5de1e7f020285ff6101c34286ca8863b11040
display: Various cleanups, fix legacy camera heap

 * Add explicit support for camera heap, if requested
 * Don't push to MM heap for NO_IOMMU for display buffers

Change-Id: I30a8280099aa82e9b3e9754a4a68ad6a81f705f7