Merge "SurfaceTexture: improve texture matrix computation" into jb-dev
diff --git a/include/utils/Trace.h b/include/utils/Trace.h
index 032af1b..62f5d6b 100644
--- a/include/utils/Trace.h
+++ b/include/utils/Trace.h
@@ -49,7 +49,8 @@
 #define ATRACE_TAG_WINDOW_MANAGER   (1<<5)
 #define ATRACE_TAG_ACTIVITY_MANAGER (1<<6)
 #define ATRACE_TAG_SYNC_MANAGER     (1<<7)
-#define ATRACE_TAG_LAST             ATRACE_TAG_SYNC_MANAGER
+#define ATRACE_TAG_AUDIO            (1<<8)
+#define ATRACE_TAG_LAST             ATRACE_TAG_AUDIO
 
 #define ATRACE_TAG_VALID_MASK ((ATRACE_TAG_LAST - 1) | ATRACE_TAG_LAST)
 
diff --git a/libs/gui/BitTube.cpp b/libs/gui/BitTube.cpp
index 355a319..cf44bb9 100644
--- a/libs/gui/BitTube.cpp
+++ b/libs/gui/BitTube.cpp
@@ -140,8 +140,7 @@
         ssize_t size = tube->write(vaddr, objSize);
         if (size < 0) {
             // error occurred
-            numObjects = -size;
-            break;
+            return size;
         } else if (size == 0) {
             // no more space
             break;
@@ -160,8 +159,7 @@
         ssize_t size = tube->read(vaddr, objSize);
         if (size < 0) {
             // error occurred
-            numObjects = -size;
-            break;
+            return size;
         } else if (size == 0) {
             // no more messages
             break;
diff --git a/libs/gui/SensorEventQueue.cpp b/libs/gui/SensorEventQueue.cpp
index 04ba640..8a1bf41 100644
--- a/libs/gui/SensorEventQueue.cpp
+++ b/libs/gui/SensorEventQueue.cpp
@@ -79,14 +79,21 @@
     const int fd = getFd();
     sp<Looper> looper(getLooper());
 
+    int events;
     int32_t result;
     do {
-        result = looper->pollOnce(-1);
-        if (result == ALOOPER_EVENT_ERROR) {
+        result = looper->pollOnce(-1, NULL, &events, NULL);
+        if (result == ALOOPER_POLL_ERROR) {
             ALOGE("SensorEventQueue::waitForEvent error (errno=%d)", errno);
             result = -EPIPE; // unknown error, so we make up one
             break;
         }
+        if (events & ALOOPER_EVENT_HANGUP) {
+            // the other-side has died
+            ALOGE("SensorEventQueue::waitForEvent error HANGUP");
+            result = -EPIPE; // unknown error, so we make up one
+            break;
+        }
     } while (result != fd);
 
     return  (result == fd) ? status_t(NO_ERROR) : result;
diff --git a/libs/utils/Trace.cpp b/libs/utils/Trace.cpp
index f7d8abe..f3ec485 100644
--- a/libs/utils/Trace.cpp
+++ b/libs/utils/Trace.cpp
@@ -39,7 +39,7 @@
             // sEnabledTags remains zero indicating that no tracing can occur
         } else {
             char value[PROPERTY_VALUE_MAX];
-            property_get("atrace.tags.enableflags", value, "0");
+            property_get("debug.atrace.tags.enableflags", value, "0");
             sEnabledTags = (strtoll(value, NULL, 0) & ATRACE_TAG_VALID_MASK)
                     | ATRACE_TAG_ALWAYS;
         }