Lines Matching refs:prtd

75 loongson_dma_desc *dma_desc_save(struct loongson_runtime_data *prtd)
77 void __iomem *order_reg = prtd->dma_data->order_addr;
80 val = (u64)prtd->dma_pos_desc_phy & DMA_ORDER_ASK_MASK;
88 return prtd->dma_pos_desc;
94 struct loongson_runtime_data *prtd = substream->runtime->private_data;
96 void __iomem *order_reg = prtd->dma_data->order_addr;
104 val = prtd->dma_pos_desc_phy & DMA_ORDER_ASK_MASK;
119 dma_desc_save(prtd);
141 struct loongson_runtime_data *prtd = runtime->private_data;
155 if (!num_periods || num_periods > prtd->dma_desc_arr_size) {
165 order_addr = prtd->dma_desc_arr_phy;
167 desc = &prtd->dma_desc_arr[i];
176 desc->daddr = prtd->dma_data->dev_addr;
188 desc = &prtd->dma_desc_arr[num_periods - 1];
189 desc->order = lower_32_bits(prtd->dma_desc_arr_phy | BIT(0));
190 desc->order_hi = upper_32_bits(prtd->dma_desc_arr_phy);
193 *prtd->dma_pos_desc = *prtd->dma_desc_arr;
203 struct loongson_runtime_data *prtd = runtime->private_data;
208 desc = dma_desc_save(prtd);
231 struct loongson_runtime_data *prtd;
248 prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
249 if (!prtd)
252 prtd->dma_desc_arr = dma_alloc_coherent(card->dev, PAGE_SIZE,
253 &prtd->dma_desc_arr_phy,
255 if (!prtd->dma_desc_arr) {
259 prtd->dma_desc_arr_size = PAGE_SIZE / sizeof(*prtd->dma_desc_arr);
261 prtd->dma_pos_desc = dma_alloc_coherent(card->dev,
262 sizeof(*prtd->dma_pos_desc),
263 &prtd->dma_pos_desc_phy,
265 if (!prtd->dma_pos_desc) {
271 prtd->dma_data = dma_data;
273 substream->runtime->private_data = prtd;
277 dma_free_coherent(card->dev, PAGE_SIZE, prtd->dma_desc_arr,
278 prtd->dma_desc_arr_phy);
280 kfree(prtd);
289 struct loongson_runtime_data *prtd = substream->runtime->private_data;
291 dma_free_coherent(card->dev, PAGE_SIZE, prtd->dma_desc_arr,
292 prtd->dma_desc_arr_phy);
294 dma_free_coherent(card->dev, sizeof(*prtd->dma_pos_desc),
295 prtd->dma_pos_desc, prtd->dma_pos_desc_phy);
297 kfree(prtd);