audio: Update error number in HAL

- Error number is not propagated from pcm/compress driver on
  pcm/compress error
- Read error number in HAL from errno define

Change-Id: I998f9a098da4061a6f3b3d9908aaad6e6d9a3a86
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 4d8925d..e9cddf5 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1808,6 +1808,8 @@
         }
 
         ret = compress_write(out->compr, buffer, bytes);
+        if (ret < 0)
+            ret = -errno;
         ALOGVV("%s: writing buffer (%d bytes) to compress device returned %d", __func__, bytes, ret);
         if (ret >= 0 && ret < (ssize_t)bytes) {
             ALOGD("No space available in compress driver, post msg to cb thread");
@@ -1832,7 +1834,9 @@
                 memset((void *)buffer, 0, bytes);
             ALOGVV("%s: writing buffer (%d bytes) to pcm device", __func__, bytes);
             ret = pcm_write(out->pcm, (void *)buffer, bytes);
-            if (ret == 0)
+            if (ret < 0)
+                ret = -errno;
+            else if (ret == 0)
                 out->written += bytes / (out->config.channels * sizeof(short));
         }
     }
@@ -1874,6 +1878,8 @@
         if (out->compr != NULL) {
             ret = compress_get_tstamp(out->compr, (unsigned long *)dsp_frames,
                     &out->sample_rate);
+            if (ret < 0)
+                ret = -errno;
             ALOGVV("%s rendered frames %d sample_rate %d",
                    __func__, *dsp_frames, out->sample_rate);
         }
@@ -2248,6 +2254,8 @@
             ret = audio_extn_compr_cap_read(in, buffer, bytes);
         else
             ret = pcm_read(in->pcm, buffer, bytes);
+        if (ret < 0)
+            ret = -errno;
     }
 
     /*