The struct host_data is designed to host the host component specific datas, so 'host_' prefix there looks superfluous.
Here remove them, rename some members of host_data, and change comments to make them understandable.
Signed-off-by: Keyon Jie yang.jie@linux.intel.com --- src/audio/host.c | 92 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 46 deletions(-)
diff --git a/src/audio/host.c b/src/audio/host.c index 92b5cf3..195cd6c 100644 --- a/src/audio/host.c +++ b/src/audio/host.c @@ -72,12 +72,12 @@ struct host_data { struct hc_buf local; uint32_t host_size; volatile uint32_t *host_pos; /* read/write pos, update to mailbox for host side */ - uint32_t host_w_ptr; /* the host buffer write pos in bytes */ - uint32_t host_r_ptr; /* the host buffer read pos in bytes */ - uint32_t host_period_bytes; /* host period size(host_pos update period) in bytes */ - uint32_t host_period_pos; /* position in current host period */ - uint32_t host_avail; /* host buffer available size */ - uint32_t host_free; /* host buffer free size */ + uint32_t buff_w_off; /* the host side buffer write offset in bytes */ + uint32_t buff_r_off; /* the host side buffer read offset in bytes */ + uint32_t report_period; /* host_pos report/update to host side period, in bytes */ + uint32_t report_pos; /* position in current report period */ + uint32_t buff_avail; /* host side buffer available size */ + uint32_t buff_free; /* host side buffer free size */ /* pointers set during params to host or local above */ struct hc_buf *source; struct hc_buf *sink; @@ -91,13 +91,13 @@ struct host_data {
static void host_update_buffer(struct host_data *hd, uint32_t produce) { - if (hd->host_r_ptr < hd->host_w_ptr) - hd->host_avail = hd->host_w_ptr - hd->host_r_ptr; - else if (hd->host_r_ptr == hd->host_w_ptr) - hd->host_avail = produce ? hd->host_size : 0; + if (hd->buff_r_off < hd->buff_w_off) + hd->buff_avail = hd->buff_w_off - hd->buff_r_off; + else if (hd->buff_r_off == hd->buff_w_off) + hd->buff_avail = produce ? hd->host_size : 0; else - hd->host_avail = hd->host_size -hd->host_r_ptr + hd->host_w_ptr; - hd->host_free = hd->host_size - hd->host_avail; + hd->buff_avail = hd->host_size -hd->buff_r_off + hd->buff_w_off; + hd->buff_free = hd->host_size - hd->buff_avail; }
static inline struct dma_sg_elem *next_buffer(struct hc_buf *hc) @@ -150,22 +150,22 @@ static void host_dma_cb_playback(struct comp_dev *dev, comp_update_buffer_produce(hd->dma_buffer);
/* new local period, update host buffer position blks */ - hd->host_r_ptr += local_elem->size; + hd->buff_r_off += local_elem->size;
/* buffer overlap ? */ - if (hd->host_r_ptr >= hd->host_size) - hd->host_r_ptr = 0; + if (hd->buff_r_off >= hd->host_size) + hd->buff_r_off = 0; host_update_buffer(hd, 0); /* consume */
/* send IPC message to driver if needed */ - hd->host_period_pos += local_elem->size; - if (hd->host_period_pos >= hd->host_period_bytes) { - hd->host_period_pos = 0; + hd->report_pos += local_elem->size; + if (hd->report_pos >= hd->report_period) { + hd->report_pos = 0; /* for the last bytes/period, send notification later */ - if (hd->host_avail) { + if (hd->buff_avail) { /* update for host side */ if (hd->host_pos) { - *hd->host_pos = hd->host_r_ptr; + *hd->host_pos = hd->buff_r_off; ipc_stream_send_notification(dev, &hd->cp); } } @@ -204,8 +204,8 @@ static void host_dma_cb_playback(struct comp_dev *dev, local_elem->size = next_size;
/* check if avail is enough, otherwise, drain the last bytes and stop */ - if (hd->host_avail < local_elem->size) { - if (hd->host_avail == 0) { + if (hd->buff_avail < local_elem->size) { + if (hd->buff_avail == 0) { /* end of stream, stop */ next->size = DMA_RELOAD_END; need_copy = 0; @@ -217,12 +217,12 @@ static void host_dma_cb_playback(struct comp_dev *dev, }
/* end of stream, drain the last bytes */ - local_elem->size = hd->host_avail; + local_elem->size = hd->buff_avail;
/* the split_remaining may not be copied anymore, but, let's make it - correct. we have only hd->host_avail data, so the split_remaining - should be (next_size - hd->host_avail) bigger */ - hd->split_remaining += next_size - hd->host_avail; + correct. we have only hd->buff_avail data, so the split_remaining + should be (next_size - hd->buff_avail) bigger */ + hd->split_remaining += next_size - hd->buff_avail; }
next_copy: @@ -268,21 +268,21 @@ static void host_dma_cb_capture(struct comp_dev *dev, #endif
/* new local period, update host buffer position blks */ - hd->host_w_ptr += local_elem->size; + hd->buff_w_off += local_elem->size;
/* buffer overlap ? */ - if (hd->host_w_ptr >= hd->host_size) - hd->host_w_ptr = 0; + if (hd->buff_w_off >= hd->host_size) + hd->buff_w_off = 0; if (hd->host_pos) - *hd->host_pos = hd->host_w_ptr; + *hd->host_pos = hd->buff_w_off;
/* recalc available buffer space */ comp_update_buffer_consume(hd->dma_buffer);
/* send IPC message to driver if needed */ - hd->host_period_pos += local_elem->size; - if (hd->host_period_pos >= hd->host_period_bytes) { - hd->host_period_pos = 0; + hd->report_pos += local_elem->size; + if (hd->report_pos >= hd->report_period) { + hd->report_pos = 0; ipc_stream_send_notification(dev, &hd->cp); }
@@ -370,7 +370,7 @@ static uint32_t host_finish_work(void *data, uint32_t udelay) if (hd->host_pos) { *hd->host_pos = hd->params.direction == STREAM_DIRECTION_PLAYBACK ? - hd->host_r_ptr : hd->host_w_ptr; + hd->buff_r_off : hd->buff_w_off; /* send the last notification to host */ ipc_stream_send_notification(dev, &hd->cp); } @@ -606,7 +606,7 @@ static int host_prepare(struct comp_dev *dev) struct comp_buffer *dma_buffer;
if (hd->params.direction == STREAM_DIRECTION_PLAYBACK) { - hd->host_r_ptr = 0; + hd->buff_r_off = 0;
dma_buffer = list_first_item(&dev->bsink_list, struct comp_buffer, source_list); @@ -614,7 +614,7 @@ static int host_prepare(struct comp_dev *dev) dma_buffer->r_ptr = dma_buffer->addr; dma_buffer->w_ptr = dma_buffer->addr; } else { - hd->host_w_ptr = 0; + hd->buff_w_off = 0;
dma_buffer = list_first_item(&dev->bsource_list, struct comp_buffer, sink_list); @@ -625,8 +625,8 @@ static int host_prepare(struct comp_dev *dev)
if (hd->host_pos) *hd->host_pos = 0; - hd->host_period_pos = 0; - hd->host_period_bytes = + hd->report_pos = 0; + hd->report_period = hd->params.period_frames * hd->params.frame_size; hd->split_remaining = 0;
@@ -665,9 +665,9 @@ static int host_pointer_reset(struct comp_dev *dev) /* reset buffer pointers */ if (hd->host_pos) *hd->host_pos = 0; - hd->host_r_ptr = 0; - hd->host_w_ptr = 0; - hd->host_period_pos = 0; + hd->buff_r_off = 0; + hd->buff_w_off = 0; + hd->report_pos = 0;
host_update_buffer(hd, 0); /* consume */
@@ -727,11 +727,11 @@ static int host_cmd(struct comp_dev *dev, int cmd, void *data) app_pos = (struct ipc_intel_ipc_stream_set_position *)data;
if (hd->params.direction == STREAM_DIRECTION_PLAYBACK) { - hd->host_w_ptr = app_pos->position; + hd->buff_w_off = app_pos->position; host_update_buffer(hd, 1); /* produce */ } else { - hd->host_r_ptr = app_pos->position; + hd->buff_r_off = app_pos->position; host_update_buffer(hd, 0); /* consume */ } break; @@ -792,7 +792,7 @@ static int host_reset(struct comp_dev *dev) host_pointer_reset(dev); hd->host_pos = NULL;
- hd->host_period_bytes = 0; + hd->report_period = 0; hd->source = NULL; hd->sink = NULL; dev->state = COMP_STATE_INIT; @@ -812,10 +812,10 @@ static int host_copy(struct comp_dev *dev)
/* don't copy if the host side buffer is not ready */ if ((hd->params.direction == STREAM_DIRECTION_PLAYBACK) - && (hd->host_avail == 0)) + && (hd->buff_avail == 0)) return 0; if ((hd->params.direction == STREAM_DIRECTION_CAPTURE) - && (hd->host_free == 0)) + && (hd->buff_free == 0)) return 0;
/* do DMA transfer */