On 3/28/18 9:54 AM, Liam Girdwood wrote:
Add a new component API for performing atomic stream state change operations. This leave the cmd API for non atomic usage.
This patch also does some renaming to use _trigger() instead of _cmd().
Signed-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com
If no objections, I'll push to a topic branch for full testing prior to merge with 1.1-stable.
The only unexpected change is this one:
diff --git a/src/audio/dai.c b/src/audio/dai.c index 53536ed3..e20283dd 100644 --- a/src/audio/dai.c +++ b/src/audio/dai.c @@ -72,8 +72,6 @@ struct dai_data { uint64_t wallclock; /* wall clock at stream start */ };
-static int dai_cmd(struct comp_dev *dev, int cmd, void *data);
- /* this is called by DMA driver every time descriptor has completed */ static void dai_dma_cb(void *data, uint32_t type, struct dma_sg_elem *next) {
@@ -88,13 +86,15 @@ static void dai_dma_cb(void *data, uint32_t type, struct dma_sg_elem *next) if (dev->state != COMP_STATE_ACTIVE && dd->xrun == 0) {
/* stop the DAI */
dai_trigger(dd->dai, COMP_CMD_STOP, dev->params.direction);
dai_trigger(dd->dai, COMP_TRIGGER_STOP, dev->params.direction);
/* tell DMA not to reload */ next->size = DMA_RELOAD_END;
/* inform waiters */ wait_completed(&dd->complete);
return;
looks like a change that isn't related to this patch and should be added regardless?
}
/* is our pipeline handling an XRUN ? */ @@ -435,7 +435,7 @@ static int dai_prepare(struct comp_dev *dev)
trace_dai("pre");
- ret = comp_set_state(dev, COMP_CMD_PREPARE);
- ret = comp_set_state(dev, COMP_TRIGGER_PREPARE); if (ret < 0) return ret;