Lines Matching refs:cl_dev

82 	ctx->cl_dev.frags = 0;  in skl_cldma_setup_bdle()
85 (ctx->cl_dev.frags * ctx->cl_dev.bufsize)); in skl_cldma_setup_bdle()
90 bdl[2] = cpu_to_le32(ctx->cl_dev.bufsize); in skl_cldma_setup_bdle()
92 size -= ctx->cl_dev.bufsize; in skl_cldma_setup_bdle()
96 ctx->cl_dev.frags++; in skl_cldma_setup_bdle()
155 ctx->dsp_ops.free_dma_buf(ctx->dev, &ctx->cl_dev.dmab_data); in skl_cldma_cleanup()
156 ctx->dsp_ops.free_dma_buf(ctx->dev, &ctx->cl_dev.dmab_bdl); in skl_cldma_cleanup()
163 if (!wait_event_timeout(ctx->cl_dev.wait_queue, in skl_cldma_wait_interruptible()
164 ctx->cl_dev.wait_condition, in skl_cldma_wait_interruptible()
172 if (ctx->cl_dev.wake_status != SKL_CL_DMA_BUF_COMPLETE) { in skl_cldma_wait_interruptible()
178 ctx->cl_dev.wake_status = SKL_CL_DMA_STATUS_NONE; in skl_cldma_wait_interruptible()
192 ctx->cl_dev.dma_buffer_offset, trigger); in skl_cldma_fill_buffer()
193 dev_dbg(ctx->dev, "spib position: %d\n", ctx->cl_dev.curr_spib_pos); in skl_cldma_fill_buffer()
200 if (ctx->cl_dev.dma_buffer_offset + size > ctx->cl_dev.bufsize) { in skl_cldma_fill_buffer()
201 unsigned int size_b = ctx->cl_dev.bufsize - in skl_cldma_fill_buffer()
202 ctx->cl_dev.dma_buffer_offset; in skl_cldma_fill_buffer()
203 memcpy(ctx->cl_dev.dmab_data.area + ctx->cl_dev.dma_buffer_offset, in skl_cldma_fill_buffer()
207 ctx->cl_dev.dma_buffer_offset = 0; in skl_cldma_fill_buffer()
210 memcpy(ctx->cl_dev.dmab_data.area + ctx->cl_dev.dma_buffer_offset, in skl_cldma_fill_buffer()
213 if (ctx->cl_dev.curr_spib_pos == ctx->cl_dev.bufsize) in skl_cldma_fill_buffer()
214 ctx->cl_dev.dma_buffer_offset = 0; in skl_cldma_fill_buffer()
216 ctx->cl_dev.dma_buffer_offset = ctx->cl_dev.curr_spib_pos; in skl_cldma_fill_buffer()
218 ctx->cl_dev.wait_condition = false; in skl_cldma_fill_buffer()
223 ctx->cl_dev.ops.cl_setup_spb(ctx, ctx->cl_dev.curr_spib_pos, trigger); in skl_cldma_fill_buffer()
225 ctx->cl_dev.ops.cl_trigger(ctx, true); in skl_cldma_fill_buffer()
260 if (bytes_left > ctx->cl_dev.bufsize) { in skl_cldma_copy_to_buf()
266 if (ctx->cl_dev.curr_spib_pos == 0) in skl_cldma_copy_to_buf()
267 ctx->cl_dev.curr_spib_pos = ctx->cl_dev.bufsize; in skl_cldma_copy_to_buf()
269 size = ctx->cl_dev.bufsize; in skl_cldma_copy_to_buf()
283 if ((ctx->cl_dev.curr_spib_pos + bytes_left) in skl_cldma_copy_to_buf()
284 <= ctx->cl_dev.bufsize) { in skl_cldma_copy_to_buf()
285 ctx->cl_dev.curr_spib_pos += bytes_left; in skl_cldma_copy_to_buf()
288 (ctx->cl_dev.bufsize - in skl_cldma_copy_to_buf()
289 ctx->cl_dev.curr_spib_pos); in skl_cldma_copy_to_buf()
290 ctx->cl_dev.curr_spib_pos = excess_bytes; in skl_cldma_copy_to_buf()
314 ctx->cl_dev.wake_status = SKL_CL_DMA_ERR; in skl_cldma_process_intr()
316 ctx->cl_dev.wake_status = SKL_CL_DMA_BUF_COMPLETE; in skl_cldma_process_intr()
318 ctx->cl_dev.wait_condition = true; in skl_cldma_process_intr()
319 wake_up(&ctx->cl_dev.wait_queue); in skl_cldma_process_intr()
327 ctx->cl_dev.bufsize = SKL_MAX_BUFFER_SIZE; in skl_cldma_prepare()
330 ctx->cl_dev.ops.cl_setup_bdle = skl_cldma_setup_bdle; in skl_cldma_prepare()
331 ctx->cl_dev.ops.cl_setup_controller = skl_cldma_setup_controller; in skl_cldma_prepare()
332 ctx->cl_dev.ops.cl_setup_spb = skl_cldma_setup_spb; in skl_cldma_prepare()
333 ctx->cl_dev.ops.cl_cleanup_spb = skl_cldma_cleanup_spb; in skl_cldma_prepare()
334 ctx->cl_dev.ops.cl_trigger = skl_cldma_stream_run; in skl_cldma_prepare()
335 ctx->cl_dev.ops.cl_cleanup_controller = skl_cldma_cleanup; in skl_cldma_prepare()
336 ctx->cl_dev.ops.cl_copy_to_dmabuf = skl_cldma_copy_to_buf; in skl_cldma_prepare()
337 ctx->cl_dev.ops.cl_stop_dma = skl_cldma_stop; in skl_cldma_prepare()
341 &ctx->cl_dev.dmab_data, ctx->cl_dev.bufsize); in skl_cldma_prepare()
348 &ctx->cl_dev.dmab_bdl, PAGE_SIZE); in skl_cldma_prepare()
351 ctx->dsp_ops.free_dma_buf(ctx->dev, &ctx->cl_dev.dmab_data); in skl_cldma_prepare()
354 bdl = (__le32 *)ctx->cl_dev.dmab_bdl.area; in skl_cldma_prepare()
357 ctx->cl_dev.ops.cl_setup_bdle(ctx, &ctx->cl_dev.dmab_data, in skl_cldma_prepare()
358 &bdl, ctx->cl_dev.bufsize, 1); in skl_cldma_prepare()
359 ctx->cl_dev.ops.cl_setup_controller(ctx, &ctx->cl_dev.dmab_bdl, in skl_cldma_prepare()
360 ctx->cl_dev.bufsize, ctx->cl_dev.frags); in skl_cldma_prepare()
362 ctx->cl_dev.curr_spib_pos = 0; in skl_cldma_prepare()
363 ctx->cl_dev.dma_buffer_offset = 0; in skl_cldma_prepare()
364 init_waitqueue_head(&ctx->cl_dev.wait_queue); in skl_cldma_prepare()