• Pratyush Anand's avatar
    usb: dwc3: gadget: fix scatter gather implementation · e5ba5ec8
    Pratyush Anand authored
    To work with scatter gather properly, fixes have been done in number of
    functions. I will explain requirement of each fixes one by one.
    
    start_slot: used to retrieve all request of SG during cleanup
    
    dwc3_gadget_giveback: We need to skip link TRB if it was one of the
    intermediate TRB of SG.
    
    dwc3_prepare_one_trb: We need to track all submitted TRBs during
    cleanup. Since, all TRBs would be serially allocated, so we can just
    keep starting slot info and we can always find rest of them. We need to
    pass sg node number, so that we cab appropriately program ISOC_FIRST/ISOC,
    Chain etc.
    
    dwc3_prepare_trbs: last_one should be set when it is last node
    of SG as well as last node of request_list.
    
    __dwc3_cleanup_done_trbs: It has been prepared after re-factorization of
    dwc3_cleanup_done_reqs. It is called for each TRB of SG.
    Signed-off-by: default avatarPratyush Anand <pratyush.anand@st.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    e5ba5ec8
core.h 25.8 KB