• Anand Gadiyar's avatar
    usb: musb: fail unaligned DMA transfers on v1.8 and above · 6e16edfe
    Anand Gadiyar authored
    The Inventra DMA engine in version 1.8 and later of the MUSB
    controller cannot handle DMA addresses that are not aligned
    to a 4 byte boundary. It ends up ignoring the last two bits
    programmed in the DMA_ADDR register. This is a deliberate
    design change in the controller and is documented in the
    programming guide.
    
    Earlier versions of the controller could handle these
    accesses just fine.
    
    Fail dma_channel_program if we see an unaligned address when
    using the newer controllers, so that the caller can carry out
    the transfer using PIO mode.
    (Current callers already have this backup path in place).
    Signed-off-by: default avatarAnand Gadiyar <gadiyar@ti.com>
    Tested-by: default avatarMing Lei <tom.leiming@gmail.com>
    Cc: Ajay Kumar Gupta <ajay.gupta@ti.com>
    Cc: Mike Frysinger <vapier@gentoo.org>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    6e16edfe
musbhsdma.c 11.4 KB