/* The originating slot should not be part of any active DMA transfer.  */
void edma_link(unsigned from, unsigned to)
/* The originating slot should not be part of any active DMA transfer.  */
void edma_link(unsigned from, unsigned to)
{
    unsigned ctlr_from, ctlr_to;
    ctlr_from = EDMA_CTLR(from);
    from = EDMA_CHAN_SLOT(from);
    ctlr_to = EDMA_CTLR(to);
    to = EDMA_CHAN_SLOT(to);
    if (from >= edma_cc[ctlr_from]->num_slots)
        return;
    if (to >= edma_cc[ctlr_to]->num_slots)
        return;
    edma_parm_modify(ctlr_from, PARM_LINK_BCNTRLD, from, 0xffff0000,
                PARM_OFFSET(to));
}