• Home
  • Raw
  • Download

Lines Matching refs:desc

237 				  struct ep93xx_dma_desc *desc)  in ep93xx_dma_set_active()  argument
241 list_add_tail(&desc->node, &edmac->active); in ep93xx_dma_set_active()
244 while (!list_empty(&desc->tx_list)) { in ep93xx_dma_set_active()
245 struct ep93xx_dma_desc *d = list_first_entry(&desc->tx_list, in ep93xx_dma_set_active()
254 d->txd.callback = desc->txd.callback; in ep93xx_dma_set_active()
255 d->txd.callback_param = desc->txd.callback_param; in ep93xx_dma_set_active()
285 struct ep93xx_dma_desc *desc; in ep93xx_dma_advance_active() local
292 desc = ep93xx_dma_get_active(edmac); in ep93xx_dma_advance_active()
293 if (!desc) in ep93xx_dma_advance_active()
300 return !desc->txd.cookie; in ep93xx_dma_advance_active()
357 struct ep93xx_dma_desc *desc; in m2p_fill_desc() local
360 desc = ep93xx_dma_get_active(edmac); in m2p_fill_desc()
361 if (!desc) { in m2p_fill_desc()
367 bus_addr = desc->src_addr; in m2p_fill_desc()
369 bus_addr = desc->dst_addr; in m2p_fill_desc()
372 writel(desc->size, edmac->regs + M2P_MAXCNT0); in m2p_fill_desc()
375 writel(desc->size, edmac->regs + M2P_MAXCNT1); in m2p_fill_desc()
403 struct ep93xx_dma_desc *desc = ep93xx_dma_get_active(edmac); in m2p_hw_interrupt() local
422 desc->txd.cookie, desc->src_addr, desc->dst_addr, in m2p_hw_interrupt()
423 desc->size); in m2p_hw_interrupt()
518 struct ep93xx_dma_desc *desc; in m2m_fill_desc() local
520 desc = ep93xx_dma_get_active(edmac); in m2m_fill_desc()
521 if (!desc) { in m2m_fill_desc()
527 writel(desc->src_addr, edmac->regs + M2M_SAR_BASE0); in m2m_fill_desc()
528 writel(desc->dst_addr, edmac->regs + M2M_DAR_BASE0); in m2m_fill_desc()
529 writel(desc->size, edmac->regs + M2M_BCR0); in m2m_fill_desc()
531 writel(desc->src_addr, edmac->regs + M2M_SAR_BASE1); in m2m_fill_desc()
532 writel(desc->dst_addr, edmac->regs + M2M_DAR_BASE1); in m2m_fill_desc()
533 writel(desc->size, edmac->regs + M2M_BCR1); in m2m_fill_desc()
595 struct ep93xx_dma_desc *desc; in m2m_hw_interrupt() local
610 desc = ep93xx_dma_get_active(edmac); in m2m_hw_interrupt()
611 last_done = !desc || desc->txd.cookie; in m2m_hw_interrupt()
669 struct ep93xx_dma_desc *desc, *_desc; in ep93xx_dma_desc_get() local
674 list_for_each_entry_safe(desc, _desc, &edmac->free_list, node) { in ep93xx_dma_desc_get()
675 if (async_tx_test_ack(&desc->txd)) { in ep93xx_dma_desc_get()
676 list_del_init(&desc->node); in ep93xx_dma_desc_get()
679 desc->src_addr = 0; in ep93xx_dma_desc_get()
680 desc->dst_addr = 0; in ep93xx_dma_desc_get()
681 desc->size = 0; in ep93xx_dma_desc_get()
682 desc->complete = false; in ep93xx_dma_desc_get()
683 desc->txd.cookie = 0; in ep93xx_dma_desc_get()
684 desc->txd.callback = NULL; in ep93xx_dma_desc_get()
685 desc->txd.callback_param = NULL; in ep93xx_dma_desc_get()
687 ret = desc; in ep93xx_dma_desc_get()
696 struct ep93xx_dma_desc *desc) in ep93xx_dma_desc_put() argument
698 if (desc) { in ep93xx_dma_desc_put()
702 list_splice_init(&desc->tx_list, &edmac->free_list); in ep93xx_dma_desc_put()
703 list_add(&desc->node, &edmac->free_list); in ep93xx_dma_desc_put()
741 struct ep93xx_dma_desc *desc, *d; in ep93xx_dma_tasklet() local
752 desc = ep93xx_dma_get_active(edmac); in ep93xx_dma_tasklet()
753 if (desc) { in ep93xx_dma_tasklet()
754 if (desc->complete) { in ep93xx_dma_tasklet()
757 dma_cookie_complete(&desc->txd); in ep93xx_dma_tasklet()
760 callback = desc->txd.callback; in ep93xx_dma_tasklet()
761 callback_param = desc->txd.callback_param; in ep93xx_dma_tasklet()
769 list_for_each_entry_safe(desc, d, &list, node) { in ep93xx_dma_tasklet()
770 dma_descriptor_unmap(&desc->txd); in ep93xx_dma_tasklet()
771 ep93xx_dma_desc_put(edmac, desc); in ep93xx_dma_tasklet()
781 struct ep93xx_dma_desc *desc; in ep93xx_dma_interrupt() local
786 desc = ep93xx_dma_get_active(edmac); in ep93xx_dma_interrupt()
787 if (!desc) { in ep93xx_dma_interrupt()
796 desc->complete = true; in ep93xx_dma_interrupt()
826 struct ep93xx_dma_desc *desc; in ep93xx_dma_tx_submit() local
833 desc = container_of(tx, struct ep93xx_dma_desc, txd); in ep93xx_dma_tx_submit()
841 ep93xx_dma_set_active(edmac, desc); in ep93xx_dma_tx_submit()
844 list_add_tail(&desc->node, &edmac->queue); in ep93xx_dma_tx_submit()
909 struct ep93xx_dma_desc *desc; in ep93xx_dma_alloc_chan_resources() local
911 desc = kzalloc(sizeof(*desc), GFP_KERNEL); in ep93xx_dma_alloc_chan_resources()
912 if (!desc) { in ep93xx_dma_alloc_chan_resources()
917 INIT_LIST_HEAD(&desc->tx_list); in ep93xx_dma_alloc_chan_resources()
919 dma_async_tx_descriptor_init(&desc->txd, chan); in ep93xx_dma_alloc_chan_resources()
920 desc->txd.flags = DMA_CTRL_ACK; in ep93xx_dma_alloc_chan_resources()
921 desc->txd.tx_submit = ep93xx_dma_tx_submit; in ep93xx_dma_alloc_chan_resources()
923 ep93xx_dma_desc_put(edmac, desc); in ep93xx_dma_alloc_chan_resources()
946 struct ep93xx_dma_desc *desc, *d; in ep93xx_dma_free_chan_resources() local
961 list_for_each_entry_safe(desc, d, &list, node) in ep93xx_dma_free_chan_resources()
962 kfree(desc); in ep93xx_dma_free_chan_resources()
983 struct ep93xx_dma_desc *desc, *first; in ep93xx_dma_prep_dma_memcpy() local
988 desc = ep93xx_dma_desc_get(edmac); in ep93xx_dma_prep_dma_memcpy()
989 if (!desc) { in ep93xx_dma_prep_dma_memcpy()
996 desc->src_addr = src + offset; in ep93xx_dma_prep_dma_memcpy()
997 desc->dst_addr = dest + offset; in ep93xx_dma_prep_dma_memcpy()
998 desc->size = bytes; in ep93xx_dma_prep_dma_memcpy()
1001 first = desc; in ep93xx_dma_prep_dma_memcpy()
1003 list_add_tail(&desc->node, &first->tx_list); in ep93xx_dma_prep_dma_memcpy()
1032 struct ep93xx_dma_desc *desc, *first; in ep93xx_dma_prep_slave_sg() local
1058 desc = ep93xx_dma_desc_get(edmac); in ep93xx_dma_prep_slave_sg()
1059 if (!desc) { in ep93xx_dma_prep_slave_sg()
1065 desc->src_addr = sg_dma_address(sg); in ep93xx_dma_prep_slave_sg()
1066 desc->dst_addr = edmac->runtime_addr; in ep93xx_dma_prep_slave_sg()
1068 desc->src_addr = edmac->runtime_addr; in ep93xx_dma_prep_slave_sg()
1069 desc->dst_addr = sg_dma_address(sg); in ep93xx_dma_prep_slave_sg()
1071 desc->size = sg_len; in ep93xx_dma_prep_slave_sg()
1074 first = desc; in ep93xx_dma_prep_slave_sg()
1076 list_add_tail(&desc->node, &first->tx_list); in ep93xx_dma_prep_slave_sg()
1112 struct ep93xx_dma_desc *desc, *first; in ep93xx_dma_prep_dma_cyclic() local
1136 desc = ep93xx_dma_desc_get(edmac); in ep93xx_dma_prep_dma_cyclic()
1137 if (!desc) { in ep93xx_dma_prep_dma_cyclic()
1143 desc->src_addr = dma_addr + offset; in ep93xx_dma_prep_dma_cyclic()
1144 desc->dst_addr = edmac->runtime_addr; in ep93xx_dma_prep_dma_cyclic()
1146 desc->src_addr = edmac->runtime_addr; in ep93xx_dma_prep_dma_cyclic()
1147 desc->dst_addr = dma_addr + offset; in ep93xx_dma_prep_dma_cyclic()
1150 desc->size = period_len; in ep93xx_dma_prep_dma_cyclic()
1153 first = desc; in ep93xx_dma_prep_dma_cyclic()
1155 list_add_tail(&desc->node, &first->tx_list); in ep93xx_dma_prep_dma_cyclic()
1176 struct ep93xx_dma_desc *desc, *_d; in ep93xx_dma_terminate_all() local
1193 list_for_each_entry_safe(desc, _d, &list, node) in ep93xx_dma_terminate_all()
1194 ep93xx_dma_desc_put(edmac, desc); in ep93xx_dma_terminate_all()