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

Jie, Yang yang.jie at intel.com
Wed Feb 15 16:26:39 CET 2017


> -----Original Message-----
> From: Ughreja, Rakesh A
> Sent: Wednesday, February 15, 2017 11:15 PM
> To: Keyon Jie <yang.jie at linux.intel.com>; sound-open-firmware at alsa-
> project.org; liam.r.girdwood at linux.intel.com
> Cc: Zhang, Keqiao <keqiao.zhang at intel.com>; Jie, Yang <yang.jie at intel.com>;
> Ingalsuo, Seppo <seppo.ingalsuo at intel.com>
> Subject: RE: [Sound-open-firmware] [PATCH 3/5] host: host_copy(): add handle
> for capture
> 
> 
> 
> >-----Original Message-----
> >From: sound-open-firmware-bounces at alsa-project.org [mailto:sound-open-
> >firmware-bounces at alsa-project.org] On Behalf Of Keyon Jie
> >Sent: Wednesday, February 15, 2017 3:38 PM
> >To: sound-open-firmware at alsa-project.org;
> >liam.r.girdwood at linux.intel.com
> >Cc: Zhang, Keqiao <keqiao.zhang at intel.com>; Jie, Yang
> ><yang.jie at intel.com>; Ingalsuo, Seppo <seppo.ingalsuo at intel.com>; Keyon
> >Jie <yang.jie at linux.intel.com>
> >Subject: [Sound-open-firmware] [PATCH 3/5] host: host_copy(): add
> >handle for capture
> >
> >For playback, don't copy if there is no available data; For capture,
> >don't copy if there is no free host side buffer.
> 
> How would you know that there is data available in the ring buffer ?
> Are you talking about SPIB mode ?

We implemented the R/W pointers check mechanism, and the host_avail will
keep the ring buffer available size at runtime, you can refer to host.c for that.

We don't have SPIB mode concept in sound-open-firmware ATM.

Thanks,
~Keyon

> 
> >
> >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
> >
> >_______________________________________________
> >Sound-open-firmware mailing list
> >Sound-open-firmware at alsa-project.org
> >http://mailman.alsa-project.org/mailman/listinfo/sound-open-firmware


More information about the Sound-open-firmware mailing list