Searched refs:dma_desc (Results 1 - 42 of 42) sorted by relevance

/linux-4.1.27/drivers/net/ethernet/stmicro/stmmac/
H A Ddescs_com.h36 static inline void ehn_desc_rx_set_on_ring(struct dma_desc *p, int end) ehn_desc_rx_set_on_ring()
43 static inline void ehn_desc_tx_set_on_ring(struct dma_desc *p, int end) ehn_desc_tx_set_on_ring()
49 static inline void enh_desc_end_tx_desc_on_ring(struct dma_desc *p, int ter) enh_desc_end_tx_desc_on_ring()
54 static inline void enh_set_tx_desc_len_on_ring(struct dma_desc *p, int len) enh_set_tx_desc_len_on_ring()
64 static inline void ndesc_rx_set_on_ring(struct dma_desc *p, int end) ndesc_rx_set_on_ring()
71 static inline void ndesc_tx_set_on_ring(struct dma_desc *p, int end) ndesc_tx_set_on_ring()
77 static inline void ndesc_end_tx_desc_on_ring(struct dma_desc *p, int ter) ndesc_end_tx_desc_on_ring()
82 static inline void norm_set_tx_desc_len_on_ring(struct dma_desc *p, int len) norm_set_tx_desc_len_on_ring()
94 static inline void ehn_desc_rx_set_on_chain(struct dma_desc *p, int end) ehn_desc_rx_set_on_chain()
99 static inline void ehn_desc_tx_set_on_chain(struct dma_desc *p, int end) ehn_desc_tx_set_on_chain()
104 static inline void enh_desc_end_tx_desc_on_chain(struct dma_desc *p, int ter) enh_desc_end_tx_desc_on_chain()
109 static inline void enh_set_tx_desc_len_on_chain(struct dma_desc *p, int len) enh_set_tx_desc_len_on_chain()
115 static inline void ndesc_rx_set_on_chain(struct dma_desc *p, int end) ndesc_rx_set_on_chain()
120 static inline void ndesc_tx_set_on_chain(struct dma_desc *p, int ring_size) ndesc_tx_set_on_chain()
125 static inline void ndesc_end_tx_desc_on_chain(struct dma_desc *p, int ter) ndesc_end_tx_desc_on_chain()
130 static inline void norm_set_tx_desc_len_on_chain(struct dma_desc *p, int len) norm_set_tx_desc_len_on_chain()
H A Dnorm_desc.c30 struct dma_desc *p, void __iomem *ioaddr) ndesc_get_tx_status()
64 static int ndesc_get_tx_len(struct dma_desc *p) ndesc_get_tx_len()
74 struct dma_desc *p) ndesc_get_rx_status()
123 static void ndesc_init_rx_desc(struct dma_desc *p, int disable_rx_ic, int mode, ndesc_init_rx_desc()
139 static void ndesc_init_tx_desc(struct dma_desc *p, int mode, int end) ndesc_init_tx_desc()
148 static int ndesc_get_tx_owner(struct dma_desc *p) ndesc_get_tx_owner()
153 static int ndesc_get_rx_owner(struct dma_desc *p) ndesc_get_rx_owner()
158 static void ndesc_set_tx_owner(struct dma_desc *p) ndesc_set_tx_owner()
163 static void ndesc_set_rx_owner(struct dma_desc *p) ndesc_set_rx_owner()
168 static int ndesc_get_tx_ls(struct dma_desc *p) ndesc_get_tx_ls()
173 static void ndesc_release_tx_desc(struct dma_desc *p, int mode) ndesc_release_tx_desc()
177 memset(p, 0, offsetof(struct dma_desc, des2)); ndesc_release_tx_desc()
184 static void ndesc_prepare_tx_desc(struct dma_desc *p, int is_fs, int len, ndesc_prepare_tx_desc()
197 static void ndesc_clear_tx_ic(struct dma_desc *p) ndesc_clear_tx_ic()
202 static void ndesc_close_tx_desc(struct dma_desc *p) ndesc_close_tx_desc()
208 static int ndesc_get_rx_frame_len(struct dma_desc *p, int rx_coe_type) ndesc_get_rx_frame_len()
221 static void ndesc_enable_tx_timestamp(struct dma_desc *p) ndesc_enable_tx_timestamp()
226 static int ndesc_get_tx_timestamp_status(struct dma_desc *p) ndesc_get_tx_timestamp_status()
233 struct dma_desc *p = (struct dma_desc *)desc; ndesc_get_timestamp()
245 struct dma_desc *p = (struct dma_desc *)desc; ndesc_get_rx_timestamp_status()
H A Denh_desc.c30 struct dma_desc *p, void __iomem *ioaddr) enh_desc_get_tx_status()
88 static int enh_desc_get_tx_len(struct dma_desc *p) enh_desc_get_tx_len()
178 struct dma_desc *p) enh_desc_get_rx_status()
240 static void enh_desc_init_rx_desc(struct dma_desc *p, int disable_rx_ic, enh_desc_init_rx_desc()
256 static void enh_desc_init_tx_desc(struct dma_desc *p, int mode, int end) enh_desc_init_tx_desc()
265 static int enh_desc_get_tx_owner(struct dma_desc *p) enh_desc_get_tx_owner()
270 static int enh_desc_get_rx_owner(struct dma_desc *p) enh_desc_get_rx_owner()
275 static void enh_desc_set_tx_owner(struct dma_desc *p) enh_desc_set_tx_owner()
280 static void enh_desc_set_rx_owner(struct dma_desc *p) enh_desc_set_rx_owner()
285 static int enh_desc_get_tx_ls(struct dma_desc *p) enh_desc_get_tx_ls()
290 static void enh_desc_release_tx_desc(struct dma_desc *p, int mode) enh_desc_release_tx_desc()
294 memset(p, 0, offsetof(struct dma_desc, des2)); enh_desc_release_tx_desc()
301 static void enh_desc_prepare_tx_desc(struct dma_desc *p, int is_fs, int len, enh_desc_prepare_tx_desc()
315 static void enh_desc_clear_tx_ic(struct dma_desc *p) enh_desc_clear_tx_ic()
320 static void enh_desc_close_tx_desc(struct dma_desc *p) enh_desc_close_tx_desc()
326 static int enh_desc_get_rx_frame_len(struct dma_desc *p, int rx_coe_type) enh_desc_get_rx_frame_len()
339 static void enh_desc_enable_tx_timestamp(struct dma_desc *p) enh_desc_enable_tx_timestamp()
344 static int enh_desc_get_tx_timestamp_status(struct dma_desc *p) enh_desc_get_tx_timestamp_status()
359 struct dma_desc *p = (struct dma_desc *)desc; enh_desc_get_timestamp()
373 struct dma_desc *p = (struct dma_desc *)desc; enh_desc_get_rx_timestamp_status()
H A Dchain_mode.c36 struct dma_desc *desc = priv->dma_tx + entry; stmmac_jumbo_frm()
120 struct dma_desc *p = (struct dma_desc *)des; stmmac_init_dma_chain()
122 dma_phy += sizeof(struct dma_desc); stmmac_init_dma_chain()
130 static void stmmac_refill_desc3(void *priv_ptr, struct dma_desc *p) stmmac_refill_desc3()
142 sizeof(struct dma_desc)); stmmac_refill_desc3()
145 static void stmmac_clean_desc3(void *priv_ptr, struct dma_desc *p) stmmac_clean_desc3()
157 sizeof(struct dma_desc))); stmmac_clean_desc3()
H A Dcommon.h303 void (*init_rx_desc) (struct dma_desc *p, int disable_rx_ic, int mode,
306 void (*init_tx_desc) (struct dma_desc *p, int mode, int end);
309 void (*prepare_tx_desc) (struct dma_desc *p, int is_fs, int len,
312 void (*set_tx_owner) (struct dma_desc *p);
313 int (*get_tx_owner) (struct dma_desc *p);
315 void (*close_tx_desc) (struct dma_desc *p);
317 void (*release_tx_desc) (struct dma_desc *p, int mode);
320 void (*clear_tx_ic) (struct dma_desc *p);
322 int (*get_tx_ls) (struct dma_desc *p);
325 struct dma_desc *p, void __iomem *ioaddr);
327 int (*get_tx_len) (struct dma_desc *p);
329 int (*get_rx_owner) (struct dma_desc *p);
330 void (*set_rx_owner) (struct dma_desc *p);
332 int (*get_rx_frame_len) (struct dma_desc *p, int rx_coe_type);
335 struct dma_desc *p);
339 void (*enable_tx_timestamp) (struct dma_desc *p);
341 int (*get_tx_timestamp_status) (struct dma_desc *p);
444 void (*init_desc3)(struct dma_desc *p);
445 void (*refill_desc3) (void *priv, struct dma_desc *p);
446 void (*clean_desc3) (void *priv, struct dma_desc *p);
H A Dring_mode.c36 struct dma_desc *desc; stmmac_jumbo_frm()
41 desc = (struct dma_desc *)(priv->dma_etx + entry); stmmac_jumbo_frm()
68 desc = (struct dma_desc *)(priv->dma_etx + entry); stmmac_jumbo_frm()
106 static void stmmac_refill_desc3(void *priv_ptr, struct dma_desc *p) stmmac_refill_desc3()
116 static void stmmac_init_desc3(struct dma_desc *p) stmmac_init_desc3()
121 static void stmmac_clean_desc3(void *priv_ptr, struct dma_desc *p) stmmac_clean_desc3()
H A Dstmmac.h45 struct dma_desc *dma_tx;
61 struct dma_desc *dma_rx ____cacheline_aligned_in_smp;
H A Ddescs.h28 struct dma_desc { struct
170 struct dma_desc basic;
H A Dstmmac_main.c363 if (!priv->hw->desc->get_tx_timestamp_status((struct dma_desc *)desc)) stmmac_get_tx_hwtstamp()
877 struct dma_desc *p = (struct dma_desc *)head; stmmac_display_ring()
976 static int stmmac_init_rx_buffers(struct stmmac_priv *priv, struct dma_desc *p, stmmac_init_rx_buffers()
1054 struct dma_desc *p; init_dma_desc_rings()
1090 struct dma_desc *p; init_dma_desc_rings()
1130 struct dma_desc *p; dma_free_tx_skbufs()
1216 sizeof(struct dma_desc), alloc_dma_desc_resources()
1223 sizeof(struct dma_desc), alloc_dma_desc_resources()
1228 sizeof(struct dma_desc), alloc_dma_desc_resources()
1256 priv->dma_tx_size * sizeof(struct dma_desc), free_dma_desc_resources()
1259 priv->dma_rx_size * sizeof(struct dma_desc), free_dma_desc_resources()
1321 struct dma_desc *p; stmmac_tx_clean()
1324 p = (struct dma_desc *)(priv->dma_etx + entry); stmmac_tx_clean()
1945 struct dma_desc *desc, *first; stmmac_xmit()
1969 desc = (struct dma_desc *)(priv->dma_etx + entry); stmmac_xmit()
2001 desc = (struct dma_desc *)(priv->dma_etx + entry); stmmac_xmit()
2119 struct dma_desc *p; stmmac_rx_refill()
2122 p = (struct dma_desc *)(priv->dma_erx + entry); stmmac_rx_refill()
2181 struct dma_desc *p; stmmac_rx()
2184 p = (struct dma_desc *)(priv->dma_erx + entry); stmmac_rx()
2520 struct dma_desc *p = (struct dma_desc *)head; sysfs_display_ring()
/linux-4.1.27/drivers/dma/
H A Dtegra20-apb-dma.c160 struct tegra_dma_desc *dma_desc; member in struct:tegra_dma_sg_req
277 struct tegra_dma_desc *dma_desc; tegra_dma_desc_get() local
283 list_for_each_entry(dma_desc, &tdc->free_dma_desc, node) { tegra_dma_desc_get()
284 if (async_tx_test_ack(&dma_desc->txd)) { tegra_dma_desc_get()
285 list_del(&dma_desc->node); tegra_dma_desc_get()
287 dma_desc->txd.flags = 0; tegra_dma_desc_get()
288 return dma_desc; tegra_dma_desc_get()
295 dma_desc = kzalloc(sizeof(*dma_desc), GFP_ATOMIC); tegra_dma_desc_get()
296 if (!dma_desc) { tegra_dma_desc_get()
297 dev_err(tdc2dev(tdc), "dma_desc alloc failed\n"); tegra_dma_desc_get()
301 dma_async_tx_descriptor_init(&dma_desc->txd, &tdc->dma_chan); tegra_dma_desc_get()
302 dma_desc->txd.tx_submit = tegra_dma_tx_submit; tegra_dma_desc_get()
303 dma_desc->txd.flags = 0; tegra_dma_desc_get()
304 return dma_desc; tegra_dma_desc_get()
308 struct tegra_dma_desc *dma_desc) tegra_dma_desc_put()
313 if (!list_empty(&dma_desc->tx_list)) tegra_dma_desc_put()
314 list_splice_init(&dma_desc->tx_list, &tdc->free_sg_req); tegra_dma_desc_put()
315 list_add_tail(&dma_desc->node, &tdc->free_dma_desc); tegra_dma_desc_put()
526 struct tegra_dma_desc *dma_desc; tegra_dma_abort_all() local
533 dma_desc = sgreq->dma_desc; tegra_dma_abort_all()
534 dma_desc->dma_status = DMA_ERROR; tegra_dma_abort_all()
535 list_add_tail(&dma_desc->node, &tdc->free_dma_desc); tegra_dma_abort_all()
538 if (!dma_desc->cb_count) tegra_dma_abort_all()
539 list_add_tail(&dma_desc->cb_node, tegra_dma_abort_all()
541 dma_desc->cb_count++; tegra_dma_abort_all()
581 struct tegra_dma_desc *dma_desc; handle_once_dma_done() local
585 dma_desc = sgreq->dma_desc; handle_once_dma_done()
586 dma_desc->bytes_transferred += sgreq->req_len; handle_once_dma_done()
590 dma_desc->dma_status = DMA_COMPLETE; handle_once_dma_done()
591 dma_cookie_complete(&dma_desc->txd); handle_once_dma_done()
592 if (!dma_desc->cb_count) handle_once_dma_done()
593 list_add_tail(&dma_desc->cb_node, &tdc->cb_desc); handle_once_dma_done()
594 dma_desc->cb_count++; handle_once_dma_done()
595 list_add_tail(&dma_desc->node, &tdc->free_dma_desc); handle_once_dma_done()
611 struct tegra_dma_desc *dma_desc; handle_cont_sngl_cycle_dma_done() local
615 dma_desc = sgreq->dma_desc; handle_cont_sngl_cycle_dma_done()
616 dma_desc->bytes_transferred += sgreq->req_len; handle_cont_sngl_cycle_dma_done()
619 if (!dma_desc->cb_count) handle_cont_sngl_cycle_dma_done()
620 list_add_tail(&dma_desc->cb_node, &tdc->cb_desc); handle_cont_sngl_cycle_dma_done()
621 dma_desc->cb_count++; handle_cont_sngl_cycle_dma_done()
629 dma_desc->dma_status = DMA_ERROR; handle_cont_sngl_cycle_dma_done()
639 struct tegra_dma_desc *dma_desc; tegra_dma_tasklet() local
645 dma_desc = list_first_entry(&tdc->cb_desc, tegra_dma_tasklet()
646 typeof(*dma_desc), cb_node); tegra_dma_tasklet()
647 list_del(&dma_desc->cb_node); tegra_dma_tasklet()
648 callback = dma_desc->txd.callback; tegra_dma_tasklet()
649 callback_param = dma_desc->txd.callback_param; tegra_dma_tasklet()
650 cb_count = dma_desc->cb_count; tegra_dma_tasklet()
651 dma_desc->cb_count = 0; tegra_dma_tasklet()
685 struct tegra_dma_desc *dma_desc = txd_to_tegra_dma_desc(txd); tegra_dma_tx_submit() local
691 dma_desc->dma_status = DMA_IN_PROGRESS; tegra_dma_tx_submit()
692 cookie = dma_cookie_assign(&dma_desc->txd); tegra_dma_tx_submit()
693 list_splice_tail_init(&dma_desc->tx_list, &tdc->pending_sg_req); tegra_dma_tx_submit()
730 struct tegra_dma_desc *dma_desc; tegra_dma_terminate_all() local
765 sgreq->dma_desc->bytes_transferred += tegra_dma_terminate_all()
774 dma_desc = list_first_entry(&tdc->cb_desc, tegra_dma_terminate_all()
775 typeof(*dma_desc), cb_node); tegra_dma_terminate_all()
776 list_del(&dma_desc->cb_node); tegra_dma_terminate_all()
777 dma_desc->cb_count = 0; tegra_dma_terminate_all()
787 struct tegra_dma_desc *dma_desc; tegra_dma_tx_status() local
800 list_for_each_entry(dma_desc, &tdc->free_dma_desc, node) { tegra_dma_tx_status()
801 if (dma_desc->txd.cookie == cookie) { tegra_dma_tx_status()
802 residual = dma_desc->bytes_requested - tegra_dma_tx_status()
803 (dma_desc->bytes_transferred % tegra_dma_tx_status()
804 dma_desc->bytes_requested); tegra_dma_tx_status()
806 ret = dma_desc->dma_status; tegra_dma_tx_status()
814 dma_desc = sg_req->dma_desc; tegra_dma_tx_status()
815 if (dma_desc->txd.cookie == cookie) { tegra_dma_tx_status()
816 residual = dma_desc->bytes_requested - tegra_dma_tx_status()
817 (dma_desc->bytes_transferred % tegra_dma_tx_status()
818 dma_desc->bytes_requested); tegra_dma_tx_status()
820 ret = dma_desc->dma_status; tegra_dma_tx_status()
927 struct tegra_dma_desc *dma_desc; tegra_dma_prep_slave_sg() local
965 dma_desc = tegra_dma_desc_get(tdc); tegra_dma_prep_slave_sg()
966 if (!dma_desc) { tegra_dma_prep_slave_sg()
970 INIT_LIST_HEAD(&dma_desc->tx_list); tegra_dma_prep_slave_sg()
971 INIT_LIST_HEAD(&dma_desc->cb_node); tegra_dma_prep_slave_sg()
972 dma_desc->cb_count = 0; tegra_dma_prep_slave_sg()
973 dma_desc->bytes_requested = 0; tegra_dma_prep_slave_sg()
974 dma_desc->bytes_transferred = 0; tegra_dma_prep_slave_sg()
975 dma_desc->dma_status = DMA_IN_PROGRESS; tegra_dma_prep_slave_sg()
988 tegra_dma_desc_put(tdc, dma_desc); for_each_sg()
995 tegra_dma_desc_put(tdc, dma_desc); for_each_sg()
1000 dma_desc->bytes_requested += len; for_each_sg()
1010 sg_req->dma_desc = dma_desc; for_each_sg()
1013 list_add_tail(&sg_req->node, &dma_desc->tx_list); for_each_sg()
1017 dma_desc->txd.flags = DMA_CTRL_ACK;
1029 tegra_dma_desc_put(tdc, dma_desc);
1034 return &dma_desc->txd;
1043 struct tegra_dma_desc *dma_desc = NULL; tegra_dma_prep_dma_cyclic() local
1108 dma_desc = tegra_dma_desc_get(tdc); tegra_dma_prep_dma_cyclic()
1109 if (!dma_desc) { tegra_dma_prep_dma_cyclic()
1114 INIT_LIST_HEAD(&dma_desc->tx_list); tegra_dma_prep_dma_cyclic()
1115 INIT_LIST_HEAD(&dma_desc->cb_node); tegra_dma_prep_dma_cyclic()
1116 dma_desc->cb_count = 0; tegra_dma_prep_dma_cyclic()
1118 dma_desc->bytes_transferred = 0; tegra_dma_prep_dma_cyclic()
1119 dma_desc->bytes_requested = buf_len; tegra_dma_prep_dma_cyclic()
1127 tegra_dma_desc_put(tdc, dma_desc); tegra_dma_prep_dma_cyclic()
1141 sg_req->dma_desc = dma_desc; tegra_dma_prep_dma_cyclic()
1144 list_add_tail(&sg_req->node, &dma_desc->tx_list); tegra_dma_prep_dma_cyclic()
1150 dma_desc->txd.flags = DMA_CTRL_ACK; tegra_dma_prep_dma_cyclic()
1162 tegra_dma_desc_put(tdc, dma_desc); tegra_dma_prep_dma_cyclic()
1167 return &dma_desc->txd; tegra_dma_prep_dma_cyclic()
1189 struct tegra_dma_desc *dma_desc; tegra_dma_free_chan_resources() local
1213 dma_desc = list_first_entry(&dma_desc_list, tegra_dma_free_chan_resources()
1214 typeof(*dma_desc), node); tegra_dma_free_chan_resources()
1215 list_del(&dma_desc->node); tegra_dma_free_chan_resources()
1216 kfree(dma_desc); tegra_dma_free_chan_resources()
307 tegra_dma_desc_put(struct tegra_dma_channel *tdc, struct tegra_dma_desc *dma_desc) tegra_dma_desc_put() argument
H A Dtimb_dma.c157 static int td_fill_desc(struct timb_dma_chan *td_chan, u8 *dma_desc, td_fill_desc() argument
173 dma_desc, (unsigned long long)sg_dma_address(sg)); td_fill_desc()
175 dma_desc[7] = (sg_dma_address(sg) >> 24) & 0xff; td_fill_desc()
176 dma_desc[6] = (sg_dma_address(sg) >> 16) & 0xff; td_fill_desc()
177 dma_desc[5] = (sg_dma_address(sg) >> 8) & 0xff; td_fill_desc()
178 dma_desc[4] = (sg_dma_address(sg) >> 0) & 0xff; td_fill_desc()
180 dma_desc[3] = (sg_dma_len(sg) >> 8) & 0xff; td_fill_desc()
181 dma_desc[2] = (sg_dma_len(sg) >> 0) & 0xff; td_fill_desc()
183 dma_desc[1] = 0x00; td_fill_desc()
184 dma_desc[0] = 0x21 | (last ? 0x02 : 0); /* tran, valid */ td_fill_desc()
H A Dmv_xor.c465 dma_addr_t dma_desc; mv_xor_alloc_chan_resources() local
488 dma_desc = mv_chan->dma_desc_pool; mv_xor_alloc_chan_resources()
489 slot->async_tx.phys = dma_desc + idx * MV_XOR_SLOT_SIZE; mv_xor_alloc_chan_resources()
/linux-4.1.27/sound/arm/
H A Dpxa2xx-pcm-lib.c46 pxa_dma_desc *dma_desc; __pxa2xx_pcm_hw_params() local
81 dma_desc = rtd->dma_desc_array; __pxa2xx_pcm_hw_params()
86 dma_desc->ddadr = next_desc_phys; __pxa2xx_pcm_hw_params()
88 dma_desc->dsadr = dma_buff_phys; __pxa2xx_pcm_hw_params()
89 dma_desc->dtadr = rtd->params->addr; __pxa2xx_pcm_hw_params()
91 dma_desc->dsadr = rtd->params->addr; __pxa2xx_pcm_hw_params()
92 dma_desc->dtadr = dma_buff_phys; __pxa2xx_pcm_hw_params()
96 dma_desc->dcmd = dcmd | period | DCMD_ENDIRQEN; __pxa2xx_pcm_hw_params()
97 dma_desc++; __pxa2xx_pcm_hw_params()
100 dma_desc[-1].ddadr = rtd->dma_desc_array_phys; __pxa2xx_pcm_hw_params()
/linux-4.1.27/drivers/ata/
H A Dpata_pxa.c42 struct pxa_dma_desc *dma_desc; member in struct:pata_pxa_data
73 pd->dma_desc[pd->dma_desc_id].ddadr = pd->dma_desc_addr + pxa_load_dmac()
76 pd->dma_desc[pd->dma_desc_id].dcmd = DCMD_BURST32 | pxa_load_dmac()
80 pd->dma_desc[pd->dma_desc_id].dsadr = cpu_addr; pxa_load_dmac()
81 pd->dma_desc[pd->dma_desc_id].dtadr = pd->dma_io_addr; pxa_load_dmac()
82 pd->dma_desc[pd->dma_desc_id].dcmd |= DCMD_INCSRCADDR | pxa_load_dmac()
85 pd->dma_desc[pd->dma_desc_id].dsadr = pd->dma_io_addr; pxa_load_dmac()
86 pd->dma_desc[pd->dma_desc_id].dtadr = cpu_addr; pxa_load_dmac()
87 pd->dma_desc[pd->dma_desc_id].dcmd |= DCMD_INCTRGADDR | pxa_load_dmac()
122 pd->dma_desc[pd->dma_desc_id - 1].ddadr = DDADR_STOP; pxa_qc_prep()
125 pd->dma_desc[pd->dma_desc_id - 1].dcmd |= DCMD_ENDIRQEN; pxa_qc_prep()
342 data->dma_desc = dmam_alloc_coherent(&pdev->dev, PAGE_SIZE, pxa_ata_probe()
344 if (!data->dma_desc) pxa_ata_probe()
/linux-4.1.27/drivers/soc/tegra/fuse/
H A Dfuse-tegra20.c61 struct dma_async_tx_descriptor *dma_desc; tegra20_fuse_readl() local
70 dma_desc = dmaengine_prep_slave_single(apb_dma_chan, apb_buffer_phys, tegra20_fuse_readl()
73 if (!dma_desc) tegra20_fuse_readl()
76 dma_desc->callback = apb_dma_complete; tegra20_fuse_readl()
77 dma_desc->callback_param = NULL; tegra20_fuse_readl()
83 dmaengine_submit(dma_desc); tegra20_fuse_readl()
/linux-4.1.27/arch/mips/include/asm/mach-rc32434/
H A Ddma.h22 struct dma_desc { struct
29 #define DMA_DESC_SIZ sizeof(struct dma_desc)
/linux-4.1.27/drivers/usb/musb/
H A Dmusb_cppi41.c152 struct dma_async_tx_descriptor *dma_desc; cppi41_trans_done() local
165 dma_desc = dmaengine_prep_slave_single(dc, cppi41_trans_done()
170 if (WARN_ON(!dma_desc)) cppi41_trans_done()
173 dma_desc->callback = cppi41_dma_callback; cppi41_trans_done()
174 dma_desc->callback_param = &cppi41_channel->channel; cppi41_trans_done()
175 cppi41_channel->cookie = dma_desc->tx_submit(dma_desc); cppi41_trans_done()
372 struct dma_async_tx_descriptor *dma_desc; cppi41_configure_channel() local
424 dma_desc = dmaengine_prep_slave_single(dc, dma_addr, len, direction, cppi41_configure_channel()
426 if (!dma_desc) cppi41_configure_channel()
429 dma_desc->callback = cppi41_dma_callback; cppi41_configure_channel()
430 dma_desc->callback_param = channel; cppi41_configure_channel()
431 cppi41_channel->cookie = dma_desc->tx_submit(dma_desc); cppi41_configure_channel()
H A Dux500_dma.c89 struct dma_async_tx_descriptor *dma_desc; ux500_configure_channel() local
126 dma_desc = dmaengine_prep_slave_sg(dma_chan, &sg, 1, direction, ux500_configure_channel()
128 if (!dma_desc) ux500_configure_channel()
131 dma_desc->callback = ux500_dma_callback; ux500_configure_channel()
132 dma_desc->callback_param = channel; ux500_configure_channel()
133 ux500_channel->cookie = dma_desc->tx_submit(dma_desc); ux500_configure_channel()
/linux-4.1.27/drivers/usb/dwc2/
H A Dhcd_ddma.c512 struct dwc2_hcd_dma_desc *dma_desc = &qh->desc_list[idx]; dwc2_fill_host_isoc_dma_desc() local
515 memset(dma_desc, 0, sizeof(*dma_desc)); dwc2_fill_host_isoc_dma_desc()
523 dma_desc->buf = (u32)(qtd->urb->dma + frame_desc->offset); dwc2_fill_host_isoc_dma_desc()
524 dma_desc->status = qh->n_bytes[idx] << HOST_DMA_ISOC_NBYTES_SHIFT & dwc2_fill_host_isoc_dma_desc()
530 dma_desc->status |= HOST_DMA_IOC; dwc2_fill_host_isoc_dma_desc()
621 struct dwc2_hcd_dma_desc *dma_desc = &qh->desc_list[n_desc]; dwc2_fill_host_dma_desc() local
641 dma_desc->status = len << HOST_DMA_NBYTES_SHIFT & HOST_DMA_NBYTES_MASK; dwc2_fill_host_dma_desc()
646 dma_desc->status |= HOST_DMA_SUP; dwc2_fill_host_dma_desc()
648 dma_desc->buf = (u32)chan->xfer_dma; dwc2_fill_host_dma_desc()
803 struct dwc2_hcd_dma_desc *dma_desc = &qh->desc_list[idx]; dwc2_cmpl_host_isoc_dma_desc() local
812 dma_desc->buf = (u32)(qtd->urb->dma + frame_desc->offset); dwc2_cmpl_host_isoc_dma_desc()
814 remain = (dma_desc->status & HOST_DMA_ISOC_NBYTES_MASK) >> dwc2_cmpl_host_isoc_dma_desc()
817 if ((dma_desc->status & HOST_DMA_STS_MASK) == HOST_DMA_STS_PKTERR) { dwc2_cmpl_host_isoc_dma_desc()
854 if (dma_desc->status & HOST_DMA_IOC) dwc2_cmpl_host_isoc_dma_desc()
935 struct dwc2_hcd_dma_desc *dma_desc, dwc2_update_non_isoc_urb_state_ddma()
943 remain = (dma_desc->status & HOST_DMA_NBYTES_MASK) >> dwc2_update_non_isoc_urb_state_ddma()
954 if ((dma_desc->status & HOST_DMA_STS_MASK) == HOST_DMA_STS_PKTERR) { dwc2_update_non_isoc_urb_state_ddma()
977 if (dma_desc->status & HOST_DMA_A) { dwc2_update_non_isoc_urb_state_ddma()
1023 struct dwc2_hcd_dma_desc *dma_desc; dwc2_process_non_isoc_desc() local
1032 dma_desc = &qh->desc_list[desc_num]; dwc2_process_non_isoc_desc()
1036 qtd, urb, desc_num, dma_desc, n_bytes); dwc2_process_non_isoc_desc()
1037 failed = dwc2_update_non_isoc_urb_state_ddma(hsotg, chan, qtd, dma_desc, dwc2_process_non_isoc_desc()
932 dwc2_update_non_isoc_urb_state_ddma(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan, struct dwc2_qtd *qtd, struct dwc2_hcd_dma_desc *dma_desc, enum dwc2_halt_status halt_status, u32 n_bytes, int *xfer_done) dwc2_update_non_isoc_urb_state_ddma() argument
/linux-4.1.27/drivers/staging/comedi/drivers/
H A Dgsc_hpdi.c154 struct plx_dma_desc *dma_desc; member in struct:hpdi_private
186 start = le32_to_cpu(devpriv->dma_desc[idx].pci_start_addr); gsc_hpdi_drain_dma()
201 start = le32_to_cpu(devpriv->dma_desc[idx].pci_start_addr); gsc_hpdi_drain_dma()
456 devpriv->dma_desc[i].pci_start_addr = gsc_hpdi_setup_dma_descriptors()
458 devpriv->dma_desc[i].local_start_addr = cpu_to_le32(FIFO_REG); gsc_hpdi_setup_dma_descriptors()
459 devpriv->dma_desc[i].transfer_size = cpu_to_le32(len); gsc_hpdi_setup_dma_descriptors()
460 devpriv->dma_desc[i].next = cpu_to_le32((phys_addr + gsc_hpdi_setup_dma_descriptors()
461 (i + 1) * sizeof(devpriv->dma_desc[0])) | next_bits); gsc_hpdi_setup_dma_descriptors()
474 devpriv->dma_desc[i - 1].next = cpu_to_le32(phys_addr | next_bits); gsc_hpdi_setup_dma_descriptors()
524 if (devpriv->dma_desc) gsc_hpdi_free_dma()
528 devpriv->dma_desc, gsc_hpdi_free_dma()
668 devpriv->dma_desc = pci_alloc_consistent(pcidev, gsc_hpdi_auto_attach()
/linux-4.1.27/drivers/video/fbdev/
H A Dpxafb.c1065 struct pxafb_dma_descriptor *dma_desc, *pal_desc; setup_frame_dma() local
1071 dma_desc = &fbi->dma_buff->dma_desc[dma]; setup_frame_dma()
1072 dma_desc_off = offsetof(struct pxafb_dma_buff, dma_desc[dma]); setup_frame_dma()
1074 dma_desc->fsadr = start; setup_frame_dma()
1075 dma_desc->fidr = 0; setup_frame_dma()
1076 dma_desc->ldcmd = size; setup_frame_dma()
1079 dma_desc->fdadr = fbi->dma_buff_phys + dma_desc_off; setup_frame_dma()
1097 dma_desc->fdadr = fbi->dma_buff_phys + pal_desc_off; setup_frame_dma()
1129 struct pxafb_dma_descriptor *dma_desc; setup_smart_dma() local
1132 dma_desc = &fbi->dma_buff->dma_desc[DMA_CMD]; setup_smart_dma()
1133 dma_desc_off = offsetof(struct pxafb_dma_buff, dma_desc[DMA_CMD]); setup_smart_dma()
1136 dma_desc->fdadr = fbi->dma_buff_phys + dma_desc_off; setup_smart_dma()
1137 dma_desc->fsadr = fbi->dma_buff_phys + cmd_buff_off; setup_smart_dma()
1138 dma_desc->fidr = 0; setup_smart_dma()
1139 dma_desc->ldcmd = fbi->n_smart_cmds * sizeof(uint16_t); setup_smart_dma()
1141 fbi->fdadr[DMA_CMD] = dma_desc->fdadr; setup_smart_dma()
H A Dpxafb.h64 struct pxafb_dma_descriptor dma_desc[DMA_MAX * 2]; member in struct:pxafb_dma_buff
/linux-4.1.27/drivers/net/ethernet/
H A Dkorina.c90 #define RD_RING_SIZE (KORINA_NUM_RDS * sizeof(struct dma_desc))
91 #define TD_RING_SIZE (KORINA_NUM_TDS * sizeof(struct dma_desc))
105 struct dma_desc *td_ring; /* transmit descriptor ring */
106 struct dma_desc *rd_ring; /* receive descriptor ring */
184 struct dma_desc *rd) korina_start_rx()
190 struct dma_desc *rd) korina_chain_rx()
202 struct dma_desc *td; korina_send_packet()
351 struct dma_desc *rd = &lp->rd_ring[lp->rx_next_done]; korina_rx()
522 struct dma_desc *td = &lp->td_ring[lp->tx_next_done]; korina_tx()
1154 lp->td_ring = (struct dma_desc *)KSEG1ADDR(lp->td_ring); korina_probe()
/linux-4.1.27/drivers/net/ethernet/broadcom/
H A Dbgmac.c123 struct bgmac_dma_desc *dma_desc; bgmac_dma_tx_add_buf() local
132 dma_desc = &ring->cpu_base[i]; bgmac_dma_tx_add_buf()
133 dma_desc->addr_low = cpu_to_le32(lower_32_bits(slot->dma_addr)); bgmac_dma_tx_add_buf()
134 dma_desc->addr_high = cpu_to_le32(upper_32_bits(slot->dma_addr)); bgmac_dma_tx_add_buf()
135 dma_desc->ctl0 = cpu_to_le32(ctl0); bgmac_dma_tx_add_buf()
136 dma_desc->ctl1 = cpu_to_le32(ctl1); bgmac_dma_tx_add_buf()
382 struct bgmac_dma_desc *dma_desc = ring->cpu_base + desc_idx; bgmac_dma_rx_setup_desc() local
393 dma_desc->addr_low = cpu_to_le32(lower_32_bits(ring->slots[desc_idx].dma_addr)); bgmac_dma_rx_setup_desc()
394 dma_desc->addr_high = cpu_to_le32(upper_32_bits(ring->slots[desc_idx].dma_addr)); bgmac_dma_rx_setup_desc()
395 dma_desc->ctl0 = cpu_to_le32(ctl0); bgmac_dma_rx_setup_desc()
396 dma_desc->ctl1 = cpu_to_le32(ctl1); bgmac_dma_rx_setup_desc()
520 struct bgmac_dma_desc *dma_desc = ring->cpu_base; bgmac_dma_tx_ring_free() local
525 int len = dma_desc[i].ctl1 & BGMAC_DESC_CTL1_LEN; bgmac_dma_tx_ring_free()
H A Db44.c67 #define B44_RX_RING_BYTES (sizeof(struct dma_desc) * \
71 #define B44_TX_RING_BYTES (sizeof(struct dma_desc) * \
623 cur /= sizeof(struct dma_desc); b44_tx()
660 struct dma_desc *dp; b44_alloc_rx_skb()
735 struct dma_desc *src_desc, *dest_desc; b44_recycle_rx()
786 prod /= sizeof(struct dma_desc); b44_rx()
861 bw32(bp, B44_DMARX_PTR, cons * sizeof(struct dma_desc)); b44_rx()
1042 bw32(bp, B44_DMATX_PTR, entry * sizeof(struct dma_desc)); b44_start_xmit()
1044 bw32(bp, B44_DMATX_PTR, entry * sizeof(struct dma_desc)); b44_start_xmit()
1214 struct dma_desc *rx_ring; b44_alloc_consistent()
1242 struct dma_desc *tx_ring; b44_alloc_consistent()
2596 dma_desc_sync_size = max_t(unsigned int, dma_desc_align_size, sizeof(struct dma_desc)); b44_init()
H A Dbcmsysport.h472 struct dma_desc { struct
485 #define WORDS_PER_DESC (sizeof(struct dma_desc) / sizeof(u32))
643 struct dma_desc *desc_cpu; /* CPU view of the descriptor */
H A Db44.h241 struct dma_desc { struct
358 struct dma_desc *rx_ring, *tx_ring;
H A Dbcmsysport.c90 struct dma_desc *desc, tdma_port_write_desc_addr()
937 struct dma_desc *desc; bcm_sysport_xmit()
1124 p = dma_zalloc_coherent(kdev, sizeof(struct dma_desc), &ring->desc_dma, bcm_sysport_init_tx_ring()
1205 dma_free_coherent(kdev, sizeof(struct dma_desc), bcm_sysport_fini_tx_ring()
/linux-4.1.27/drivers/net/ethernet/ti/
H A Dnetcp_core.c549 dma_addr_t dma_desc, dma_buf; netcp_free_rx_desc_chain() local
554 get_words(&dma_desc, 1, &desc->next_desc); netcp_free_rx_desc_chain()
556 while (dma_desc) { netcp_free_rx_desc_chain()
557 ndesc = knav_pool_desc_unmap(netcp->rx_pool, dma_desc, dma_sz); netcp_free_rx_desc_chain()
562 get_pkt_info(&dma_buf, &tmp, &dma_desc, ndesc); netcp_free_rx_desc_chain()
604 dma_addr_t dma_desc, dma_buff; netcp_process_one_rx_packet() local
610 dma_desc = knav_queue_pop(netcp->rx_queue, &dma_sz); netcp_process_one_rx_packet()
611 if (!dma_desc) netcp_process_one_rx_packet()
614 desc = knav_pool_desc_unmap(netcp->rx_pool, dma_desc, dma_sz); netcp_process_one_rx_packet()
620 get_pkt_info(&dma_buff, &buf_len, &dma_desc, desc); netcp_process_one_rx_packet()
644 while (dma_desc) { netcp_process_one_rx_packet()
647 ndesc = knav_pool_desc_unmap(netcp->rx_pool, dma_desc, dma_sz); netcp_process_one_rx_packet()
653 get_pkt_info(&dma_buff, &buf_len, &dma_desc, ndesc); netcp_process_one_rx_packet()
909 dma_addr_t dma_desc, dma_buf; netcp_free_tx_desc_chain() local
913 get_pkt_info(&dma_buf, &buf_len, &dma_desc, ndesc); netcp_free_tx_desc_chain()
924 if (dma_desc) { netcp_free_tx_desc_chain()
925 ndesc = knav_pool_desc_unmap(netcp->tx_pool, dma_desc, netcp_free_tx_desc_chain()
/linux-4.1.27/drivers/mmc/host/
H A Dmmci.h193 struct dma_async_tx_descriptor *dma_desc; member in struct:mmci_host_next
H A Dsdhci.c461 struct sdhci_adma2_64_desc *dma_desc = desc; sdhci_adma_write_desc() local
464 dma_desc->cmd = cpu_to_le16(cmd); sdhci_adma_write_desc()
465 dma_desc->len = cpu_to_le16(len); sdhci_adma_write_desc()
466 dma_desc->addr_lo = cpu_to_le32((u32)addr); sdhci_adma_write_desc()
469 dma_desc->addr_hi = cpu_to_le32((u64)addr >> 32); sdhci_adma_write_desc()
474 struct sdhci_adma2_64_desc *dma_desc = desc; sdhci_adma_mark_end() local
477 dma_desc->cmd |= cpu_to_le16(ADMA2_END); sdhci_adma_mark_end()
2425 struct sdhci_adma2_64_desc *dma_desc = desc; sdhci_adma_show_error() local
2429 name, desc, le32_to_cpu(dma_desc->addr_hi), sdhci_adma_show_error()
2430 le32_to_cpu(dma_desc->addr_lo), sdhci_adma_show_error()
2431 le16_to_cpu(dma_desc->len), sdhci_adma_show_error()
2432 le16_to_cpu(dma_desc->cmd)); sdhci_adma_show_error()
2435 name, desc, le32_to_cpu(dma_desc->addr_lo), sdhci_adma_show_error()
2436 le16_to_cpu(dma_desc->len), sdhci_adma_show_error()
2437 le16_to_cpu(dma_desc->cmd)); sdhci_adma_show_error()
2441 if (dma_desc->cmd & cpu_to_le16(ADMA2_END)) sdhci_adma_show_error()
H A Dmmci.c568 struct dma_async_tx_descriptor **dma_desc) __mmci_dma_prep_data()
620 *dma_desc = desc; __mmci_dma_prep_data()
645 return __mmci_dma_prep_data(host, data, &nd->dma_chan, &nd->dma_desc); mmci_dma_prep_next()
687 WARN_ON(!data->host_cookie && (next->dma_desc || next->dma_chan)); mmci_get_next_data()
689 host->dma_desc_current = next->dma_desc; mmci_get_next_data()
691 next->dma_desc = NULL; mmci_get_next_data()
734 if (host->dma_desc_current == next->dma_desc) mmci_post_request()
740 next->dma_desc = NULL; mmci_post_request()
566 __mmci_dma_prep_data(struct mmci_host *host, struct mmc_data *data, struct dma_chan **dma_chan, struct dma_async_tx_descriptor **dma_desc) __mmci_dma_prep_data() argument
/linux-4.1.27/drivers/crypto/
H A Dtalitos.h63 * @dma_desc: descriptor's physical bus address
69 dma_addr_t dma_desc; member in struct:talitos_request
H A Dtalitos.c220 request->dma_desc = dma_map_single(dev, desc, sizeof(*desc), talitos_submit()
234 upper_32_bits(request->dma_desc)); talitos_submit()
236 lower_32_bits(request->dma_desc)); talitos_submit()
270 dma_unmap_single(dev, request->dma_desc, flush_channel()
355 while (priv->chan[ch].fifo[iter].dma_desc != cur_desc) { current_desc_hdr()
/linux-4.1.27/drivers/net/ethernet/samsung/sxgbe/
H A Dsxgbe_main.c617 int dma_desc; tx_free_ring_skbufs() local
621 for (dma_desc = 0; dma_desc < tx_rsize; dma_desc++) { tx_free_ring_skbufs()
622 struct sxgbe_tx_norm_desc *tdesc = txqueue->dma_tx + dma_desc; tx_free_ring_skbufs()
624 if (txqueue->tx_skbuff_dma[dma_desc]) tx_free_ring_skbufs()
626 txqueue->tx_skbuff_dma[dma_desc], tx_free_ring_skbufs()
630 dev_kfree_skb_any(txqueue->tx_skbuff[dma_desc]); tx_free_ring_skbufs()
631 txqueue->tx_skbuff[dma_desc] = NULL; tx_free_ring_skbufs()
632 txqueue->tx_skbuff_dma[dma_desc] = 0; tx_free_ring_skbufs()
/linux-4.1.27/drivers/media/platform/soc_camera/
H A Datmel-isi.c80 struct isi_dma_desc dma_desc[MAX_BUFFER_NUM]; member in struct:atmel_isi
996 isi->dma_desc[i].p_fbd = isi->p_fb_descriptors + i; atmel_isi_probe()
997 isi->dma_desc[i].fbd_phys = isi->fb_descriptors_phys + atmel_isi_probe()
999 list_add(&isi->dma_desc[i].list, &isi->dma_desc_head); atmel_isi_probe()
/linux-4.1.27/drivers/usb/gadget/udc/
H A Dgr_udc.c254 struct gr_dma_desc *dma_desc; gr_alloc_dma_desc() local
256 dma_desc = dma_pool_alloc(ep->dev->desc_pool, gfp_flags, &paddr); gr_alloc_dma_desc()
257 if (!dma_desc) { gr_alloc_dma_desc()
262 memset(dma_desc, 0, sizeof(*dma_desc)); gr_alloc_dma_desc()
263 dma_desc->paddr = paddr; gr_alloc_dma_desc()
265 return dma_desc; gr_alloc_dma_desc()
H A Damd5536udc.c509 struct udc_data_dma *dma_desc; udc_alloc_request() local
527 dma_desc = pci_pool_alloc(ep->dev->data_requests, gfp, udc_alloc_request()
529 if (!dma_desc) { udc_alloc_request()
534 VDBG(ep->dev, "udc_alloc_req: req = %p dma_desc = %p, " udc_alloc_request()
536 req, dma_desc, udc_alloc_request()
539 dma_desc->status = AMD_ADDBITS(dma_desc->status, udc_alloc_request()
542 dma_desc->bufptr = cpu_to_le32(DMA_DONT_USE); udc_alloc_request()
543 req->td_data = dma_desc; udc_alloc_request()
H A Dpch_udc.c1772 struct pch_udc_data_dma_desc *dma_desc; pch_udc_alloc_request() local
1788 dma_desc = pci_pool_alloc(ep->dev->data_requests, gfp, pch_udc_alloc_request()
1790 if (NULL == dma_desc) { pch_udc_alloc_request()
1795 dma_desc->status |= PCH_UDC_BS_HST_BSY; pch_udc_alloc_request()
1796 dma_desc->dataptr = __constant_cpu_to_le32(DMA_ADDR_INVALID); pch_udc_alloc_request()
1797 req->td_data = dma_desc; pch_udc_alloc_request()
1798 req->td_data_last = dma_desc; pch_udc_alloc_request()
/linux-4.1.27/drivers/scsi/qla2xxx/
H A Dqla_nx2.c2905 struct qla8044_pex_dma_descriptor dma_desc; qla8044_minidump_pex_dma_read() local
2932 dma_desc.cmd.dma_desc_cmd = (m_hdr->dma_desc_cmd & 0xff0f); qla8044_minidump_pex_dma_read()
2933 dma_desc.cmd.dma_desc_cmd |= qla8044_minidump_pex_dma_read()
2936 dma_desc.dma_bus_addr = rdmem_dma; qla8044_minidump_pex_dma_read()
2937 dma_desc.cmd.read_data_size = chunk_size = ISP8044_PEX_DMA_READ_SIZE; qla8044_minidump_pex_dma_read()
2948 dma_desc.cmd.read_data_size = chunk_size; qla8044_minidump_pex_dma_read()
2951 dma_desc.src_addr = m_hdr->read_addr + read_size; qla8044_minidump_pex_dma_read()
2955 m_hdr->desc_card_addr, (void *)&dma_desc, qla8044_minidump_pex_dma_read()
/linux-4.1.27/drivers/scsi/qla4xxx/
H A Dql4_nx.c2037 struct qla4_83xx_pex_dma_descriptor dma_desc; qla4_8xxx_minidump_pex_dma_read() local
2066 dma_desc.cmd.dma_desc_cmd = (m_hdr->dma_desc_cmd & 0xff0f); qla4_8xxx_minidump_pex_dma_read()
2067 dma_desc.cmd.dma_desc_cmd |= ((PCI_FUNC(ha->pdev->devfn) & 0xf) << 0x4); qla4_8xxx_minidump_pex_dma_read()
2068 dma_desc.dma_bus_addr = rdmem_dma; qla4_8xxx_minidump_pex_dma_read()
2097 dma_desc.dma_bus_addr = rdmem_dma; qla4_8xxx_minidump_pex_dma_read()
2100 dma_desc.src_addr = m_hdr->read_addr + read_size; qla4_8xxx_minidump_pex_dma_read()
2101 dma_desc.cmd.read_data_size = size; qla4_8xxx_minidump_pex_dma_read()
2106 (uint32_t *)&dma_desc, qla4_8xxx_minidump_pex_dma_read()
/linux-4.1.27/drivers/media/platform/marvell-ccic/
H A Dmcam-core.c221 struct mcam_dma_desc *dma_desc; /* Descriptor virtual address */ member in struct:mcam_vb_buffer
1190 mvb->dma_desc = dma_alloc_coherent(cam->dev, mcam_vb_sg_buf_init()
1193 if (mvb->dma_desc == NULL) { mcam_vb_sg_buf_init()
1204 struct mcam_dma_desc *desc = mvb->dma_desc; mcam_vb_sg_buf_prepare()
1223 mvb->dma_desc, mvb->dma_desc_pa); mcam_vb_sg_buf_cleanup()

Completed in 2050 milliseconds