• Dan Williams's avatar
    iop-adma: P+Q support for iop13xx adma engines · 7bf649ae
    Dan Williams authored
    iop33x support is not included because that engine is a bit more awkward
    to handle in that it can either be in xor mode or pq mode.  The
    dmaengine/async_tx layers currently only comprehend static capabilities.
    
    Note iop13xx does not support hardware PQ continuation so the driver
    must handle the DMA_PREP_CONTINUE flag for operations across > 16
    sources. From the comment for dma_maxpq:
    
    /* When an engine does not support native continuation we need 3 extra
     * source slots to reuse P and Q with the following coefficients:
     * 1/ {00} * P : remove P from Q', but use it as a source for P'
     * 2/ {01} * Q : use Q to continue Q' calculation
     * 3/ {00} * Q : subtract Q from P' to cancel (2)
     */
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    
    
    
    
    
    7bf649ae
iop-adma.c 44.6 KB