Android side of the fix for [2121211] Sholes has stutter during animations

a new method, compostionComplete() is added to the framebuffer hal, it is used by surfaceflinger to signal the driver that the composition is complete, BEFORE it releases its client. This gives a chance to the driver to perfrom the proper synchronization.
diff --git a/include/hardware/gralloc.h b/include/hardware/gralloc.h
index cdf415a..5e868e6 100644
--- a/include/hardware/gralloc.h
+++ b/include/hardware/gralloc.h
@@ -162,6 +162,8 @@
     int (*unlock)(struct gralloc_module_t const* module,
             buffer_handle_t handle);
 
+    /* reserved for future use */
+    void* reserved_proc[8];
 } gralloc_module_t;
 
 /*****************************************************************************/
@@ -254,7 +256,7 @@
      * the screen to the display panel, upon demand -- as opposed to
      * constantly refreshing the panel 60 times per second, for instance.
      * 
-     * Only the area defined by this rectangle is guranteed to be valid, that
+     * Only the area defined by this rectangle is guaranteed to be valid, that
      * is, the driver is not allowed to post anything outside of this
      * rectangle. 
      * 
@@ -287,6 +289,15 @@
      */
     int (*post)(struct framebuffer_device_t* dev, buffer_handle_t buffer);
 
+
+    /*
+     * The (*compositionComplete)() method must be called after the
+     * compositor has finished issuing GL commands for client buffers.
+     */
+
+    int (*compositionComplete)(struct framebuffer_device_t* dev);
+
+
     void* reserved_proc[8];
 
 } framebuffer_device_t;