Lines Matching defs:sub

28 static void aiodma_pcm_irq(struct uniphier_aio_sub *sub)
30 struct snd_pcm_runtime *runtime = sub->substream->runtime;
35 spin_lock(&sub->lock);
36 ret = aiodma_rb_set_threshold(sub, runtime->dma_bytes,
37 sub->threshold + bytes);
39 sub->threshold += bytes;
41 aiodma_rb_sync(sub, runtime->dma_addr, runtime->dma_bytes, bytes);
42 aiodma_rb_clear_irq(sub);
43 spin_unlock(&sub->lock);
45 snd_pcm_period_elapsed(sub->substream);
48 static void aiodma_compr_irq(struct uniphier_aio_sub *sub)
50 struct snd_compr_runtime *runtime = sub->cstream->runtime;
54 spin_lock(&sub->lock);
55 ret = aiodma_rb_set_threshold(sub, sub->compr_bytes,
56 sub->threshold + bytes);
58 sub->threshold += bytes;
60 aiodma_rb_sync(sub, sub->compr_addr, sub->compr_bytes, bytes);
61 aiodma_rb_clear_irq(sub);
62 spin_unlock(&sub->lock);
64 snd_compr_fragment_elapsed(sub->cstream);
77 for (j = 0; j < ARRAY_SIZE(aio->sub); j++) {
78 struct uniphier_aio_sub *sub = &aio->sub[j];
81 if (!sub->running || !aiodma_rb_is_irq(sub))
84 if (sub->substream)
85 aiodma_pcm_irq(sub);
86 if (sub->cstream)
87 aiodma_compr_irq(sub);
113 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
119 ret = aiodma_ch_set_param(sub);
123 spin_lock_irqsave(&sub->lock, flags);
124 ret = aiodma_rb_set_buffer(sub, runtime->dma_addr,
127 spin_unlock_irqrestore(&sub->lock, flags);
140 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
146 spin_lock_irqsave(&sub->lock, flags);
149 aiodma_rb_sync(sub, runtime->dma_addr, runtime->dma_bytes,
151 aiodma_ch_set_enable(sub, 1);
152 sub->running = 1;
156 sub->running = 0;
157 aiodma_ch_set_enable(sub, 0);
164 spin_unlock_irqrestore(&sub->lock, flags);
176 struct uniphier_aio_sub *sub = &aio->sub[substream->stream];
182 spin_lock_irqsave(&sub->lock, flags);
183 aiodma_rb_sync(sub, runtime->dma_addr, runtime->dma_bytes, bytes);
185 if (sub->swm->dir == PORT_DIR_OUTPUT)
186 pos = bytes_to_frames(runtime, sub->rd_offs);
188 pos = bytes_to_frames(runtime, sub->wr_offs);
189 spin_unlock_irqrestore(&sub->lock, flags);