• J
    dma: edma: Leave linked to Null slot instead of DUMMY slot · b267b3bc
    Joel Fernandes 提交于
    Dummy slot has been used as a way for missed-events not to be
    reported as missing. This has been particularly troublesome for cases
    where we might want to temporarily pause all incoming events.
    
    For EDMA DMAC, there is no way to do any such pausing of events as
    the occurence of the "next" event is not software controlled.
    Using "edma_pause" in IRQ handlers doesn't help as by then the event
    in concern from the slave is already missed.
    
    Linking a dummy slot, is seen to absorb these events which we didn't
    want to miss. So we don't link to dummy, but instead leave it linked
    to NULL set, allow an error condition and detect the channel that
    missed it.
    
    Consider the case where we have a scatter-list like:
    SG1->SG2->SG3->SG4->SG5->SG6->Null
    
    For ex, for a MAX_NR_SG of 2, earlier we were splitting this as:
    SG1->SG2->Null
    SG3->SG4->Null
    SG5->SG6->Null
    
    Now we split it as
    SG1->SG2->Null
    SG3->SG4->Null
    SG5->SG6->Dummy
    
    This approach results in lesser unwanted interrupts that occur
    for the last list split. The Dummy slot has the property of not
    raising an error condition if events are missed unlike the Null
    slot. We are OK with this as we're done with processing the
    whole list once we reach Dummy.
    Signed-off-by: NJoel Fernandes <joelf@ti.com>
    [modifed duplicate s-o-b & patch title]
    Signed-off-by: NVinod Koul <vinod.koul@intel.com>
    b267b3bc
edma.c 18.6 KB