Skip to content

Commit 4965ddb

Browse files
committed
Merge tag 'usb-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB/Thunderbolt updates from Greg KH: "Here is the large set of USB and Thunderbolt changes for 6.12-rc1. Nothing "major" in here, except for a new 9p network gadget that has been worked on for a long time (all of the needed acks are here) Other than that, it's the usual set of: - Thunderbolt / USB4 driver updates and additions for new hardware - dwc3 driver updates and new features added - xhci driver updates - typec driver updates - USB gadget updates and api additions to make some gadgets more configurable by userspace - dwc2 driver updates - usb phy driver updates - usbip feature additions - other minor USB driver updates All of these have been in linux-next for a long time with no reported issues" * tag 'usb-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (145 commits) sub: cdns3: Use predefined PCI vendor ID constant sub: cdns2: Use predefined PCI vendor ID constant USB: misc: yurex: fix race between read and write USB: misc: cypress_cy7c63: check for short transfer USB: appledisplay: close race between probe and completion handler USB: class: CDC-ACM: fix race between get_serial and set_serial usb: r8a66597-hcd: make read-only const arrays static usb: typec: ucsi: Fix busy loop on ASUS VivoBooks usb: dwc3: rtk: Clean up error code in __get_dwc3_maximum_speed() usb: storage: ene_ub6250: Fix right shift warnings usb: roles: Improve the fix for a false positive recursive locking complaint locking/mutex: Introduce mutex_init_with_key() locking/mutex: Define mutex_init() once net/9p/usbg: fix CONFIG_USB_GADGET dependency usb: xhci: fix loss of data on Cadence xHC usb: xHCI: add XHCI_RESET_ON_RESUME quirk for Phytium xHCI host usb: dwc3: imx8mp: disable SS_CON and U3 wakeup for system sleep usb: dwc3: imx8mp: add 2 software managed quirk properties for host mode usb: host: xhci-plat: Parse xhci-missing_cas_quirk and apply quirk usb: misc: onboard_usb_dev: add Microchip usb5744 SMBus programming support ...
2 parents 1388236 + 68d4209 commit 4965ddb

File tree

189 files changed

+3858
-1246
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

189 files changed

+3858
-1246
lines changed

Documentation/ABI/testing/configfs-usb-gadget-acm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@ Description:
66
This item contains just one readonly attribute: port_num.
77
It contains the port number of the /dev/ttyGS<n> device
88
associated with acm function's instance "name".
9+
10+
What: /config/usb-gadget/gadget/functions/acm.name/protocol
11+
Date: Aug 2024
12+
KernelVersion: 6.13
13+
Description:
14+
Reported bInterfaceProtocol for the ACM device. For legacy
15+
reasons, this defaults to 1 (USB_CDC_ACM_PROTO_AT_V25TER).

Documentation/ABI/testing/configfs-usb-gadget-uac1

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,12 @@ Description:
3030
req_number the number of pre-allocated requests
3131
for both capture and playback
3232
function_name name of the interface
33+
p_it_name playback input terminal name
34+
p_it_ch_name playback channels name
35+
p_ot_name playback output terminal name
36+
p_fu_vol_name playback mute/volume functional unit name
37+
c_it_name capture input terminal name
38+
c_it_ch_name capture channels name
39+
c_ot_name capture output terminal name
40+
c_fu_vol_name capture mute/volume functional unit name
3341
===================== =======================================

Documentation/ABI/testing/configfs-usb-gadget-uac2

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,17 @@ Description:
3535
req_number the number of pre-allocated requests
3636
for both capture and playback
3737
function_name name of the interface
38+
if_ctrl_name topology control name
39+
clksrc_in_name input clock name
40+
clksrc_out_name output clock name
41+
p_it_name playback input terminal name
42+
p_it_ch_name playback input first channel name
43+
p_ot_name playback output terminal name
44+
p_fu_vol_name playback mute/volume function unit name
45+
c_it_name capture input terminal name
46+
c_it_ch_name capture input first channel name
47+
c_ot_name capture output terminal name
48+
c_fu_vol_name capture mute/volume functional unit name
3849
c_terminal_type code of the capture terminal type
3950
p_terminal_type code of the playback terminal type
4051
===================== =======================================

Documentation/devicetree/bindings/phy/fsl,mxs-usbphy.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ properties:
8787
maximum: 119
8888
default: 100
8989

90+
nxp,sim:
91+
description:
92+
The system integration module (SIM) provides system control and chip
93+
configuration registers.
94+
$ref: /schemas/types.yaml#/definitions/phandle
95+
9096
required:
9197
- compatible
9298
- reg
@@ -110,6 +116,17 @@ allOf:
110116
required:
111117
- fsl,anatop
112118

119+
- if:
120+
properties:
121+
compatible:
122+
const: fsl,imx7ulp-usbphy
123+
then:
124+
required:
125+
- nxp,sim
126+
else:
127+
properties:
128+
nxp,sim: false
129+
113130
additionalProperties: false
114131

115132
examples:
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/usb/fsl,ls1028a.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Freescale layerscape SuperSpeed DWC3 USB SoC controller
8+
9+
maintainers:
10+
- Frank Li <Frank.Li@nxp.com>
11+
12+
select:
13+
properties:
14+
compatible:
15+
contains:
16+
enum:
17+
- fsl,ls1028a-dwc3
18+
required:
19+
- compatible
20+
21+
properties:
22+
compatible:
23+
items:
24+
- enum:
25+
- fsl,ls1028a-dwc3
26+
- const: snps,dwc3
27+
28+
reg:
29+
maxItems: 1
30+
31+
interrupts:
32+
maxItems: 1
33+
34+
unevaluatedProperties: false
35+
36+
required:
37+
- compatible
38+
- reg
39+
- interrupts
40+
41+
allOf:
42+
- $ref: snps,dwc3.yaml#
43+
44+
examples:
45+
- |
46+
#include <dt-bindings/interrupt-controller/arm-gic.h>
47+
48+
usb@fe800000 {
49+
compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
50+
reg = <0xfe800000 0x100000>;
51+
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
52+
};

