On 3/27/2020 2:58 PM, Greg KH wrote: > On Fri, Mar 27, 2020 at 02:22:23PM +0530, Tejas Joglekar wrote: >> The Synopsys xHC has an internal TRB cache of size TRB_CACHE_SIZE for >> each endpoint. The default value for TRB_CACHE_SIZE is 16 for SS and 8 >> for HS. The controller loads and updates the TRB cache from the >> transfer ring in system memory whenever the driver issues a start >> transfer or update transfer command. >> >> For chained TRBs, the Synopsys xHC requires that the total amount of >> bytes for all TRBs loaded in the TRB cache be greater than or equal to >> 1 MPS. Or the chain ends within the TRB cache (with a last TRB). >> >> If this requirement is not met, the controller will not be able to >> send or receive a packet and it will hang causing a driver timeout and >> error. >> >> This patch set adds logic to the XHCI driver to detect and prevent this >> from happening along with the quirk to enable this logic for Synopsys >> HAPS platform. >> >> Based on Mathias's feedback on previous implementation where consolidation >> was done in TRB cache, with this patch series the implementation is done >> during mapping of the URB by consolidating the SG list into a temporary >> buffer if the SG list buffer sizes within TRB_CACHE_SIZE is less than MPS. >> >> >> Tejas Joglekar (4): >> dt-bindings: usb: Add snps,consolidate-sgl & consolidate-sgl >> usb: xhci: Set quirk for XHCI_CONSOLIDATE_SG_LIST >> usb: dwc3: Add device property consolidate-sgl >> usb: xhci: Use temporary buffer to consolidate SG >> >> Resending as 'umlaut' is not accepted by some servers in email. > > Only patch 4/4 seems to have gone through :( > Resent the missing patches