Lines Matching refs:pcd

132 static void au1x_pcm_dbdma_free(struct au1xpsc_audio_dmadata *pcd)  in au1x_pcm_dbdma_free()  argument
134 if (pcd->ddma_chan) { in au1x_pcm_dbdma_free()
135 au1xxx_dbdma_stop(pcd->ddma_chan); in au1x_pcm_dbdma_free()
136 au1xxx_dbdma_reset(pcd->ddma_chan); in au1x_pcm_dbdma_free()
137 au1xxx_dbdma_chan_free(pcd->ddma_chan); in au1x_pcm_dbdma_free()
138 pcd->ddma_chan = 0; in au1x_pcm_dbdma_free()
139 pcd->msbits = 0; in au1x_pcm_dbdma_free()
148 static int au1x_pcm_dbdma_realloc(struct au1xpsc_audio_dmadata *pcd, in au1x_pcm_dbdma_realloc() argument
156 if ((pcd->ddma_chan) && (msbits == pcd->msbits)) in au1x_pcm_dbdma_realloc()
159 au1x_pcm_dbdma_free(pcd); in au1x_pcm_dbdma_realloc()
162 pcd->ddma_chan = au1xxx_dbdma_chan_alloc(pcd->ddma_id, in au1x_pcm_dbdma_realloc()
164 au1x_pcm_dmarx_cb, (void *)pcd); in au1x_pcm_dbdma_realloc()
166 pcd->ddma_chan = au1xxx_dbdma_chan_alloc(DSCR_CMD0_ALWAYS, in au1x_pcm_dbdma_realloc()
167 pcd->ddma_id, in au1x_pcm_dbdma_realloc()
168 au1x_pcm_dmatx_cb, (void *)pcd); in au1x_pcm_dbdma_realloc()
170 if (!pcd->ddma_chan) in au1x_pcm_dbdma_realloc()
173 au1xxx_dbdma_set_devwidth(pcd->ddma_chan, msbits); in au1x_pcm_dbdma_realloc()
174 au1xxx_dbdma_ring_alloc(pcd->ddma_chan, 2); in au1x_pcm_dbdma_realloc()
176 pcd->msbits = msbits; in au1x_pcm_dbdma_realloc()
178 au1xxx_dbdma_stop(pcd->ddma_chan); in au1x_pcm_dbdma_realloc()
179 au1xxx_dbdma_reset(pcd->ddma_chan); in au1x_pcm_dbdma_realloc()
188 struct au1xpsc_audio_dmadata *pcd = snd_soc_component_get_drvdata(component); in to_dmadata() local
189 return &pcd[ss->stream]; in to_dmadata()
197 struct au1xpsc_audio_dmadata *pcd; in au1xpsc_pcm_hw_params() local
201 pcd = to_dmadata(substream, component); in au1xpsc_pcm_hw_params()
212 ret = au1x_pcm_dbdma_realloc(pcd, stype, params->msbits); in au1xpsc_pcm_hw_params()
218 pcd->substream = substream; in au1xpsc_pcm_hw_params()
219 pcd->period_bytes = params_period_bytes(params); in au1xpsc_pcm_hw_params()
220 pcd->periods = params_periods(params); in au1xpsc_pcm_hw_params()
221 pcd->dma_area_s = pcd->dma_area = runtime->dma_addr; in au1xpsc_pcm_hw_params()
222 pcd->q_period = 0; in au1xpsc_pcm_hw_params()
223 pcd->curr_period = 0; in au1xpsc_pcm_hw_params()
224 pcd->pos = 0; in au1xpsc_pcm_hw_params()
234 struct au1xpsc_audio_dmadata *pcd = to_dmadata(substream, component); in au1xpsc_pcm_prepare() local
236 au1xxx_dbdma_reset(pcd->ddma_chan); in au1xpsc_pcm_prepare()
239 au1x_pcm_queue_rx(pcd); in au1xpsc_pcm_prepare()
240 au1x_pcm_queue_rx(pcd); in au1xpsc_pcm_prepare()
242 au1x_pcm_queue_tx(pcd); in au1xpsc_pcm_prepare()
243 au1x_pcm_queue_tx(pcd); in au1xpsc_pcm_prepare()
280 struct au1xpsc_audio_dmadata *pcd = to_dmadata(substream, component); in au1xpsc_pcm_open() local
288 pcd->ddma_id = dmaids[stype]; in au1xpsc_pcm_open()