Skip to content

usb: Support USB 3.2 multi-lanes

Thinh Nguyen linux-devicetree linux-usb 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v7 Latest6 patches 5 repliesIn review
  2. v611 patches 16 repliesSuperseded

Changes in v7 from the cover letter

- Greg picked up the first few patches of the series to his usb-testing branch. Rebase the remaining patches on Greg's usb-testing branch

Patches in v7 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6dt-binding: usb: Include USB SSP rates in GenXxYDocumentation/devicetree/bindings/usb/usb.yaml+3 -03 replies
2/6usb: common: Parse for USB SSP genXxYdrivers/usb/common/common.c include/linux/usb/ch9.h+36 -10 replies
3/6usb: dwc3: core: Check maximum_speed SSP genXxYdrivers/usb/dwc3/core.c drivers/usb/dwc3/core.h drivers/usb/dwc3/gadget.c+40 -00 replies
4/6usb: dwc3: gadget: Implement setting of SSP ratedrivers/usb/dwc3/core.h drivers/usb/dwc3/gadget.c+51 -10 replies
5/6usb: dwc3: gadget: Track connected SSP rate and lane countdrivers/usb/dwc3/core.h drivers/usb/dwc3/gadget.c+25 -00 replies
6/6usb: dwc3: gadget: Set speed only up to the max supporteddrivers/usb/dwc3/gadget.c+10 -50 replies

Reviews trailers per patch

1 of 6 patches has a Reviewed-by or Acked-by.

PatchRob Herring
1/6R-b
2/6
3/6
4/6
5/6
6/6

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v7 thread

Cover letter [PATCH v7 0/6] usb: Support USB 3.2 multi-lanes

A USB SuperSpeed Plus device may operate at different speed and lane count (i.e. gen2x2, gen1x2, or gen2x1). The DWC_usb32 IP supports SuperSpeed Plus gen2x2. To support this, this series update a few things to the USB gadget stack and dwc3 driver:

* Accept and parse new maximum_speed devicetree property strings
* Introduce enum usb_ssp_rate to describe the speed in SuperSpeed Plus genXxY
* Capture the connected and max supported usb_ssp_rate
* Report the device sublink speeds base on the usb_ssp_rate in the BOS descriptor
* Introduce gadget ops to select SuperSpeed Plus various transfer rate and lane count
* Update dwc3 driver to support the above changes

Changes in v7:
- Greg picked up the first few patches of the series to his usb-testing branch. Rebase the remaining patches on Greg's usb-testing branch

Changes in v6:
- Rebase on Greg's usb-testing branch
- Update cover letter and title since there are many updates
* Previous version 5: https://lore.kernel.org/linux-usb/[email protected]/
- To simplify things, use usb_ssp_rate enum to specify the signaling rate
generation and lane count instead of separately tracking them.
- Convert the sublink speed attributes to macros and move it to uapi
- Remove usb_sublink_speed struct
- Remove "usb: dwc3: gadget: Report sublink speed capability"
- Update dwc3 to support the new changes

Changes in v5:
- Rebase on Felipe's testing/next branch
- Changed Signed-off-by email to match From: email header
- Add Rob's Reviewed-by

Changes in v4:
- Instead of using a single function to parse "maximum-speed" property for speed, gen X, and number of lanes, split those tasks to separate common functions
- Revise DWC3 driver to use those new common functions
- Fix checkpatch warnings for using "unsigned" rather than "unsigned int" and missing identifier name in udc_set_num_lanes_and_speed gadget ops

Changes in v3:
- Remove "num-lanes" and "lane-speed-mantissa-gbps" common properties
- Remove "num-lanes" and "lane-speed-mantissa-gbps" properties validation in dwc3
- Update "maximum-speed" to support variations of SSP Gen X x Y
- Update common function to parse new strings for "maximum-speed"
- Update commit messages for the new changes

Changes in v2:
- Move usb_sublink_speed attribute struct and enum to include/linux/usb/ch9.h
- Use "num-lanes" and "lane-speed-mantissa-gbps" as common properties instead
- Add common functions to get num-lanes and lsm properties
- Fix missing gen1x2 sublink speed attribute check report in dwc3

Thinh Nguyen (6):
dt-binding: usb: Include USB SSP rates in GenXxY
usb: common: Parse for USB SSP genXxY
usb: dwc3: core: Check maximum_speed SSP genXxY
usb: dwc3: gadget: Implement setting of SSP rate
usb: dwc3: gadget: Track connected SSP rate and lane count
usb: dwc3: gadget: Set speed only up to the max supported

 .../devicetree/bindings/usb/usb.yaml          |  3 +
 drivers/usb/common/common.c                   | 26 +++++-
 drivers/usb/dwc3/core.c                       | 37 +++++++++
 drivers/usb/dwc3/core.h                       |  9 +++
 drivers/usb/dwc3/gadget.c                     | 80 ++++++++++++++++++-
 include/linux/usb/ch9.h                       | 11 +++
 6 files changed, 162 insertions(+), 4 deletions(-)

base-commit: 7a79f1f7f7e75e532c5a803ab3ebf42a3e79497c

Signature · 1 line
2.28.0