Lines Matching refs:promise

322 	struct sun4i_dma_promise *promise = NULL;  in __execute_vchan_pending()  local
367 promise = list_first_entry(&contract->demands, in __execute_vchan_pending()
369 vchan->processing = promise; in __execute_vchan_pending()
372 if (promise) { in __execute_vchan_pending()
376 configure_pchan(pchan, promise); in __execute_vchan_pending()
436 struct sun4i_dma_promise *promise; in generate_ndma_promise() local
443 promise = kzalloc(sizeof(*promise), GFP_NOWAIT); in generate_ndma_promise()
444 if (!promise) in generate_ndma_promise()
447 promise->src = src; in generate_ndma_promise()
448 promise->dst = dest; in generate_ndma_promise()
449 promise->len = len; in generate_ndma_promise()
450 promise->cfg = SUN4I_DMA_CFG_LOADING | in generate_ndma_promise()
462 promise->cfg |= SUN4I_DMA_CFG_SRC_BURST_LENGTH(ret); in generate_ndma_promise()
468 promise->cfg |= SUN4I_DMA_CFG_DST_BURST_LENGTH(ret); in generate_ndma_promise()
474 promise->cfg |= SUN4I_DMA_CFG_SRC_DATA_WIDTH(ret); in generate_ndma_promise()
480 promise->cfg |= SUN4I_DMA_CFG_DST_DATA_WIDTH(ret); in generate_ndma_promise()
482 return promise; in generate_ndma_promise()
485 kfree(promise); in generate_ndma_promise()
502 struct sun4i_dma_promise *promise; in generate_ddma_promise() local
505 promise = kzalloc(sizeof(*promise), GFP_NOWAIT); in generate_ddma_promise()
506 if (!promise) in generate_ddma_promise()
509 promise->src = src; in generate_ddma_promise()
510 promise->dst = dest; in generate_ddma_promise()
511 promise->len = len; in generate_ddma_promise()
512 promise->cfg = SUN4I_DMA_CFG_LOADING | in generate_ddma_promise()
519 promise->cfg |= SUN4I_DMA_CFG_SRC_BURST_LENGTH(ret); in generate_ddma_promise()
525 promise->cfg |= SUN4I_DMA_CFG_DST_BURST_LENGTH(ret); in generate_ddma_promise()
531 promise->cfg |= SUN4I_DMA_CFG_SRC_DATA_WIDTH(ret); in generate_ddma_promise()
537 promise->cfg |= SUN4I_DMA_CFG_DST_DATA_WIDTH(ret); in generate_ddma_promise()
539 return promise; in generate_ddma_promise()
542 kfree(promise); in generate_ddma_promise()
578 struct sun4i_dma_promise *promise; in get_next_cyclic_promise() local
580 promise = list_first_entry_or_null(&contract->demands, in get_next_cyclic_promise()
582 if (!promise) { in get_next_cyclic_promise()
585 promise = list_first_entry(&contract->demands, in get_next_cyclic_promise()
589 return promise; in get_next_cyclic_promise()
598 struct sun4i_dma_promise *promise, *tmp; in sun4i_dma_free_contract() local
601 list_for_each_entry_safe(promise, tmp, &contract->demands, list) in sun4i_dma_free_contract()
602 kfree(promise); in sun4i_dma_free_contract()
604 list_for_each_entry_safe(promise, tmp, &contract->completed_demands, list) in sun4i_dma_free_contract()
605 kfree(promise); in sun4i_dma_free_contract()
616 struct sun4i_dma_promise *promise; in sun4i_dma_prep_dma_memcpy() local
634 promise = generate_ddma_promise(chan, src, dest, len, sconfig); in sun4i_dma_prep_dma_memcpy()
636 promise = generate_ndma_promise(chan, src, dest, len, sconfig, in sun4i_dma_prep_dma_memcpy()
639 if (!promise) { in sun4i_dma_prep_dma_memcpy()
646 promise->cfg |= SUN4I_DMA_CFG_SRC_DRQ_TYPE(SUN4I_DDMA_DRQ_TYPE_SDRAM) | in sun4i_dma_prep_dma_memcpy()
649 promise->cfg |= SUN4I_DMA_CFG_SRC_DRQ_TYPE(SUN4I_NDMA_DRQ_TYPE_SDRAM) | in sun4i_dma_prep_dma_memcpy()
654 list_add_tail(&promise->list, &contract->demands); in sun4i_dma_prep_dma_memcpy()
667 struct sun4i_dma_promise *promise; in sun4i_dma_prep_dma_cyclic() local
751 promise = generate_ddma_promise(chan, src, dest, in sun4i_dma_prep_dma_cyclic()
754 promise = generate_ndma_promise(chan, src, dest, in sun4i_dma_prep_dma_cyclic()
757 if (!promise) { in sun4i_dma_prep_dma_cyclic()
761 promise->cfg |= endpoints; in sun4i_dma_prep_dma_cyclic()
764 list_add_tail(&promise->list, &contract->demands); in sun4i_dma_prep_dma_cyclic()
778 struct sun4i_dma_promise *promise; in sun4i_dma_prep_slave_sg() local
842 promise = generate_ddma_promise(chan, srcaddr, dstaddr, in sun4i_dma_prep_slave_sg()
846 promise = generate_ndma_promise(chan, srcaddr, dstaddr, in sun4i_dma_prep_slave_sg()
850 if (!promise) in sun4i_dma_prep_slave_sg()
853 promise->cfg |= endpoints; in sun4i_dma_prep_slave_sg()
854 promise->para = para; in sun4i_dma_prep_slave_sg()
857 list_add_tail(&promise->list, &contract->demands); in sun4i_dma_prep_slave_sg()
950 struct sun4i_dma_promise *promise; in sun4i_dma_tx_status() local
966 list_for_each_entry(promise, &contract->demands, list) in sun4i_dma_tx_status()
967 bytes += promise->len; in sun4i_dma_tx_status()
974 promise = list_first_entry_or_null(&contract->demands, in sun4i_dma_tx_status()
976 if (promise && pchan) { in sun4i_dma_tx_status()
977 bytes -= promise->len; in sun4i_dma_tx_status()
1016 struct sun4i_dma_promise *promise; in sun4i_dma_interrupt() local
1063 promise = get_next_cyclic_promise(contract); in sun4i_dma_interrupt()
1064 vchan->processing = promise; in sun4i_dma_interrupt()
1065 configure_pchan(pchan, promise); in sun4i_dma_interrupt()