diff --git a/services/camera/libcameraservice/Camera2Device.cpp b/services/camera/libcameraservice/Camera2Device.cpp
index d760313..b09fdcc 100644
--- a/services/camera/libcameraservice/Camera2Device.cpp
+++ b/services/camera/libcameraservice/Camera2Device.cpp
@@ -777,8 +777,10 @@
         }
 
         buffers[bufferIdx] = anwBuffers[bufferIdx]->handle;
+        ALOGV("%s: Buffer %p allocated", __FUNCTION__, (void*)(buffers[bufferIdx]));
     }
 
+    ALOGV("%s: Registering %d buffers with camera HAL", __FUNCTION__, mTotalBuffers);
     res = mDevice->ops->register_stream_buffers(mDevice,
             mId,
             mTotalBuffers,
@@ -791,6 +793,7 @@
     }
 
 cleanUpBuffers:
+    ALOGV("%s: Cleaning up %d buffers", __FUNCTION__, bufferIdx);
     for (uint32_t i = 0; i < bufferIdx; i++) {
         res = mConsumerInterface->cancelBuffer(mConsumerInterface.get(),
                 anwBuffers[i], -1);
@@ -881,12 +884,16 @@
     ANativeWindow *a = toANW(w);
     ANativeWindowBuffer* anb;
     res = native_window_dequeue_buffer_and_wait(a, &anb);
-    if (res != OK) return res;
+    if (res != OK) {
+        ALOGE("Stream %d dequeue: Error from native_window: %s (%d)", stream->mId,
+                strerror(-res), res);
+        return res;
+    }
 
     *buffer = &(anb->handle);
     stream->mActiveBuffers++;
 
-    ALOGVV("%s: Buffer %p", __FUNCTION__, *buffer);
+    ALOGVV("Stream %d dequeue: Buffer %p dequeued", stream->mId, (void*)(**buffer));
     return res;
 }
 
@@ -895,8 +902,8 @@
         buffer_handle_t* buffer) {
     StreamAdapter *stream =
             const_cast<StreamAdapter*>(static_cast<const StreamAdapter*>(w));
-    ALOGVV("%s: Stream %d: Buffer %p captured at %lld ns",
-            __FUNCTION__, stream->mId, buffer, timestamp);
+    ALOGVV("Stream %d enqueue: Buffer %p captured at %lld ns",
+            stream->mId, (void*)(*buffer), timestamp);
     int state = stream->mState;
     if (state != ACTIVE) {
         ALOGE("%s: Called when in bad state: %d", __FUNCTION__, state);
@@ -926,6 +933,8 @@
         buffer_handle_t* buffer) {
     StreamAdapter *stream =
             const_cast<StreamAdapter*>(static_cast<const StreamAdapter*>(w));
+    ALOGVV("Stream %d cancel: Buffer %p",
+            stream->mId, (void*)(*buffer));
     if (stream->mState != ACTIVE) {
         ALOGE("%s: Called when in bad state: %d", __FUNCTION__, stream->mState);
         return INVALID_OPERATION;
