Lines Matching refs:pcd
134 static void au1x_pcm_dbdma_free(struct au1xpsc_audio_dmadata *pcd) in au1x_pcm_dbdma_free() argument
136 if (pcd->ddma_chan) { in au1x_pcm_dbdma_free()
137 au1xxx_dbdma_stop(pcd->ddma_chan); in au1x_pcm_dbdma_free()
138 au1xxx_dbdma_reset(pcd->ddma_chan); in au1x_pcm_dbdma_free()
139 au1xxx_dbdma_chan_free(pcd->ddma_chan); in au1x_pcm_dbdma_free()
140 pcd->ddma_chan = 0; in au1x_pcm_dbdma_free()
141 pcd->msbits = 0; in au1x_pcm_dbdma_free()
150 static int au1x_pcm_dbdma_realloc(struct au1xpsc_audio_dmadata *pcd, in au1x_pcm_dbdma_realloc() argument
158 if ((pcd->ddma_chan) && (msbits == pcd->msbits)) in au1x_pcm_dbdma_realloc()
161 au1x_pcm_dbdma_free(pcd); in au1x_pcm_dbdma_realloc()
164 pcd->ddma_chan = au1xxx_dbdma_chan_alloc(pcd->ddma_id, in au1x_pcm_dbdma_realloc()
166 au1x_pcm_dmarx_cb, (void *)pcd); in au1x_pcm_dbdma_realloc()
168 pcd->ddma_chan = au1xxx_dbdma_chan_alloc(DSCR_CMD0_ALWAYS, in au1x_pcm_dbdma_realloc()
169 pcd->ddma_id, in au1x_pcm_dbdma_realloc()
170 au1x_pcm_dmatx_cb, (void *)pcd); in au1x_pcm_dbdma_realloc()
172 if (!pcd->ddma_chan) in au1x_pcm_dbdma_realloc()
175 au1xxx_dbdma_set_devwidth(pcd->ddma_chan, msbits); in au1x_pcm_dbdma_realloc()
176 au1xxx_dbdma_ring_alloc(pcd->ddma_chan, 2); in au1x_pcm_dbdma_realloc()
178 pcd->msbits = msbits; in au1x_pcm_dbdma_realloc()
180 au1xxx_dbdma_stop(pcd->ddma_chan); in au1x_pcm_dbdma_realloc()
181 au1xxx_dbdma_reset(pcd->ddma_chan); in au1x_pcm_dbdma_realloc()
190 struct au1xpsc_audio_dmadata *pcd = in to_dmadata() local
192 return &pcd[ss->stream]; in to_dmadata()
199 struct au1xpsc_audio_dmadata *pcd; in au1xpsc_pcm_hw_params() local
207 pcd = to_dmadata(substream); in au1xpsc_pcm_hw_params()
218 ret = au1x_pcm_dbdma_realloc(pcd, stype, params->msbits); in au1xpsc_pcm_hw_params()
224 pcd->substream = substream; in au1xpsc_pcm_hw_params()
225 pcd->period_bytes = params_period_bytes(params); in au1xpsc_pcm_hw_params()
226 pcd->periods = params_periods(params); in au1xpsc_pcm_hw_params()
227 pcd->dma_area_s = pcd->dma_area = runtime->dma_addr; in au1xpsc_pcm_hw_params()
228 pcd->q_period = 0; in au1xpsc_pcm_hw_params()
229 pcd->curr_period = 0; in au1xpsc_pcm_hw_params()
230 pcd->pos = 0; in au1xpsc_pcm_hw_params()
245 struct au1xpsc_audio_dmadata *pcd = to_dmadata(substream); in au1xpsc_pcm_prepare() local
247 au1xxx_dbdma_reset(pcd->ddma_chan); in au1xpsc_pcm_prepare()
250 au1x_pcm_queue_rx(pcd); in au1xpsc_pcm_prepare()
251 au1x_pcm_queue_rx(pcd); in au1xpsc_pcm_prepare()
253 au1x_pcm_queue_tx(pcd); in au1xpsc_pcm_prepare()
254 au1x_pcm_queue_tx(pcd); in au1xpsc_pcm_prepare()
287 struct au1xpsc_audio_dmadata *pcd = to_dmadata(substream); in au1xpsc_pcm_open() local
295 pcd->ddma_id = dmaids[stype]; in au1xpsc_pcm_open()