Wait for buffers to drain

When a BufferQueue producer disconnects and reconnects, we retain
the previously-queued buffers but empty the slots.  This allows
the number of queued buffers to grow without limit.  The low-memory
killer does not approve.

Bug 11069934

Change-Id: Ia2eaa954c7a3904b54209a3701dba01689e204d8
Revert "remove support for glReadPixels screenshot path"

This reverts commit 3ca76f416bc8665a97636ca8a2d0128b9da9d92c.

Change-Id: I3a91c39a8cac64363afc58554d47b62b0510360d
SurfaceFlinger: try dropping features from EGL config query before giving up

Change-Id: I429ad841ef761dd9b036c6dca73b4af9337b277a
hwui: Update configuration for 2GB/1080p devices

Change-Id: I73357a35bee22d76d3fe8a98ece91c5c9d19371d

Conflicts:
	build/phone-xxhdpi-2048-hwui-memory.mk
Add heap configuration for 1080p phones with 2048m

 * Increase heap start size to 16m to minimize GC with larger bitmaps

Change-Id: I8fbba2e5a2a2cf2d7a6898ca6bae8639d6cf5a19
Native: toroplus radio fix due weird backlinks to surfacecomposer

Change-Id: Idb82ad064ca65927d80ce77c71f5c779552e26ae
GC triggering performance optimizations

Copy the correct starting heap size at process init.
Interfaces to set GC/managed heap parameters.

Change-Id: Ifbc6194310c61c05206f1d425ba5b4ebf8658141
Merge UDC changes from Perforce

//depot/aus/PE/Integrations/ds_udc/android/4.2.1_r1/int_releases \
/DS1.5.0.22_b1-Android-4.2.1_r1-QOEM-RFL

P4 Changelist: 721622

Change-Id: I9cfa5f45e99cf164bfbc6e00e801f2c1c1d70214
servicemanager: Add listen service to the service table

- Listen is a voice activation feature.
- When an application registers a "keyword" with
  ListenService, then events are sent to application
  when that keywork is spoken by user and detected
  by ListenEngine.
- ListenService runs within the MediaServer process.
  The ListenService needs to be added to service table
  in order for application thread to have permission
  to access Listen functionality.

Change-Id: I8c79bebc92920d0b62b12ef925cb35a59644ee86
Telephony(MSIM): Add support for MultiSim.

Add below services to service_manager to support MultiSim.
  phone_msim
  simphonebook_msim
  iphonesubinfo_msim
  isms_msim

Change-Id: Icbb8163a7b9a3d5c36764ebd5a2272e2bb6cc387
Revert "get rid of MemoryHeapPmem"

This reverts commit 7a7524810a0950c1c2b18014a8f1c637275165c4 and
makes MemoryHeapPmem conditioned to BOARD_NEEDS_MEMORYHEAPPMEM

Change-Id: I2f38340984ba87d6970d17ec944e3faded4132c8
exynos4: getphys implementation on buffermanager for samsung omx

Change-Id: Iee665f56aaf601479d796703db983ca5fce9c5c3

Conflicts:
	include/media/hardware/HardwareAPI.h
	include/ui/GraphicBufferMapper.h
	libs/ui/GraphicBufferMapper.cpp
exynos4: ui: define USAGE_HW_FIMC1 to support gralloc

Source:
http://git.insignal.co.kr/samsung/exynos/android/platform/frameworks/native/commit/?h=exynos-jb&id=5179fef67cadaa10d72cfe6764629565bc9a1e4e

Change-Id: Id194446eb332869f677dfb7e94c73aa3f52ee4b0
GraphicBuffer: exynos4: set FIMC1 usage bit on samsung specific formats

Change-Id: Ia8cde7e594f8be464ef15eaae453872ee5aa2768
libgui: Add ICS/MR0-compatible client::createSurface constructors

Change-Id: Ia5b04d93320c65ac32a92cbd93daa6a64e6cee1c
installd: Delete cache properly for devices using datadata partition

The java side already checks /data/data for free space but installd
still checks /data causing it to never reap the cache (because it
thinks that enough free space is available.)

Change-Id: I736af6ff7ea0c8ae07900168f6b8ac2f7a4dbe0b
surfaceflinger: Reimplement hwrotation

Change-Id: Ia26bb36b5b6de132af49c272c4472ad2703afbda
ui: exynos4: getphys is common

Change-Id: I1dc9c2ced0700072e7c30c8435676873b10c7026

Conflicts:
	include/ui/GraphicBufferMapper.h
	libs/ui/GraphicBufferMapper.cpp
libui: exynos4: apply FIMC usage flag on format HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED

Change-Id: I8a98e593cb60d0843e83a5e431142410e26d82e7
Sensor: Add RotationVectorSensor2

(ported from 4.1)

Some ICS apps (namely, Google Maps) expects a rotation vector to be
available. Newer devices, this is provided by either Android's
sensor fusion (requires Gyro) or by hardware sensor fusion (MPL).

Older devices will lack this virtual sensor and compass in Google
Maps will not work. To fix this, we can provide our own rotation
vector sensor by converting the values from the orientation sensor.
(They are basically the same information in different formats.)

Thanks to Unhelpful for the help with related math.

Change-Id: I39489b3a5ce7c7d890768614357f32cc491bd6d9

Conflicts:
	services/sensorservice/SensorService.cpp