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
DisplayDevice: Backwards compatibility with old EGL

From 4.1 to 4.2, the display subsystem was reworked to
use SurfaceTextureClient/BufferQueue instead of
FramebufferNativeWindow for the framebuffer itself.

Unfortunately, some legacy EGL libraries make assumptions
that any framebuffer device will be FramebufferNativeWindow.

These EGL libraries will fail when used in 4.2 as if the
framebuffer is not FramebufferNativeWindow, they will
try to dequeue more than one buffer at a time, which
will cause a hang of the graphics subsystem.

This allows use of FramebufferNativeWindow to keep
legacy EGL implementations happy.  Confirmed EGL
implementations that need this include but are
not limited to:

Set BOARD_EGL_NEEDS_LEGACY_FB to use

Tegra2/3 ICS EGL
Mali400 ICS EGL (Allwinner A10)
Mali400 Jellybean (4.1) EGL (Samsung Exynos4)

Original implementation by OndraOrg of XDA:
http://forum.xda-developers.com/showpost.php?p=34469675&postcount=19

Change-Id: I74005cf6753b3c9bfb4c1e32fb641f5167787917
surfaceflinger: odd hw rotation (90/270) patch for swapping width/height

This patch works in addition to the following commit
re-implementing ro.sf.hwrotation:
https://github.com/CyanogenMod/android_frameworks_native/commit/7d283431efffc4402cb1a6cacf5da64729c883bb

When using values of 90 and 270 for ro.sf.hwrotation the
LCD width and height also need to be swapped to display properly.

NOTE: This patch does not fix the initial startup of bootanimation

Change-Id: Iab9de66348967a378dd73a41bc96d632f750386c
Signed-off-by: Hashcode <hashcode0f@gmail.com>
binder: Add MemoryHeapBaseIon

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

Change-Id: Ib06cc37a2a25c78a061ee2bad48eec2d01b07833
Merge "binder: Add MemoryHeapBaseIon" into mr1-staging
Merge "surfaceflinger: odd hw rotation (90/270) patch for swapping width/height" into mr1-staging
Revert "remove support for HWC < 1.0"

This partially reverts commit 30bcc61431d8e3bef779472dd52a7b156dcaba09
and updates to the current API. Tested on 0.1 blobs from Tegra2/3
and OMAP3/4

Change-Id: I43cee8852b266d68d1edefbe7ac988b9dbcf7227
dumpstate: Squash fixes from CM 10.0

commit ba3723de8d13126027706bbbe6f9657da231b9bd
Author: Mike Kasick <mike@kasick.org>
Date:   Wed Oct 31 20:31:05 2012 -0400

    dumpstate: Fix calls to su to specify a shell command

    Superuser's su requires that shell commands be specified with the "-c"
    option.  Fix calls to su to explicitly specify this option.

commit 78cd73fce82fd0b5ee98a6136c847932ba8c636b
Author: Mike Kasick <mike@kasick.org>
Date:   Wed Oct 31 18:53:58 2012 -0400

    dumpstate: Skip subsequent showmaps if the first run fails.

    dumpstate takes over six minutes to run as each call to "su" (which
    dumpstate uses opportunistically on states that require root privileges to
    access) takes approximately one second to process.

    The vast majority of these "su" calls are made to "showmap", which is
    called for every running process.  These calls nearly always fail, either
    because dumpstate is denied root access, or because "showmap" isn't
    installed.

    This greatly speeds up the dumpstate process by skipping subsequent
    "showmap" attempts if the first run (on process init) fails.

Change-Id: Ibdfa996afff541dc30251da7ab01ac4987ae2ebc
Add setOrientation back

	this is needed for some tegra ICS and JB_MR0 prebuilts
Merge branch 'jb-mr1-release' of https://android.googlesource.com/platform/frameworks/native into aosp
ui/sf: Add support for exynos HDMI

Change-Id: I27b34e95c04750e3dd321a2183b6cc1d89f29b5d
sensors: Add dummy light sensor

Some devices have a sysfs toggle for the lightsensor instead of
passing the LUX values for userspace processing; for those,
use BOARD_SYSFS_LIGHT_SENSOR:=<sysfs path>

This is necessary for the rest of userspace to recognize its existence
and toggle it for auto-brightness. It doesn't generate actual light
values, though; all backlight adjustments are made in-kernel.

Change-Id: I0e546b4740720bd34d1e1d85a96b295fcc697106

sensors: dummy ls: set unique handle

handles and types are usually the same, but it's not mandatory.
Sony DASH use custom handles, and the previous assumption broke
Proximity sensor on Sony devices.

Change-Id: I954e13765f42341e6b5393a12556f6a007c4e494
sensordevice: Dummy ALS: Solve fortified libc warning

convert sprint to snprintf, the size of the writes is always known

Change-Id: I53ee36b67544ac25de7e5c05ce90b6817c8a9c92
JB_MR1: native/libs/ui: Adding fix for conf 2.0 seg faults

function call to cancelBuffer was resulted in seg-faults on conf 2.0.
Setting function pointer of cancelBuffer to null in order to select
correct path of execution.
CRs-fixed: 383715

Change-Id: I6de8355febaea86ded63f33a582c787fef862193
FM Radio: Add support for FM Radio in Android

moved permissions to frameworks/native

Change-Id: I27ded70f7bc116a1b1c9cff2383c4899afe746ec
SurfaceFlinger: Change to support framebuffer flip for 2D blitters

- Surfaceflinger does not flip framebuffers when there are
  no layers marked for HWC_FRAMEBUFFER
- This change checks for the HWC_BLIT flag and will request a flip
  to a new FB_TARGET buffer even if there are no FRAMEBUFFER layers

Change-Id: I1cb44389a05c9ec049d7f0d39c288feccb11a91c
SurfaceComposerClient: bring back getDisplayWidth, Height & Orientation

enable it with either ICS_CAMERA_BLOB or MR0_CAMERA_BLOB CFLAG

Change-Id: Ieb5d36ad2a87ed1f0aa28ae3afbd5d48c880d6ab
Merge "FM Radio: Add support for FM Radio in Android" into cm-10.1
libgui: Use fences for all QCOM targets

Change-Id: I32d6d8c8c06a2541aa655fb8f2a99c2c0ac0f64b
Merge tag 'android-4.2.2_r1' of https://android.googlesource.com/platform/frameworks/native into 1.1

Android 4.2.2 release 1

Conflicts:
	libs/ui/GraphicBufferAllocator.cpp

Change-Id: Id60a6580bf5a3ba04f8e1e2b1b950e0b93888166