Lines Matching refs:ppc440spe_chan

1768 	struct ppc440spe_adma_chan *ppc440spe_chan;  in ppc440spe_adma_alloc_chan_resources()  local
1774 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_alloc_chan_resources()
1775 init = ppc440spe_chan->slots_allocated ? 0 : 1; in ppc440spe_adma_alloc_chan_resources()
1776 chan->chan_id = ppc440spe_chan->device->id; in ppc440spe_adma_alloc_chan_resources()
1779 i = ppc440spe_chan->slots_allocated; in ppc440spe_adma_alloc_chan_resources()
1780 if (ppc440spe_chan->device->id != PPC440SPE_XOR_ID) in ppc440spe_adma_alloc_chan_resources()
1785 for (; i < (ppc440spe_chan->device->pool_size / db_sz); i++) { in ppc440spe_adma_alloc_chan_resources()
1794 hw_desc = (char *) ppc440spe_chan->device->dma_desc_pool_virt; in ppc440spe_adma_alloc_chan_resources()
1801 slot->phys = ppc440spe_chan->device->dma_desc_pool + i * db_sz; in ppc440spe_adma_alloc_chan_resources()
1804 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_alloc_chan_resources()
1805 ppc440spe_chan->slots_allocated++; in ppc440spe_adma_alloc_chan_resources()
1806 list_add_tail(&slot->slot_node, &ppc440spe_chan->all_slots); in ppc440spe_adma_alloc_chan_resources()
1807 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_alloc_chan_resources()
1810 if (i && !ppc440spe_chan->last_used) { in ppc440spe_adma_alloc_chan_resources()
1811 ppc440spe_chan->last_used = in ppc440spe_adma_alloc_chan_resources()
1812 list_entry(ppc440spe_chan->all_slots.next, in ppc440spe_adma_alloc_chan_resources()
1817 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_alloc_chan_resources()
1819 ppc440spe_chan->device->id, i); in ppc440spe_adma_alloc_chan_resources()
1823 switch (ppc440spe_chan->device->id) { in ppc440spe_adma_alloc_chan_resources()
1826 ppc440spe_chan->hw_chain_inited = 0; in ppc440spe_adma_alloc_chan_resources()
1829 ppc440spe_r6_tchan = ppc440spe_chan; in ppc440spe_adma_alloc_chan_resources()
1832 ppc440spe_chan_start_null_xor(ppc440spe_chan); in ppc440spe_adma_alloc_chan_resources()
1837 ppc440spe_chan->needs_unmap = 1; in ppc440spe_adma_alloc_chan_resources()
1949 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_interrupt() local
1953 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_interrupt()
1955 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_interrupt()
1956 "ppc440spe adma%d: %s\n", ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_interrupt()
1959 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_interrupt()
1961 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_interrupt()
1965 ppc440spe_desc_init_interrupt(group_start, ppc440spe_chan); in ppc440spe_adma_prep_dma_interrupt()
1969 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_interrupt()
1981 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_memcpy() local
1985 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_memcpy()
1992 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_memcpy()
1994 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_memcpy()
1996 ppc440spe_chan->device->id, __func__, len, in ppc440spe_adma_prep_dma_memcpy()
1999 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_memcpy()
2006 ppc440spe_desc_set_byte_count(group_start, ppc440spe_chan, len); in ppc440spe_adma_prep_dma_memcpy()
2010 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_memcpy()
2023 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_xor() local
2027 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_xor()
2029 ADMA_LL_DBG(prep_dma_xor_dbg(ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_xor()
2035 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_xor()
2037 ppc440spe_chan->device->id, __func__, src_cnt, len, in ppc440spe_adma_prep_dma_xor()
2040 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_xor()
2042 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_xor()
2051 ppc440spe_desc_set_byte_count(group_start, ppc440spe_chan, len); in ppc440spe_adma_prep_dma_xor()
2055 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_xor()
2086 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma01_prep_mult() argument
2097 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_mult()
2100 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma01_prep_mult()
2130 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_mult()
2156 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_mult()
2161 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_mult()
2172 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma01_prep_sum_product() argument
2183 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_sum_product()
2186 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma01_prep_sum_product()
2211 ppc440spe_chan->qdest, 1); in ppc440spe_dma01_prep_sum_product()
2214 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_sum_product()
2235 ppc440spe_chan->qdest); in ppc440spe_dma01_prep_sum_product()
2240 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_sum_product()
2265 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_sum_product()
2270 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_sum_product()
2276 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma01_prep_pq() argument
2379 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_pq()
2381 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma01_prep_pq()
2411 ppc440spe_chan, len); in ppc440spe_dma01_prep_pq()
2415 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_pq()
2421 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma2_prep_pq() argument
2434 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma2_prep_pq()
2437 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma2_prep_pq()
2444 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma2_prep_pq()
2451 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_dma2_prep_pq()
2501 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma2_prep_pq()
2514 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_pq() local
2518 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_pq()
2520 ADMA_LL_DBG(prep_dma_pq_dbg(ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_pq()
2532 dest[1] = ppc440spe_chan->qdest; in ppc440spe_adma_prep_dma_pq()
2533 sw_desc = ppc440spe_dma01_prep_mult(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2539 sw_desc = ppc440spe_dma01_prep_sum_product(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2558 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_pq()
2560 ppc440spe_chan->device->id, __func__, src_cnt, len, in ppc440spe_adma_prep_dma_pq()
2563 switch (ppc440spe_chan->device->id) { in ppc440spe_adma_prep_dma_pq()
2566 sw_desc = ppc440spe_dma01_prep_pq(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2572 sw_desc = ppc440spe_dma2_prep_pq(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2590 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_pqzero_sum() local
2595 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_pqzero_sum()
2607 ADMA_LL_DBG(prep_dma_pqzero_sum_dbg(ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_pqzero_sum()
2621 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_pqzero_sum()
2622 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_pqzero_sum()
2630 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2650 ppc440spe_chan->pdest, 0); in ppc440spe_adma_prep_dma_pqzero_sum()
2652 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2656 pdest = ppc440spe_chan->pdest; in ppc440spe_adma_prep_dma_pqzero_sum()
2682 ppc440spe_chan->qdest, 0); in ppc440spe_adma_prep_dma_pqzero_sum()
2684 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2688 qdest = ppc440spe_chan->qdest; in ppc440spe_adma_prep_dma_pqzero_sum()
2727 ppc440spe_desc_set_dcheck(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2756 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_pqzero_sum()
3537 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_free_chan_resources() local
3541 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_free_chan_resources()
3542 ppc440spe_adma_slot_cleanup(ppc440spe_chan); in ppc440spe_adma_free_chan_resources()
3544 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_free_chan_resources()
3545 list_for_each_entry_safe(iter, _iter, &ppc440spe_chan->chain, in ppc440spe_adma_free_chan_resources()
3551 &ppc440spe_chan->all_slots, slot_node) { in ppc440spe_adma_free_chan_resources()
3554 ppc440spe_chan->slots_allocated--; in ppc440spe_adma_free_chan_resources()
3556 ppc440spe_chan->last_used = NULL; in ppc440spe_adma_free_chan_resources()
3558 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_free_chan_resources()
3560 ppc440spe_chan->device->id, in ppc440spe_adma_free_chan_resources()
3561 __func__, ppc440spe_chan->slots_allocated); in ppc440spe_adma_free_chan_resources()
3562 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_free_chan_resources()
3579 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_tx_status() local
3582 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_tx_status()
3587 ppc440spe_adma_slot_cleanup(ppc440spe_chan); in ppc440spe_adma_tx_status()
3638 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_issue_pending() local
3640 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_issue_pending()
3641 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_issue_pending()
3642 "ppc440spe adma%d: %s %d \n", ppc440spe_chan->device->id, in ppc440spe_adma_issue_pending()
3643 __func__, ppc440spe_chan->pending); in ppc440spe_adma_issue_pending()
3645 if (ppc440spe_chan->pending) { in ppc440spe_adma_issue_pending()
3646 ppc440spe_chan->pending = 0; in ppc440spe_adma_issue_pending()
3647 ppc440spe_chan_append(ppc440spe_chan); in ppc440spe_adma_issue_pending()
4243 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_remove() local
4252 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_remove()
4253 ppc440spe_adma_release_irqs(adev, ppc440spe_chan); in ppc440spe_adma_remove()
4254 tasklet_kill(&ppc440spe_chan->irq_tasklet); in ppc440spe_adma_remove()
4256 dma_unmap_page(&ofdev->dev, ppc440spe_chan->pdest, in ppc440spe_adma_remove()
4258 dma_unmap_page(&ofdev->dev, ppc440spe_chan->qdest, in ppc440spe_adma_remove()
4260 __free_page(ppc440spe_chan->pdest_page); in ppc440spe_adma_remove()
4261 __free_page(ppc440spe_chan->qdest_page); in ppc440spe_adma_remove()
4265 if (ppc440spe_chan == in ppc440spe_adma_remove()
4272 kfree(ppc440spe_chan); in ppc440spe_adma_remove()