Lines Matching refs:dma

107 					 struct cs5535audio_dma *dma,  in cs5535audio_build_dma_packets()  argument
119 if (dma->desc_buf.area == NULL) { in cs5535audio_build_dma_packets()
123 &dma->desc_buf) < 0) in cs5535audio_build_dma_packets()
125 dma->period_bytes = dma->periods = 0; in cs5535audio_build_dma_packets()
128 if (dma->periods == periods && dma->period_bytes == period_bytes) in cs5535audio_build_dma_packets()
134 desc_addr = (u32) dma->desc_buf.addr; in cs5535audio_build_dma_packets()
137 &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[i]; in cs5535audio_build_dma_packets()
145 lastdesc = &((struct cs5535audio_dma_desc *) dma->desc_buf.area)[periods]; in cs5535audio_build_dma_packets()
146 lastdesc->addr = cpu_to_le32((u32) dma->desc_buf.addr); in cs5535audio_build_dma_packets()
149 jmpprd_addr = (u32)dma->desc_buf.addr + in cs5535audio_build_dma_packets()
152 dma->substream = substream; in cs5535audio_build_dma_packets()
153 dma->period_bytes = period_bytes; in cs5535audio_build_dma_packets()
154 dma->periods = periods; in cs5535audio_build_dma_packets()
156 dma->ops->disable_dma(cs5535au); in cs5535audio_build_dma_packets()
157 dma->ops->setup_prd(cs5535au, jmpprd_addr); in cs5535audio_build_dma_packets()
225 struct cs5535audio_dma *dma, in cs5535audio_clear_dma_packets() argument
228 snd_dma_free_pages(&dma->desc_buf); in cs5535audio_clear_dma_packets()
229 dma->desc_buf.area = NULL; in cs5535audio_clear_dma_packets()
230 dma->substream = NULL; in cs5535audio_clear_dma_packets()
237 struct cs5535audio_dma *dma = substream->runtime->private_data; in snd_cs5535audio_hw_params() local
240 dma->buf_addr = substream->runtime->dma_addr; in snd_cs5535audio_hw_params()
241 dma->buf_bytes = params_buffer_bytes(hw_params); in snd_cs5535audio_hw_params()
243 err = cs5535audio_build_dma_packets(cs5535au, dma, substream, in snd_cs5535audio_hw_params()
247 dma->pcm_open_flag = 1; in snd_cs5535audio_hw_params()
255 struct cs5535audio_dma *dma = substream->runtime->private_data; in snd_cs5535audio_hw_free() local
257 if (dma->pcm_open_flag) { in snd_cs5535audio_hw_free()
264 dma->pcm_open_flag = 0; in snd_cs5535audio_hw_free()
266 cs5535audio_clear_dma_packets(cs5535au, dma, substream); in snd_cs5535audio_hw_free()
280 struct cs5535audio_dma *dma = substream->runtime->private_data; in snd_cs5535audio_trigger() local
286 dma->ops->pause_dma(cs5535au); in snd_cs5535audio_trigger()
289 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
292 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
295 dma->ops->enable_dma(cs5535au); in snd_cs5535audio_trigger()
298 dma->ops->disable_dma(cs5535au); in snd_cs5535audio_trigger()
301 dma->ops->disable_dma(cs5535au); in snd_cs5535audio_trigger()
317 struct cs5535audio_dma *dma; in snd_cs5535audio_pcm_pointer() local
319 dma = substream->runtime->private_data; in snd_cs5535audio_pcm_pointer()
320 curdma = dma->ops->read_dma_pntr(cs5535au); in snd_cs5535audio_pcm_pointer()
321 if (curdma < dma->buf_addr) { in snd_cs5535audio_pcm_pointer()
323 curdma, dma->buf_addr); in snd_cs5535audio_pcm_pointer()
326 curdma -= dma->buf_addr; in snd_cs5535audio_pcm_pointer()
327 if (curdma >= dma->buf_bytes) { in snd_cs5535audio_pcm_pointer()
329 curdma, dma->buf_bytes); in snd_cs5535audio_pcm_pointer()