Lines Matching refs:walk
464 void acomp_walk_done_src(struct acomp_walk *walk, int used) in acomp_walk_done_src() argument
466 walk->slen -= used; in acomp_walk_done_src()
467 if ((walk->flags & ACOMP_WALK_SRC_LINEAR)) in acomp_walk_done_src()
468 scatterwalk_advance(&walk->in, used); in acomp_walk_done_src()
470 scatterwalk_done_src(&walk->in, used); in acomp_walk_done_src()
472 if ((walk->flags & ACOMP_WALK_SLEEP)) in acomp_walk_done_src()
477 void acomp_walk_done_dst(struct acomp_walk *walk, int used) in acomp_walk_done_dst() argument
479 walk->dlen -= used; in acomp_walk_done_dst()
480 if ((walk->flags & ACOMP_WALK_DST_LINEAR)) in acomp_walk_done_dst()
481 scatterwalk_advance(&walk->out, used); in acomp_walk_done_dst()
483 scatterwalk_done_dst(&walk->out, used); in acomp_walk_done_dst()
485 if ((walk->flags & ACOMP_WALK_SLEEP)) in acomp_walk_done_dst()
490 int acomp_walk_next_src(struct acomp_walk *walk) in acomp_walk_next_src() argument
492 unsigned int slen = walk->slen; in acomp_walk_next_src()
495 if (!preempt_model_preemptible() && (walk->flags & ACOMP_WALK_SLEEP)) in acomp_walk_next_src()
497 if ((walk->flags & ACOMP_WALK_SRC_LINEAR)) { in acomp_walk_next_src()
498 walk->in.__addr = (void *)(((u8 *)walk->in.sg) + in acomp_walk_next_src()
499 walk->in.offset); in acomp_walk_next_src()
503 return slen ? scatterwalk_next(&walk->in, slen) : 0; in acomp_walk_next_src()
507 int acomp_walk_next_dst(struct acomp_walk *walk) in acomp_walk_next_dst() argument
509 unsigned int dlen = walk->dlen; in acomp_walk_next_dst()
512 if (!preempt_model_preemptible() && (walk->flags & ACOMP_WALK_SLEEP)) in acomp_walk_next_dst()
514 if ((walk->flags & ACOMP_WALK_DST_LINEAR)) { in acomp_walk_next_dst()
515 walk->out.__addr = (void *)(((u8 *)walk->out.sg) + in acomp_walk_next_dst()
516 walk->out.offset); in acomp_walk_next_dst()
520 return dlen ? scatterwalk_next(&walk->out, dlen) : 0; in acomp_walk_next_dst()
524 int acomp_walk_virt(struct acomp_walk *__restrict walk, in acomp_walk_virt() argument
530 walk->slen = req->slen; in acomp_walk_virt()
531 walk->dlen = req->dlen; in acomp_walk_virt()
533 if (!walk->slen || !walk->dlen) in acomp_walk_virt()
536 walk->flags = 0; in acomp_walk_virt()
538 walk->flags |= ACOMP_WALK_SLEEP; in acomp_walk_virt()
540 walk->flags |= ACOMP_WALK_SRC_LINEAR; in acomp_walk_virt()
542 walk->flags |= ACOMP_WALK_DST_LINEAR; in acomp_walk_virt()
544 if ((walk->flags & ACOMP_WALK_SRC_LINEAR)) { in acomp_walk_virt()
545 walk->in.sg = (void *)req->svirt; in acomp_walk_virt()
546 walk->in.offset = 0; in acomp_walk_virt()
548 scatterwalk_start(&walk->in, src); in acomp_walk_virt()
549 if ((walk->flags & ACOMP_WALK_DST_LINEAR)) { in acomp_walk_virt()
550 walk->out.sg = (void *)req->dvirt; in acomp_walk_virt()
551 walk->out.offset = 0; in acomp_walk_virt()
553 scatterwalk_start(&walk->out, dst); in acomp_walk_virt()