Lines Matching refs:ppc440spe_chan
1780 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_alloc_chan_resources() local
1786 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_alloc_chan_resources()
1787 init = ppc440spe_chan->slots_allocated ? 0 : 1; in ppc440spe_adma_alloc_chan_resources()
1788 chan->chan_id = ppc440spe_chan->device->id; in ppc440spe_adma_alloc_chan_resources()
1791 i = ppc440spe_chan->slots_allocated; in ppc440spe_adma_alloc_chan_resources()
1792 if (ppc440spe_chan->device->id != PPC440SPE_XOR_ID) in ppc440spe_adma_alloc_chan_resources()
1797 for (; i < (ppc440spe_chan->device->pool_size / db_sz); i++) { in ppc440spe_adma_alloc_chan_resources()
1806 hw_desc = (char *) ppc440spe_chan->device->dma_desc_pool_virt; in ppc440spe_adma_alloc_chan_resources()
1813 slot->phys = ppc440spe_chan->device->dma_desc_pool + i * db_sz; in ppc440spe_adma_alloc_chan_resources()
1816 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_alloc_chan_resources()
1817 ppc440spe_chan->slots_allocated++; in ppc440spe_adma_alloc_chan_resources()
1818 list_add_tail(&slot->slot_node, &ppc440spe_chan->all_slots); in ppc440spe_adma_alloc_chan_resources()
1819 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_alloc_chan_resources()
1822 if (i && !ppc440spe_chan->last_used) { in ppc440spe_adma_alloc_chan_resources()
1823 ppc440spe_chan->last_used = in ppc440spe_adma_alloc_chan_resources()
1824 list_entry(ppc440spe_chan->all_slots.next, in ppc440spe_adma_alloc_chan_resources()
1829 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_alloc_chan_resources()
1831 ppc440spe_chan->device->id, i); in ppc440spe_adma_alloc_chan_resources()
1835 switch (ppc440spe_chan->device->id) { in ppc440spe_adma_alloc_chan_resources()
1838 ppc440spe_chan->hw_chain_inited = 0; in ppc440spe_adma_alloc_chan_resources()
1841 ppc440spe_r6_tchan = ppc440spe_chan; in ppc440spe_adma_alloc_chan_resources()
1844 ppc440spe_chan_start_null_xor(ppc440spe_chan); in ppc440spe_adma_alloc_chan_resources()
1849 ppc440spe_chan->needs_unmap = 1; in ppc440spe_adma_alloc_chan_resources()
1961 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_interrupt() local
1965 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_interrupt()
1967 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_interrupt()
1968 "ppc440spe adma%d: %s\n", ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_interrupt()
1971 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_interrupt()
1973 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_interrupt()
1977 ppc440spe_desc_init_interrupt(group_start, ppc440spe_chan); in ppc440spe_adma_prep_dma_interrupt()
1981 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_interrupt()
1993 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_memcpy() local
1997 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_memcpy()
2004 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_memcpy()
2006 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_memcpy()
2008 ppc440spe_chan->device->id, __func__, len, in ppc440spe_adma_prep_dma_memcpy()
2011 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_memcpy()
2018 ppc440spe_desc_set_byte_count(group_start, ppc440spe_chan, len); in ppc440spe_adma_prep_dma_memcpy()
2022 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_memcpy()
2035 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_xor() local
2039 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_xor()
2041 ADMA_LL_DBG(prep_dma_xor_dbg(ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_xor()
2047 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_xor()
2049 ppc440spe_chan->device->id, __func__, src_cnt, len, in ppc440spe_adma_prep_dma_xor()
2052 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_xor()
2054 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_xor()
2063 ppc440spe_desc_set_byte_count(group_start, ppc440spe_chan, len); in ppc440spe_adma_prep_dma_xor()
2067 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_xor()
2098 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma01_prep_mult() argument
2109 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_mult()
2112 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma01_prep_mult()
2142 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_mult()
2168 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_mult()
2173 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_mult()
2184 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma01_prep_sum_product() argument
2195 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_sum_product()
2198 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma01_prep_sum_product()
2223 ppc440spe_chan->qdest, 1); in ppc440spe_dma01_prep_sum_product()
2226 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_sum_product()
2247 ppc440spe_chan->qdest); in ppc440spe_dma01_prep_sum_product()
2252 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_sum_product()
2277 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, len); in ppc440spe_dma01_prep_sum_product()
2282 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_sum_product()
2288 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma01_prep_pq() argument
2391 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_pq()
2393 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma01_prep_pq()
2423 ppc440spe_chan, len); in ppc440spe_dma01_prep_pq()
2427 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma01_prep_pq()
2433 struct ppc440spe_adma_chan *ppc440spe_chan, in ppc440spe_dma2_prep_pq() argument
2446 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_dma2_prep_pq()
2449 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma2_prep_pq()
2456 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, 1); in ppc440spe_dma2_prep_pq()
2463 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_dma2_prep_pq()
2513 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_dma2_prep_pq()
2526 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_pq() local
2530 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_pq()
2532 ADMA_LL_DBG(prep_dma_pq_dbg(ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_pq()
2544 dest[1] = ppc440spe_chan->qdest; in ppc440spe_adma_prep_dma_pq()
2545 sw_desc = ppc440spe_dma01_prep_mult(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2551 sw_desc = ppc440spe_dma01_prep_sum_product(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2570 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_prep_dma_pq()
2572 ppc440spe_chan->device->id, __func__, src_cnt, len, in ppc440spe_adma_prep_dma_pq()
2575 switch (ppc440spe_chan->device->id) { in ppc440spe_adma_prep_dma_pq()
2578 sw_desc = ppc440spe_dma01_prep_pq(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2584 sw_desc = ppc440spe_dma2_prep_pq(ppc440spe_chan, in ppc440spe_adma_prep_dma_pq()
2602 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_prep_dma_pqzero_sum() local
2607 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_prep_dma_pqzero_sum()
2619 ADMA_LL_DBG(prep_dma_pqzero_sum_dbg(ppc440spe_chan->device->id, in ppc440spe_adma_prep_dma_pqzero_sum()
2633 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_pqzero_sum()
2634 sw_desc = ppc440spe_adma_alloc_slots(ppc440spe_chan, slot_cnt, in ppc440spe_adma_prep_dma_pqzero_sum()
2642 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2662 ppc440spe_chan->pdest, 0); in ppc440spe_adma_prep_dma_pqzero_sum()
2664 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2668 pdest = ppc440spe_chan->pdest; in ppc440spe_adma_prep_dma_pqzero_sum()
2694 ppc440spe_chan->qdest, 0); in ppc440spe_adma_prep_dma_pqzero_sum()
2696 ppc440spe_desc_set_byte_count(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2700 qdest = ppc440spe_chan->qdest; in ppc440spe_adma_prep_dma_pqzero_sum()
2739 ppc440spe_desc_set_dcheck(iter, ppc440spe_chan, in ppc440spe_adma_prep_dma_pqzero_sum()
2768 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_prep_dma_pqzero_sum()
3549 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_free_chan_resources() local
3553 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_free_chan_resources()
3554 ppc440spe_adma_slot_cleanup(ppc440spe_chan); in ppc440spe_adma_free_chan_resources()
3556 spin_lock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_free_chan_resources()
3557 list_for_each_entry_safe(iter, _iter, &ppc440spe_chan->chain, in ppc440spe_adma_free_chan_resources()
3563 &ppc440spe_chan->all_slots, slot_node) { in ppc440spe_adma_free_chan_resources()
3566 ppc440spe_chan->slots_allocated--; in ppc440spe_adma_free_chan_resources()
3568 ppc440spe_chan->last_used = NULL; in ppc440spe_adma_free_chan_resources()
3570 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_free_chan_resources()
3572 ppc440spe_chan->device->id, in ppc440spe_adma_free_chan_resources()
3573 __func__, ppc440spe_chan->slots_allocated); in ppc440spe_adma_free_chan_resources()
3574 spin_unlock_bh(&ppc440spe_chan->lock); in ppc440spe_adma_free_chan_resources()
3591 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_tx_status() local
3594 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_tx_status()
3599 ppc440spe_adma_slot_cleanup(ppc440spe_chan); in ppc440spe_adma_tx_status()
3650 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_issue_pending() local
3652 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_issue_pending()
3653 dev_dbg(ppc440spe_chan->device->common.dev, in ppc440spe_adma_issue_pending()
3654 "ppc440spe adma%d: %s %d \n", ppc440spe_chan->device->id, in ppc440spe_adma_issue_pending()
3655 __func__, ppc440spe_chan->pending); in ppc440spe_adma_issue_pending()
3657 if (ppc440spe_chan->pending) { in ppc440spe_adma_issue_pending()
3658 ppc440spe_chan->pending = 0; in ppc440spe_adma_issue_pending()
3659 ppc440spe_chan_append(ppc440spe_chan); in ppc440spe_adma_issue_pending()
4256 struct ppc440spe_adma_chan *ppc440spe_chan; in ppc440spe_adma_remove() local
4265 ppc440spe_chan = to_ppc440spe_adma_chan(chan); in ppc440spe_adma_remove()
4266 ppc440spe_adma_release_irqs(adev, ppc440spe_chan); in ppc440spe_adma_remove()
4267 tasklet_kill(&ppc440spe_chan->irq_tasklet); in ppc440spe_adma_remove()
4269 dma_unmap_page(&ofdev->dev, ppc440spe_chan->pdest, in ppc440spe_adma_remove()
4271 dma_unmap_page(&ofdev->dev, ppc440spe_chan->qdest, in ppc440spe_adma_remove()
4273 __free_page(ppc440spe_chan->pdest_page); in ppc440spe_adma_remove()
4274 __free_page(ppc440spe_chan->qdest_page); in ppc440spe_adma_remove()
4278 if (ppc440spe_chan == in ppc440spe_adma_remove()
4285 kfree(ppc440spe_chan); in ppc440spe_adma_remove()