Lines Matching refs:edma_cc

271 static struct edma *edma_cc[EDMA_MAX_CC];  variable
294 queue_no = edma_cc[ctlr]->default_queue; in map_dmach_queue()
341 edma_cc[ctlr]->intr_data[lch].callback = callback; in setup_dma_interrupt()
342 edma_cc[ctlr]->intr_data[lch].data = data; in setup_dma_interrupt()
354 if (irq >= edma_cc[0]->irq_res_start && irq <= edma_cc[0]->irq_res_end) in irq2ctlr()
356 else if (irq >= edma_cc[1]->irq_res_start && in irq2ctlr()
357 irq <= edma_cc[1]->irq_res_end) in irq2ctlr()
407 if (edma_cc[ctlr]->intr_data[channel].callback) in dma_irq_handler()
408 edma_cc[ctlr]->intr_data[channel].callback( in dma_irq_handler()
411 edma_cc[ctlr]->intr_data[channel].data); in dma_irq_handler()
461 if (edma_cc[ctlr]->intr_data[k]. in dma_ccerr_handler()
463 edma_cc[ctlr]->intr_data[k]. in dma_ccerr_handler()
467 edma_cc[ctlr]->intr_data in dma_ccerr_handler()
522 for (i = start_slot; i < edma_cc[ctlr]->num_slots; ++i) { in reserve_contiguous_slots()
524 if (!test_and_set_bit(j, edma_cc[ctlr]->edma_inuse)) { in reserve_contiguous_slots()
552 if (i == edma_cc[ctlr]->num_slots) in reserve_contiguous_slots()
557 clear_bit(j, edma_cc[ctlr]->edma_inuse); in reserve_contiguous_slots()
591 edma_cc[0]->edma_unused); in prepare_unused_channel_list()
603 edma_cc[ctlr]->edma_unused); in prepare_unused_channel_list()
677 channel = find_next_bit(edma_cc[i]->edma_unused, in edma_alloc_channel()
678 edma_cc[i]->num_channels, in edma_alloc_channel()
680 if (channel == edma_cc[i]->num_channels) in edma_alloc_channel()
683 edma_cc[i]->edma_inuse)) { in edma_alloc_channel()
695 } else if (channel >= edma_cc[ctlr]->num_channels) { in edma_alloc_channel()
697 } else if (test_and_set_bit(channel, edma_cc[ctlr]->edma_inuse)) { in edma_alloc_channel()
738 if (channel >= edma_cc[ctlr]->num_channels) in edma_free_channel()
746 clear_bit(channel, edma_cc[ctlr]->edma_inuse); in edma_free_channel()
766 if (!edma_cc[ctlr]) in edma_alloc_slot()
773 slot = edma_cc[ctlr]->num_channels; in edma_alloc_slot()
775 slot = find_next_zero_bit(edma_cc[ctlr]->edma_inuse, in edma_alloc_slot()
776 edma_cc[ctlr]->num_slots, slot); in edma_alloc_slot()
777 if (slot == edma_cc[ctlr]->num_slots) in edma_alloc_slot()
779 if (!test_and_set_bit(slot, edma_cc[ctlr]->edma_inuse)) in edma_alloc_slot()
782 } else if (slot < edma_cc[ctlr]->num_channels || in edma_alloc_slot()
783 slot >= edma_cc[ctlr]->num_slots) { in edma_alloc_slot()
785 } else if (test_and_set_bit(slot, edma_cc[ctlr]->edma_inuse)) { in edma_alloc_slot()
811 if (slot < edma_cc[ctlr]->num_channels || in edma_free_slot()
812 slot >= edma_cc[ctlr]->num_slots) in edma_free_slot()
817 clear_bit(slot, edma_cc[ctlr]->edma_inuse); in edma_free_slot()
855 (slot < edma_cc[ctlr]->num_channels || in edma_alloc_cont_slots()
856 slot >= edma_cc[ctlr]->num_slots)) in edma_alloc_cont_slots()
865 (edma_cc[ctlr]->num_slots - edma_cc[ctlr]->num_channels)) in edma_alloc_cont_slots()
871 edma_cc[ctlr]->num_channels); in edma_alloc_cont_slots()
903 if (slot < edma_cc[ctlr]->num_channels || in edma_free_cont_slots()
904 slot >= edma_cc[ctlr]->num_slots || in edma_free_cont_slots()
914 clear_bit(slot_to_free, edma_cc[ctlr]->edma_inuse); in edma_free_cont_slots()
944 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_src()
982 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_dest()
1036 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_src_index()
1062 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_dest_index()
1109 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_transfer_params()
1139 if (from >= edma_cc[ctlr_from]->num_slots) in edma_link()
1141 if (to >= edma_cc[ctlr_to]->num_slots) in edma_link()
1162 if (from >= edma_cc[ctlr]->num_slots) in edma_unlink()
1189 if (slot >= edma_cc[ctlr]->num_slots) in edma_write_slot()
1211 if (slot >= edma_cc[ctlr]->num_slots) in edma_read_slot()
1236 if (channel < edma_cc[ctlr]->num_channels) { in edma_pause()
1257 if (channel < edma_cc[ctlr]->num_channels) { in edma_resume()
1300 if (channel < edma_cc[ctlr]->num_channels) { in edma_start()
1305 if (test_bit(channel, edma_cc[ctlr]->edma_unused)) { in edma_start()
1346 if (channel < edma_cc[ctlr]->num_channels) { in edma_stop()
1385 if (channel < edma_cc[ctlr]->num_channels) { in edma_clean_channel()
1413 if (channel >= edma_cc[ctlr]->num_channels) in edma_clear_event()
1437 if (channel >= edma_cc[ctlr]->num_channels) in edma_assign_channel_eventq()
1442 eventq_no = edma_cc[ctlr]->default_queue; in edma_assign_channel_eventq()
1443 if (eventq_no >= edma_cc[ctlr]->num_tc) in edma_assign_channel_eventq()
1451 struct edma *edma_cc, int cc_id) in edma_setup_from_hw() argument
1461 edma_cc->num_region = BIT(value); in edma_setup_from_hw()
1464 edma_cc->num_channels = BIT(value + 1); in edma_setup_from_hw()
1467 edma_cc->num_slots = BIT(value + 4); in edma_setup_from_hw()
1470 edma_cc->num_tc = value + 1; in edma_setup_from_hw()
1474 dev_dbg(dev, "num_region: %u\n", edma_cc->num_region); in edma_setup_from_hw()
1475 dev_dbg(dev, "num_channel: %u\n", edma_cc->num_channels); in edma_setup_from_hw()
1476 dev_dbg(dev, "num_slot: %u\n", edma_cc->num_slots); in edma_setup_from_hw()
1477 dev_dbg(dev, "num_tc: %u\n", edma_cc->num_tc); in edma_setup_from_hw()
1494 (edma_cc->num_tc + 1) * sizeof(s8), in edma_setup_from_hw()
1499 for (i = 0; i < edma_cc->num_tc; i++) { in edma_setup_from_hw()
1692 edma_cc[j] = devm_kzalloc(&pdev->dev, sizeof(struct edma), in edma_probe()
1694 if (!edma_cc[j]) in edma_probe()
1698 ret = edma_setup_from_hw(dev, info[j], edma_cc[j], j); in edma_probe()
1702 edma_cc[j]->default_queue = info[j]->default_queue; in edma_probe()
1707 for (i = 0; i < edma_cc[j]->num_slots; i++) in edma_probe()
1712 memset(edma_cc[j]->edma_unused, 0xff, in edma_probe()
1713 sizeof(edma_cc[j]->edma_unused)); in edma_probe()
1724 edma_cc[j]->edma_unused); in edma_probe()
1735 edma_cc[j]->edma_inuse); in edma_probe()
1746 edma_cc[j]->edma_unused); in edma_probe()
1762 edma_cc[j]->irq_res_start = irq[j]; in edma_probe()
1763 edma_cc[j]->irq_res_end = err_irq[j]; in edma_probe()
1783 for (i = 0; i < edma_cc[j]->num_channels; i++) in edma_probe()
1800 for (i = 0; i < edma_cc[j]->num_region; i++) { in edma_probe()
1805 edma_cc[j]->info = info[j]; in edma_probe()
1821 struct edma *cc = edma_cc[j]; in edma_pm_resume()