diff --git a/modules/camera/Camera.cpp b/modules/camera/Camera.cpp
index 24cfe4f..6ae0a5d 100644
--- a/modules/camera/Camera.cpp
+++ b/modules/camera/Camera.cpp
@@ -17,10 +17,13 @@
 #include <cstdlib>
 #include <pthread.h>
 
-#define LOG_NDEBUG 0
+//#define LOG_NDEBUG 0
 #define LOG_TAG "Camera"
 #include <cutils/log.h>
 
+#define ATRACE_TAG (ATRACE_TAG_CAMERA | ATRACE_TAG_HAL)
+#include <cutils/trace.h>
+
 #include "Camera.h"
 
 namespace default_camera_hal {
@@ -57,9 +60,11 @@
 int Camera::open()
 {
     ALOGV("%s: camera id %d", __func__, mId);
+    ATRACE_BEGIN("open");
     pthread_mutex_lock(&mMutex);
     if (mBusy) {
         pthread_mutex_unlock(&mMutex);
+        ATRACE_END();
         ALOGE("%s:id%d: Error, device already in use.", __func__, mId);
         return -EBUSY;
     }
@@ -68,15 +73,18 @@
     mBusy = true;
 
     pthread_mutex_unlock(&mMutex);
+    ATRACE_END();
     return 0;
 }
 
 int Camera::close()
 {
     ALOGV("%s: camera id %d", __func__, mId);
+    ATRACE_BEGIN("close");
     pthread_mutex_lock(&mMutex);
     if (!mBusy) {
         pthread_mutex_unlock(&mMutex);
+        ATRACE_END();
         ALOGE("%s:id%d: Error, close() on not open device.", __func__, mId);
         return -EINVAL;
     }
@@ -85,6 +93,7 @@
     mBusy = false;
 
     pthread_mutex_unlock(&mMutex);
+    ATRACE_END();
     return 0;
 }
 
@@ -105,9 +114,11 @@
 
 void Camera::init()
 {
+    ATRACE_BEGIN("init");
     pthread_mutex_lock(&mMutex);
     if (mMetadata != NULL) {
         pthread_mutex_unlock(&mMutex);
+        ATRACE_END();
         return;
     }
 
@@ -115,6 +126,7 @@
     mMetadata = allocate_camera_metadata(1,1);
 
     pthread_mutex_unlock(&mMutex);
+    ATRACE_END();
 }
 
 } // namespace default_camera_hal
