mbox series

[v2,0/5] xhci: Some improvement for Etron xHCI host

Message ID 20241028025337.6372-1-ki.chiang65@gmail.com
Headers show
Series xhci: Some improvement for Etron xHCI host | expand

Message

Kuangyi Chiang Oct. 28, 2024, 2:53 a.m. UTC
Add patch 1 to combine two if statements for Etron xHCI host in
xhci_pci_quirks():
  xhci: Combine two if statements for Etron xHCI host

Add patch 5 to prevent the xHCI driver from printing a "Transfer
event TRB DMA ptr not part of current TD" error message when an
error is detected while processing an one-TRB isoc TD:
  xhci: Correct handling of one-TRB isoc TD on Etron xHCI host

In fact, these problems are unlikely to occur on other host
controllers, so adding XHCI_ETRON_HOST quirk flag to invoke
these workarounds:
  xhci: Don't issue Reset Device command to Etron xHCI host
  xhci: Fix control transfer error on Etron xHCI host
  xhci: Correct handling of one-TRB isoc TD on Etron xHCI host

Apply XHCI_NO_SOFT_RETRY quirk flag to disable Soft Retry:
  xhci: Don't perform Soft Retry for Etron xHCI host

---
Changes in v2:
- Modify commit message
- Remove XHCI_NO_RESET_DEVICE/XHCI_NO_BREAK_CTRL_TD quirk flag
- Add XHCI_ETRON_HOST quirk flag, thanks for the suggestion by Michal
- Check device speed before invoking the workaround
- Add (xhci: Combine two if statements for Etron xHCI host)
- Add (xhci: Correct handling of one-TRB isoc TD on Etron xHCI host)
- Link to v1: https://lore.kernel.org/all/20240911051716.6572-4-ki.chiang65@gmail.com

Kuangyi Chiang (5):
  xhci: Combine two if statements for Etron xHCI host
  xhci: Don't issue Reset Device command to Etron xHCI host
  xhci: Fix control transfer error on Etron xHCI host
  xhci: Don't perform Soft Retry for Etron xHCI host
  xhci: Correct handling of one-TRB isoc TD on Etron xHCI host

 drivers/usb/host/xhci-pci.c  | 10 ++++-----
 drivers/usb/host/xhci-ring.c | 40 ++++++++++++++++++++++++++----------
 drivers/usb/host/xhci.c      | 19 +++++++++++++++++
 drivers/usb/host/xhci.h      |  3 ++-
 4 files changed, 54 insertions(+), 18 deletions(-)