1. 06 2月, 2021 4 次提交
  2. 14 1月, 2021 1 次提交
  3. 07 1月, 2021 1 次提交
  4. 04 1月, 2021 4 次提交
  5. 02 10月, 2020 19 次提交
  6. 24 9月, 2020 2 次提交
    • T
      usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command · d97c78a1
      Thinh Nguyen 提交于
      According the programming guide (for all DWC3 IPs), when the driver
      handles ClearFeature(halt) request, it should issue CLEAR_STALL command
      _after_ the END_TRANSFER command completes. The END_TRANSFER command may
      take some time to complete. So, delay the ClearFeature(halt) request
      control status stage and wait for END_TRANSFER command completion
      interrupt. Only after END_TRANSFER command completes that the driver
      may issue CLEAR_STALL command.
      
      Cc: stable@vger.kernel.org
      Fixes: cb11ea56 ("usb: dwc3: gadget: Properly handle ClearFeature(halt)")
      Signed-off-by: NThinh Nguyen <thinhn@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      d97c78a1
    • T
      usb: dwc3: gadget: Resume pending requests after CLEAR_STALL · c503672a
      Thinh Nguyen 提交于
      The function driver may queue new requests right after halting the
      endpoint (i.e. queue new requests while the endpoint is stalled).
      There's no restriction preventing it from doing so. However, dwc3
      currently drops those requests after CLEAR_STALL. The driver should only
      drop started requests. Keep the pending requests in the pending list to
      resume and process them after the host issues ClearFeature(Halt) to the
      endpoint.
      
      Cc: stable@vger.kernel.org
      Fixes: cb11ea56 ("usb: dwc3: gadget: Properly handle ClearFeature(halt)")
      Signed-off-by: NThinh Nguyen <thinhn@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      c503672a
  7. 17 8月, 2020 3 次提交
  8. 24 7月, 2020 3 次提交
  9. 15 7月, 2020 1 次提交
  10. 24 6月, 2020 1 次提交
  11. 25 5月, 2020 1 次提交
    • T
      usb: dwc3: gadget: Check for prepared TRBs · 63c7bb29
      Thinh Nguyen 提交于
      There are cases where the endpoint needs to be restarted. For example,
      it may need to restart for NoStream rejection to reinitiate stream. If
      so, check and make sure we don't prepare beyond the current transfer
      when we restart the endpoint.
      
      DWC_usb32 internal burst transfer feature will look into TRBs beyond a
      transfer. Other controllers will stop on the last TRB, but not
      DWC_usb32. This may cause the controller to incorrectly process TRBs of
      a different transfer. Make sure to explicitly prevent preparing TRBs of
      a different transfer.
      
      This should only affect DWC_usb32 releases prior to v1.00a since it
      doesn't use SET_ENDPOINT_PRIME to reinitiate stream. However, it's
      better to be cautious in case users don't want to use SET_ENDPOINT_PRIME
      command. Also, it's possible other controller IPs may share the same
      features as DWC_usb32 in new releases.
      Signed-off-by: NThinh Nguyen <thinhn@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      63c7bb29