[Sound-open-firmware] [PATCH 3/5] host: host_copy(): add handle for capture

Keyon Jie yang.jie at linux.intel.com
Wed Feb 15 11:07:57 CET 2017


For playback, don't copy if there is no available data;
For capture, don't copy if there is no free host side buffer.

Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
---
 src/audio/host.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/audio/host.c b/src/audio/host.c
index b604ddc..61d2b62 100644
--- a/src/audio/host.c
+++ b/src/audio/host.c
@@ -815,7 +815,10 @@ static int host_copy(struct comp_dev *dev)
 	if (dev->state != COMP_STATE_RUNNING)
 		return 0;
 
-	if (hd->host_avail == 0)
+	/* don't copy if the host side buffer is not ready */
+	if (((hd->params.direction == STREAM_DIRECTION_PLAYBACK)
+	    &&  (hd->host_avail == 0)) || ((hd->host_free == 0) &&
+	    (hd->params.direction == STREAM_DIRECTION_CAPTURE)))
 		return 0;
 
 	/* do DMA transfer */
-- 
2.7.4



More information about the Sound-open-firmware mailing list