Lines Matching refs:dma

106 					 struct cs5535audio_dma *dma,  in cs5535audio_build_dma_packets()  argument
118 if (dma->desc_buf.area == NULL) { in cs5535audio_build_dma_packets()
122 &dma->desc_buf) < 0) in cs5535audio_build_dma_packets()
124 dma->period_bytes = dma->periods = 0; in cs5535audio_build_dma_packets()
127 if (dma->periods == periods && dma->period_bytes == period_bytes) in cs5535audio_build_dma_packets()
133 desc_addr = (u32) dma->desc_buf.addr; in cs5535audio_build_dma_packets()
136 &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[i]; in cs5535audio_build_dma_packets()
144 lastdesc = &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[periods]; in cs5535audio_build_dma_packets()
145 lastdesc->addr = cpu_to_le32((u32) dma->desc_buf.addr); in cs5535audio_build_dma_packets()
148 jmpprd_addr = (u32)dma->desc_buf.addr + in cs5535audio_build_dma_packets()
151 dma->substream = substream; in cs5535audio_build_dma_packets()
152 dma->period_bytes = period_bytes; in cs5535audio_build_dma_packets()
153 dma->periods = periods; in cs5535audio_build_dma_packets()
155 dma->ops->disable_dma(cs5535au); in cs5535audio_build_dma_packets()
156 dma->ops->setup_prd(cs5535au, jmpprd_addr); in cs5535audio_build_dma_packets()
224 struct cs5535audio_dma *dma, in cs5535audio_clear_dma_packets() argument
227 snd_dma_free_pages(&dma->desc_buf); in cs5535audio_clear_dma_packets()
228 dma->desc_buf.area = NULL; in cs5535audio_clear_dma_packets()
229 dma->substream = NULL; in cs5535audio_clear_dma_packets()
236 struct cs5535audio_dma *dma = substream->runtime->private_data; in snd_cs5535audio_hw_params() local
239 dma->buf_addr = substream->runtime->dma_addr; in snd_cs5535audio_hw_params()
240 dma->buf_bytes = params_buffer_bytes(hw_params); in snd_cs5535audio_hw_params()
242 err = cs5535audio_build_dma_packets(cs5535au, dma, substream, in snd_cs5535audio_hw_params()
246 dma->pcm_open_flag = 1; in snd_cs5535audio_hw_params()
254 struct cs5535audio_dma *dma = substream->runtime->private_data; in snd_cs5535audio_hw_free() local
256 if (dma->pcm_open_flag) { in snd_cs5535audio_hw_free()
263 dma->pcm_open_flag = 0; in snd_cs5535audio_hw_free()
265 cs5535audio_clear_dma_packets(cs5535au, dma, substream); in snd_cs5535audio_hw_free()
279 struct cs5535audio_dma *dma = substream->runtime->private_data; in snd_cs5535audio_trigger() local
285 dma->ops->pause_dma(cs5535au); in snd_cs5535audio_trigger()
288 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
291 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
294 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
297 dma->ops->disable_dma(cs5535au); in snd_cs5535audio_trigger()
300 dma->ops->disable_dma(cs5535au); in snd_cs5535audio_trigger()
316 struct cs5535audio_dma *dma; in snd_cs5535audio_pcm_pointer() local
318 dma = substream->runtime->private_data; in snd_cs5535audio_pcm_pointer()
319 curdma = dma->ops->read_dma_pntr(cs5535au); in snd_cs5535audio_pcm_pointer()
320 if (curdma < dma->buf_addr) { in snd_cs5535audio_pcm_pointer()
322 curdma, dma->buf_addr); in snd_cs5535audio_pcm_pointer()
325 curdma -= dma->buf_addr; in snd_cs5535audio_pcm_pointer()
326 if (curdma >= dma->buf_bytes) { in snd_cs5535audio_pcm_pointer()
328 curdma, dma->buf_bytes); in snd_cs5535audio_pcm_pointer()