Lines Matching refs:wseq

3489 static void cs_dsp_wseq_clear(struct cs_dsp *dsp, struct cs_dsp_wseq *wseq)  in cs_dsp_wseq_clear()  argument
3493 list_for_each_entry_safe(op, op_tmp, &wseq->ops, list) { in cs_dsp_wseq_clear()
3499 static int cs_dsp_populate_wseq(struct cs_dsp *dsp, struct cs_dsp_wseq *wseq) in cs_dsp_populate_wseq() argument
3506 if (!wseq->ctl) { in cs_dsp_populate_wseq()
3511 words = kzalloc(wseq->ctl->len, GFP_KERNEL); in cs_dsp_populate_wseq()
3515 ret = cs_dsp_coeff_read_ctrl(wseq->ctl, 0, words, wseq->ctl->len); in cs_dsp_populate_wseq()
3517 cs_dsp_err(dsp, "Failed to read %s: %d\n", wseq->ctl->subname, ret); in cs_dsp_populate_wseq()
3521 INIT_LIST_HEAD(&wseq->ops); in cs_dsp_populate_wseq()
3523 chunk = cs_dsp_chunk(words, wseq->ctl->len); in cs_dsp_populate_wseq()
3562 list_add_tail(&op->list, &wseq->ops); in cs_dsp_populate_wseq()
3569 cs_dsp_err(dsp, "%s missing end terminator\n", wseq->ctl->subname); in cs_dsp_populate_wseq()
3637 int cs_dsp_wseq_write(struct cs_dsp *dsp, struct cs_dsp_wseq *wseq, in cs_dsp_wseq_write() argument
3646 op_new = cs_dsp_wseq_find_op(addr, op_code, &wseq->ops); in cs_dsp_wseq_write()
3650 op_end = cs_dsp_wseq_find_op(0, CS_DSP_WSEQ_END, &wseq->ops); in cs_dsp_wseq_write()
3652 cs_dsp_err(dsp, "Missing terminator for %s\n", wseq->ctl->subname); in cs_dsp_wseq_write()
3690 if (wseq->ctl->len - op_end->offset < new_op_size) { in cs_dsp_wseq_write()
3691 cs_dsp_err(dsp, "Not enough memory in %s for entry\n", wseq->ctl->subname); in cs_dsp_wseq_write()
3698 ret = cs_dsp_coeff_write_ctrl(wseq->ctl, op_end->offset / sizeof(u32), in cs_dsp_wseq_write()
3706 ret = cs_dsp_coeff_write_ctrl(wseq->ctl, op_new->offset / sizeof(u32), in cs_dsp_wseq_write()
3735 int cs_dsp_wseq_multi_write(struct cs_dsp *dsp, struct cs_dsp_wseq *wseq, in cs_dsp_wseq_multi_write() argument
3742 ret = cs_dsp_wseq_write(dsp, wseq, reg_seq[i].reg, in cs_dsp_wseq_multi_write()