• Minas Harutyunyan's avatar
    usb: dwc2: Fix INTR OUT transfers in DDMA mode. · b2c586eb
    Minas Harutyunyan authored
    In DDMA mode if INTR OUT transfers mps not multiple of 4 then single packet
    corresponds to single descriptor.
    
    Descriptor limit set to mps and desc chain limit set to mps *
    MAX_DMA_DESC_NUM_GENERIC. On that descriptors complete, to calculate
    transfer size should be considered correction value for each descriptor.
    
    In start request function, if "continue" is true then dma buffer address
    should be incremmented by offset for all type of transfers, not only for
    Control DATA_OUT transfers.
    
    Fixes: cf77b5fb ("usb: dwc2: gadget: Transfer length limit checking for DDMA")
    Fixes: e02f9aa6 ("usb: dwc2: gadget: EP 0 specific DDMA programming")
    Fixes: aa3e8bc8 ("usb: dwc2: gadget: DDMA transfer start and complete")
    Signed-off-by: default avatarMinas Harutyunyan <hminas@synopsys.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
    b2c586eb
gadget.c 139 KB