• Alex Smith's avatar
    dmaengine: jz4780: Fall back on smaller transfer sizes where necessary · dc578f31
    Alex Smith authored
    For some reason the controller does not support 8 byte transfers (but
    does support all other powers of 2 up to 128). In this case fall back
    to 4 bytes. In addition, fall back to 128 bytes when any larger power
    of 2 would be possible within the alignment constraints, as this is
    the maximum supported.
    
    It makes no sense to outright reject 8 or >128 bytes just because the
    alignment constraints make those the maximum possible size given the
    parameters for the transaction. For instance, this can result in a DMA
    from/to an 8 byte aligned address failing.
    
    It is perfectly safe to fall back to smaller transfer sizes, the only
    consequence is reduced transfer efficiency, which is far better than
    not allowing the transfer at all.
    Signed-off-by: default avatarAlex Smith <alex.smith@imgtec.com>
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    dc578f31
dma-jz4780.c 23.5 KB