Lines Matching refs:data
32 struct sprd_pcm_dma_data data[SPRD_PCM_CHANNEL_MAX]; member
84 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_open() local
86 data->virt = dmam_alloc_coherent(dev, size, &data->phys, in sprd_pcm_open()
88 if (!data->virt) { in sprd_pcm_open()
102 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_open() local
104 if (data->virt) in sprd_pcm_open()
105 dmam_free_coherent(dev, size, data->virt, data->phys); in sprd_pcm_open()
122 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_close() local
124 dmam_free_coherent(dev, size, data->virt, data->phys); in sprd_pcm_close()
132 static void sprd_pcm_dma_complete(void *data) in sprd_pcm_dma_complete() argument
134 struct sprd_pcm_dma_private *dma_private = data; in sprd_pcm_dma_complete()
147 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_release_dma_channel() local
149 if (data->chan) { in sprd_pcm_release_dma_channel()
150 dma_release_channel(data->chan); in sprd_pcm_release_dma_channel()
151 data->chan = NULL; in sprd_pcm_release_dma_channel()
172 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_request_dma_channel() local
174 data->chan = dma_request_slave_channel(dev, in sprd_pcm_request_dma_channel()
176 if (!data->chan) { in sprd_pcm_request_dma_channel()
228 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_hw_params() local
229 struct dma_chan *chan = data->chan; in sprd_pcm_hw_params()
263 link.virt_addr = (unsigned long)data->virt; in sprd_pcm_hw_params()
264 link.phy_addr = data->phys; in sprd_pcm_hw_params()
279 data->desc = chan->device->device_prep_slave_sg(chan, sg, in sprd_pcm_hw_params()
282 if (!data->desc) { in sprd_pcm_hw_params()
289 data->desc->callback = sprd_pcm_dma_complete; in sprd_pcm_hw_params()
290 data->desc->callback_param = dma_private; in sprd_pcm_hw_params()
323 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_trigger() local
325 if (!data->desc) in sprd_pcm_trigger()
328 data->cookie = dmaengine_submit(data->desc); in sprd_pcm_trigger()
329 ret = dma_submit_error(data->cookie); in sprd_pcm_trigger()
337 dma_async_issue_pending(data->chan); in sprd_pcm_trigger()
344 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_trigger() local
346 if (data->chan) in sprd_pcm_trigger()
347 dmaengine_resume(data->chan); in sprd_pcm_trigger()
353 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_trigger() local
355 if (data->chan) in sprd_pcm_trigger()
356 dmaengine_terminate_async(data->chan); in sprd_pcm_trigger()
363 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_trigger() local
365 if (data->chan) in sprd_pcm_trigger()
366 dmaengine_pause(data->chan); in sprd_pcm_trigger()
389 struct sprd_pcm_dma_data *data = &dma_private->data[i]; in sprd_pcm_pointer() local
391 if (!data->chan) in sprd_pcm_pointer()
394 status = dmaengine_tx_status(data->chan, data->cookie, &state); in sprd_pcm_pointer()
410 sel_max = pointer[i] < data->pre_pointer ? 1 : 0; in sprd_pcm_pointer()
412 sel_max ^= pointer[i] < data->pre_pointer ? 1 : 0; in sprd_pcm_pointer()
422 data->pre_pointer = pointer[i]; in sprd_pcm_pointer()