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 0aed4a7..ca8c8ac 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1747,6 +1747,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) {
send_offload_cmd_l(out, OFFLOAD_CMD_WAIT_FOR_BUFFER);
@@ -1773,7 +1775,9 @@
ret = pcm_mmap_write(out->pcm, (void *)buffer, bytes);
else
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));
}
}
@@ -1815,6 +1819,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);
}
@@ -2189,6 +2195,8 @@
ret = pcm_mmap_read(in->pcm, buffer, bytes);
else
ret = pcm_read(in->pcm, buffer, bytes);
+ if (ret < 0)
+ ret = -errno;
}
/*