Documentation/devicetree/bindings/usb/msm-hsusb.txt

Lines changed: 0 additions & 110 deletions
This file was deleted.

Documentation/devicetree/bindings/usb/qcom,dwc3.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ properties:
5252
- qcom,sm8550-dwc3
5353
- qcom,sm8650-dwc3
5454
- qcom,x1e80100-dwc3
55+
- qcom,x1e80100-dwc3-mp
5556
- const: qcom,dwc3
5657

5758
reg:
@@ -289,6 +290,7 @@ allOf:
289290
- qcom,sc8280xp-dwc3
290291
- qcom,sc8280xp-dwc3-mp
291292
- qcom,x1e80100-dwc3
293+
- qcom,x1e80100-dwc3-mp
292294
then:
293295
properties:
294296
clocks:
@@ -428,6 +430,21 @@ allOf:
428430
contains:
429431
enum:
430432
- qcom,ipq5332-dwc3
433+
then:
434+
properties:
435+
interrupts:
436+
maxItems: 3
437+
interrupt-names:
438+
items:
439+
- const: pwr_event
440+
- const: dp_hs_phy_irq
441+
- const: dm_hs_phy_irq
442+
443+
- if:
444+
properties:
445+
compatible:
446+
contains:
447+
enum:
431448
- qcom,x1e80100-dwc3
432449
then:
433450
properties:
@@ -486,6 +503,7 @@ allOf:
486503
contains:
487504
enum:
488505
- qcom,sc8180x-dwc3-mp
506+
- qcom,x1e80100-dwc3-mp
489507
then:
490508
properties:
491509
interrupts:

Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ properties:
1313
compatible:
1414
oneOf:
1515
- const: ti,j721e-usb
16-
- const: ti,am64-usb
1716
- items:
18-
- const: ti,j721e-usb
1917
- const: ti,am64-usb
18+
- const: ti,j721e-usb
2019

2120
reg:
2221
maxItems: 1

Documentation/filesystems/9p.rst

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,66 @@ For server running on QEMU host with virtio transport::
4848

4949
mount -t 9p -o trans=virtio <mount_tag> /mnt/9
5050

51-
where mount_tag is the tag associated by the server to each of the exported
51+
where mount_tag is the tag generated by the server to each of the exported
5252
mount points. Each 9P export is seen by the client as a virtio device with an
5353
associated "mount_tag" property. Available mount tags can be
5454
seen by reading /sys/bus/virtio/drivers/9pnet_virtio/virtio<n>/mount_tag files.
5555

56+
USBG Usage
57+
==========
58+
59+
To mount a 9p FS on a USB Host accessible via the gadget at runtime::
60+
61+
mount -t 9p -o trans=usbg,aname=/path/to/fs <device> /mnt/9
62+
63+
To mount a 9p FS on a USB Host accessible via the gadget as root filesystem::
64+
65+
root=<device> rootfstype=9p rootflags=trans=usbg,cache=loose,uname=root,access=0,dfltuid=0,dfltgid=0,aname=/path/to/rootfs
66+
67+
where <device> is the tag associated by the usb gadget transport.
68+
It is defined by the configfs instance name.
69+
70+
USBG Example
71+
============
72+
73+
The USB host exports a filesystem, while the gadget on the USB device
74+
side makes it mountable.
75+
76+
Diod (9pfs server) and the forwarder are on the development host, where
77+
the root filesystem is actually stored. The gadget is initialized during
78+
boot (or later) on the embedded board. Then the forwarder will find it
79+
on the USB bus and start forwarding requests.
80+
81+
In this case the 9p requests come from the device and are handled by the
82+
host. The reason is that USB device ports are normally not available on
83+
PCs, so a connection in the other direction would not work.
84+
85+
When using the usbg transport, for now there is no native usb host
86+
service capable to handle the requests from the gadget driver. For
87+
this we have to use the extra python tool p9_fwd.py from tools/usb.
88+
89+
Just start the 9pfs capable network server like diod/nfs-ganesha e.g.::
90+
91+
$ diod -f -n -d 0 -S -l 0.0.0.0:9999 -e $PWD
92+
93+
Optionaly scan your bus if there are more then one usbg gadgets to find their path::
94+
95+
$ python $kernel_dir/tools/usb/p9_fwd.py list
96+
97+
Bus | Addr | Manufacturer | Product | ID | Path
98+
--- | ---- | ---------------- | ---------------- | --------- | ----
99+
2 | 67 | unknown | unknown | 1d6b:0109 | 2-1.1.2
100+
2 | 68 | unknown | unknown | 1d6b:0109 | 2-1.1.3
101+
102+
Then start the python transport::
103+
104+
$ python $kernel_dir/tools/usb/p9_fwd.py --path 2-1.1.2 connect -p 9999
105+
106+
After that the gadget driver can be used as described above.
107+
108+
One use-case is to use it as an alternative to NFS root booting during
109+
the development of embedded Linux devices.
110+
56111
Options
57112
=======
58113

@@ -68,6 +123,7 @@ Options
68123
virtio connect to the next virtio channel available
69124
(from QEMU with trans_virtio module)
70125
rdma connect to a specified RDMA channel
126+
usbg connect to a specified usb gadget channel
71127
======== ============================================
72128

73129
uname=name user name to attempt mount as on the remote server. The

0 commit comments

Comments
 (0)