 +    case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED:
 +    case HAL_PIXEL_FORMAT_YCrCb_420_SP_TILED:
 +    case HAL_PIXEL_FORMAT_YCbCr_420_P:
++    case HAL_PIXEL_FORMAT_YCrCb_420_P:
 +    case HAL_PIXEL_FORMAT_YCbCr_420_I:
 +    case HAL_PIXEL_FORMAT_CbYCrY_420_I:
 +    case HAL_PIXEL_FORMAT_YCBCR42XMBN:

     OMX_QCOM_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
     OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03,
     OMX_SEC_COLOR_FormatNV12Tiled = 0x7FC00002,
diff --git a/frameworks/native/include/ui/PixelFormat.h b/frameworks/native/include/ui/PixelFormat.h
index 9f3e267..d89790d 100644
--- a/frameworks/native/include/ui/PixelFormat.h

 /* IMG extensions */
 
 EGL_ENTRY(EGLBoolean, eglHibernateProcessIMG, void)
diff --git a/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp b/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
index cfa5443..83fada2 100644
--- a/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2760,6 +2760,9 @@ class GraphicProducerWrapper : public BBinder, public MessageHandler {
     uint32_t code;
     Parcel const* data;
     Parcel* reply;
+#ifdef STE_HARDWARE
+    Mutex mLock;
+#endif
 
     enum {
         MSG_API_CALL,
@@ -2772,6 +2775,9 @@ class GraphicProducerWrapper : public BBinder, public MessageHandler {
      */
     virtual status_t transact(uint32_t code,
             const Parcel& data, Parcel* reply, uint32_t flags) {
+#ifdef STE_HARDWARE
+        mLock.lock();
+#endif
         this->code = code;
         this->data = &data;
         this->reply = reply;
@@ -2784,6 +2790,9 @@ class GraphicProducerWrapper : public BBinder, public MessageHandler {
             looper->sendMessage(this, Message(MSG_API_CALL));
             barrier.wait();
         }
+#ifdef STE_HARDWARE
+        mLock.unlock();
+#endif
         return NO_ERROR;
     }
 
