diff --git a/modules/gralloc/gralloc.cpp b/modules/gralloc/gralloc.cpp
index 87bda97..f7ea01c 100644
--- a/modules/gralloc/gralloc.cpp
+++ b/modules/gralloc/gralloc.cpp
@@ -224,7 +224,11 @@
         case HAL_PIXEL_FORMAT_RAW16:
             bytesPerPixel = 2;
             break;
+        case HAL_PIXEL_FORMAT_BLOB:
+            bytesPerPixel = 1;
+            break;
         default:
+            ALOGE("gralloc_alloc bad format %d", format);
             return -EINVAL;
     }
 
diff --git a/modules/sensors/dynamic_sensor/HidRawDevice.cpp b/modules/sensors/dynamic_sensor/HidRawDevice.cpp
index 2588483..6032ed9 100644
--- a/modules/sensors/dynamic_sensor/HidRawDevice.cpp
+++ b/modules/sensors/dynamic_sensor/HidRawDevice.cpp
@@ -204,7 +204,7 @@
     int res = ::ioctl(mDevFd, HIDIOCGFEATURE(size), mIoBuffer.data());
     if (res < 0) {
         LOG_E << "HidRawDevice::getFeature: feature " << static_cast<int>(id)
-              << " ioctl returns " << res << " (" << ::strerror(res) << ")" << LOG_ENDL;
+              << " ioctl returned " << res << ", errno: " << ::strerror(errno) << LOG_ENDL;
         return false;
     }
 
@@ -249,8 +249,8 @@
     std::copy(in.begin(), in.end(), &mIoBuffer[1]);
     int res = ::ioctl(mDevFd, HIDIOCSFEATURE(size), mIoBuffer.data());
     if (res < 0) {
-        LOG_E << "HidRawDevice::setFeature: feature " << id << " ioctl returns " << res
-              << " (" << ::strerror(res) << ")" << LOG_ENDL;
+        LOG_E << "HidRawDevice::setFeature: feature " << id << " ioctl returned " << res
+              << ", errno: " << ::strerror(errno) << LOG_ENDL;
         return false;
     }
     return true;
@@ -287,8 +287,8 @@
         res = ::write(mDevFd, data.data(), size);
     }
     if (res < 0) {
-        LOG_E << "HidRawDevice::sendReport: output " << id << " write returns " << res
-              << " (" << ::strerror(res) << ")" << LOG_ENDL;
+        LOG_E << "HidRawDevice::sendReport: output " << id << " write returned "
+              << res << ", errno: " << ::strerror(errno) << LOG_ENDL;
         return false;
     }
     return true;
@@ -302,8 +302,8 @@
     uint8_t buffer[256];
     int res = ::read(mDevFd, buffer, 256);
     if (res < 0) {
-        LOG_E << "HidRawDevice::receiveReport: read returns " << res
-              << " (" << ::strerror(res) << ")" << LOG_ENDL;
+        LOG_E << "HidRawDevice::receiveReport: read returned " << res
+              << ", errno: " << ::strerror(errno) << LOG_ENDL;
         return false;
     }
 
diff --git a/modules/usbaudio/audio_hal.c b/modules/usbaudio/audio_hal.c
index 1bd53c2..43f8d24 100644
--- a/modules/usbaudio/audio_hal.c
+++ b/modules/usbaudio/audio_hal.c
@@ -1855,10 +1855,16 @@
     if (!wasStandby) {
         device_lock(adev);
         if (in != NULL) {
-            start_input_stream(in);
+            ret = start_input_stream(in);
+            if (!ret) {
+                in->standby = false;
+            }
         }
         if (out != NULL) {
-            start_output_stream(out);
+            ret = start_output_stream(out);
+            if (!ret) {
+                out->standby = false;
+            }
         }
         device_unlock(adev);
     }
