hwc: Add vsync support

[steven@steven676.net: squash in
I25c4155959bc4fac3359000697a1c01b43726092 ("hwc: rollback API version")]

Change-Id: I28cb84197f230c987fd15170f5c4a647e5a1b145
hwc: Support VSYNC notification via sysfs

* Poll on FB0 sysfs for VSYNC events. This requires kernel support to
  call sysfs_notify instead of sending a uevent.

Based on Change-Id I48734d8ffdd59dc1de7064fa004af1332ceb7623 from the
qcom hwc

Change-Id: Iafd947420e441981556ff3d2f62007fa89e2cc1d
hwc: update api version to v1

Changes adapted from OMAP4XXX HWC

Change-Id: Ie795387132dbe4125272465892ec7a57987a9ee6
hwc: call omap3_hwc_reset_screen() only once

Change-Id: I95a8cc5ddd1708fa9b0261b4e82a9e66b80d1aec
hwc: fix probable typo/thinko

Caught by this gcc warning:

hardware/ti/omap3/hwc/hwc.c: In function 'omap3_hwc_prepare':
hardware/ti/omap3/hwc/hwc.c:1054:31: warning: comparison between pointer and integer [enabled by default]

Change-Id: I1e34ba2e8de960585abe444908204ba5b485f354
hwc: silence a compiler warning

hardware/ti/omap3/hwc/hwc.c: In function 'omap3_hwc_prepare':
hardware/ti/omap3/hwc/hwc.c:1057:49: warning: assignment from incompatible pointer type [enabled by default]

Change-Id: I2f492ef390efeeb8a4ca5f94f1432665179c8eb6
hwc: Fix check for presence of sysfs vsync_time file

Change-Id: Ic3377463a87bd789b712fc688493dfdd7a2b0abd
hwc: use TARGET_SCREEN_WIDTH/TARGET_SCREEN_HEIGHT to set initial overlay size

Change-Id: I8f976b8104b9d4a95d2e8edb4f6a87e459bd10c6
hwc: allow building in Thumb mode on ARM

On an ARMv7 CPU like the OMAP3, Thumb mode brings a significant
reduction in code size without performance penalty (for that matter, the
reduced code size will reduce icache footprint, probably increasing
performance slightly).

Change-Id: I54ba1361a41f2df7ec3ae9ef7529638a2a18d25d