Lines Matching refs:slot
394 u32 slot; in dma_irq_handler() local
399 slot = __ffs(sh_ipr); in dma_irq_handler()
400 sh_ipr &= ~(BIT(slot)); in dma_irq_handler()
402 if (sh_ier & BIT(slot)) { in dma_irq_handler()
403 channel = (bank << 5) | slot; in dma_irq_handler()
406 BIT(slot)); in dma_irq_handler()
764 int edma_alloc_slot(unsigned ctlr, int slot) in edma_alloc_slot() argument
769 if (slot >= 0) in edma_alloc_slot()
770 slot = EDMA_CHAN_SLOT(slot); in edma_alloc_slot()
772 if (slot < 0) { 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()
789 memcpy_toio(edmacc_regs_base[ctlr] + PARM_OFFSET(slot), in edma_alloc_slot()
792 return EDMA_CTLR_CHAN(ctlr, slot); in edma_alloc_slot()
804 void edma_free_slot(unsigned slot) in edma_free_slot() argument
808 ctlr = EDMA_CTLR(slot); in edma_free_slot()
809 slot = EDMA_CHAN_SLOT(slot); in edma_free_slot()
811 if (slot < edma_cc[ctlr]->num_channels || in edma_free_slot()
812 slot >= edma_cc[ctlr]->num_slots) in edma_free_slot()
815 memcpy_toio(edmacc_regs_base[ctlr] + PARM_OFFSET(slot), in edma_free_slot()
817 clear_bit(slot, edma_cc[ctlr]->edma_inuse); in edma_free_slot()
847 int edma_alloc_cont_slots(unsigned ctlr, unsigned int id, int slot, int count) in edma_alloc_cont_slots() argument
855 (slot < edma_cc[ctlr]->num_channels || in edma_alloc_cont_slots()
856 slot >= edma_cc[ctlr]->num_slots)) in edma_alloc_cont_slots()
874 return reserve_contiguous_slots(ctlr, id, count, slot); in edma_alloc_cont_slots()
895 int edma_free_cont_slots(unsigned slot, int count) in edma_free_cont_slots() argument
900 ctlr = EDMA_CTLR(slot); in edma_free_cont_slots()
901 slot = EDMA_CHAN_SLOT(slot); in edma_free_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()
908 for (i = slot; i < slot + count; ++i) { in edma_free_cont_slots()
936 void edma_set_src(unsigned slot, dma_addr_t src_port, in edma_set_src() argument
941 ctlr = EDMA_CTLR(slot); in edma_set_src()
942 slot = EDMA_CHAN_SLOT(slot); in edma_set_src()
944 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_src()
945 unsigned int i = edma_parm_read(ctlr, PARM_OPT, slot); in edma_set_src()
954 edma_parm_write(ctlr, PARM_OPT, slot, i); in edma_set_src()
958 edma_parm_write(ctlr, PARM_SRC, slot, src_port); in edma_set_src()
974 void edma_set_dest(unsigned slot, dma_addr_t dest_port, in edma_set_dest() argument
979 ctlr = EDMA_CTLR(slot); in edma_set_dest()
980 slot = EDMA_CHAN_SLOT(slot); in edma_set_dest()
982 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_dest()
983 unsigned int i = edma_parm_read(ctlr, PARM_OPT, slot); in edma_set_dest()
992 edma_parm_write(ctlr, PARM_OPT, slot, i); in edma_set_dest()
995 edma_parm_write(ctlr, PARM_DST, slot, dest_port); in edma_set_dest()
1007 dma_addr_t edma_get_position(unsigned slot, bool dst) in edma_get_position() argument
1009 u32 offs, ctlr = EDMA_CTLR(slot); in edma_get_position()
1011 slot = EDMA_CHAN_SLOT(slot); in edma_get_position()
1013 offs = PARM_OFFSET(slot); in edma_get_position()
1029 void edma_set_src_index(unsigned slot, s16 src_bidx, s16 src_cidx) in edma_set_src_index() argument
1033 ctlr = EDMA_CTLR(slot); in edma_set_src_index()
1034 slot = EDMA_CHAN_SLOT(slot); in edma_set_src_index()
1036 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_src_index()
1037 edma_parm_modify(ctlr, PARM_SRC_DST_BIDX, slot, in edma_set_src_index()
1039 edma_parm_modify(ctlr, PARM_SRC_DST_CIDX, slot, in edma_set_src_index()
1055 void edma_set_dest_index(unsigned slot, s16 dest_bidx, s16 dest_cidx) in edma_set_dest_index() argument
1059 ctlr = EDMA_CTLR(slot); in edma_set_dest_index()
1060 slot = EDMA_CHAN_SLOT(slot); in edma_set_dest_index()
1062 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_dest_index()
1063 edma_parm_modify(ctlr, PARM_SRC_DST_BIDX, slot, in edma_set_dest_index()
1065 edma_parm_modify(ctlr, PARM_SRC_DST_CIDX, slot, in edma_set_dest_index()
1100 void edma_set_transfer_params(unsigned slot, in edma_set_transfer_params() argument
1106 ctlr = EDMA_CTLR(slot); in edma_set_transfer_params()
1107 slot = EDMA_CHAN_SLOT(slot); in edma_set_transfer_params()
1109 if (slot < edma_cc[ctlr]->num_slots) { in edma_set_transfer_params()
1110 edma_parm_modify(ctlr, PARM_LINK_BCNTRLD, slot, in edma_set_transfer_params()
1113 edma_parm_and(ctlr, PARM_OPT, slot, ~SYNCDIM); in edma_set_transfer_params()
1115 edma_parm_or(ctlr, PARM_OPT, slot, SYNCDIM); in edma_set_transfer_params()
1117 edma_parm_write(ctlr, PARM_A_B_CNT, slot, (bcnt << 16) | acnt); in edma_set_transfer_params()
1118 edma_parm_write(ctlr, PARM_CCNT, slot, ccnt); in edma_set_transfer_params()
1182 void edma_write_slot(unsigned slot, const struct edmacc_param *param) in edma_write_slot() argument
1186 ctlr = EDMA_CTLR(slot); in edma_write_slot()
1187 slot = EDMA_CHAN_SLOT(slot); in edma_write_slot()
1189 if (slot >= edma_cc[ctlr]->num_slots) in edma_write_slot()
1191 memcpy_toio(edmacc_regs_base[ctlr] + PARM_OFFSET(slot), param, in edma_write_slot()
1204 void edma_read_slot(unsigned slot, struct edmacc_param *param) in edma_read_slot() argument
1208 ctlr = EDMA_CTLR(slot); in edma_read_slot()
1209 slot = EDMA_CHAN_SLOT(slot); in edma_read_slot()
1211 if (slot >= edma_cc[ctlr]->num_slots) in edma_read_slot()
1213 memcpy_fromio(param, edmacc_regs_base[ctlr] + PARM_OFFSET(slot), in edma_read_slot()