Skip to content

Commit 4eee152

Browse files
committed
Merge tag 'usb-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB / Thunderbolt updates from Greg KH: "Here is the big set of USB and Thunderbolt driver changes for 6.17-rc1. Lots of little things in here, mostly all small cleanups and updates, no major new features this development cycle. Stuff included in here is: - xhci minor tweaks for error handling - typec minor updates and a driver update - gadget driver api cleanups - unused function removals - unbind memory leak fixes - a few new device ids added - a few new devices supported for some drivers - other minor cleanups and changes All of these have been in linux-next with no reported issues, with the leak fixes being in the shortest amount of time, but they are 'obviously correct' :)" * tag 'usb-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (100 commits) usb: musb: omap2430: clean up probe error handling usb: musb: omap2430: fix device leak at unbind usb: gadget: udc: renesas_usb3: fix device leak at unbind usb: dwc3: meson-g12a: fix device leaks at unbind usb: dwc3: imx8mp: fix device leak at unbind usb: musb: omap2430: enable compile testing usb: gadget: udc: renesas_usb3: drop unused module alias usb: xhci: print xhci->xhc_state when queue_command failed usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init() USB: serial: option: add Foxconn T99W709 usb: core: add urb->sgt parameter description thunderbolt: Fix copy+paste error in match_service_id() usb: typec: ucsi: Update power_supply on power role change usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default usb: typec: fusb302: cache PD RX state usb: typec: ucsi: yoga-c630: add DRM dependency usb: gadget : fix use-after-free in composite_dev_cleanup() usb: chipidea: imx: Add a missing blank line usb: gadget: f_uac1: replace scnprintf() with sysfs_emit() usb: usblp: clean up assignment inside if conditions ...
2 parents 91e6073 + 51d4b0a commit 4eee152

Some content is hidden

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

93 files changed

+983
-650
lines changed

Documentation/ABI/testing/sysfs-driver-typec-displayport

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,13 @@ Description:
6262
by VESA DisplayPort Alt Mode on USB Type-C Standard.
6363
- 0 when HPD’s logical state is low (HPD_Low) as defined by
6464
VESA DisplayPort Alt Mode on USB Type-C Standard.
65+
66+
What: /sys/bus/typec/devices/.../displayport/irq_hpd
67+
Date: June 2025
68+
Contact: RD Babiera <[email protected]>
69+
Description:
70+
IRQ_HPD events are sent over the USB PD protocol in Status Update and
71+
Attention messages. IRQ_HPD can only be asserted when HPD is high,
72+
and is asserted when an IRQ_HPD has been issued since the last Status
73+
Update. This is a read only node that returns the number of IRQ events
74+
raised in the driver's lifetime.

Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ properties:
2323
- nvidia,tegra30-udc
2424
- nvidia,tegra114-udc
2525
- nvidia,tegra124-udc
26+
- nxp,s32g2-usb
2627
- qcom,ci-hdrc
2728
- items:
2829
- enum:
@@ -37,6 +38,10 @@ properties:
3738
- enum:
3839
- nuvoton,npcm845-udc
3940
- const: nuvoton,npcm750-udc
41+
- items:
42+
- enum:
43+
- nxp,s32g3-usb
44+
- const: nxp,s32g2-usb
4045

4146
clocks:
4247
minItems: 1

Documentation/devicetree/bindings/usb/dwc2.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ properties:
5959
- const: amcc,dwc-otg
6060
- const: apm,apm82181-dwc-otg
6161
- const: snps,dwc2
62-
- const: sophgo,cv1800-usb
62+
- const: sophgo,cv1800b-usb
6363
- const: st,stm32f4x9-fsotg
6464
- const: st,stm32f4x9-hsotg
6565
- const: st,stm32f7-hsotg

Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ properties:
2121
- fsl,imx53-usbmisc
2222
- fsl,imx6q-usbmisc
2323
- fsl,vf610-usbmisc
24+
- nxp,s32g2-usbmisc
25+
- nxp,s32g3-usbmisc
2426
- items:
2527
- enum:
2628
- fsl,imx6ul-usbmisc

Documentation/devicetree/bindings/usb/genesys,gl850g.yaml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,26 @@ properties:
2626
description:
2727
The regulator that provides 3.3V or 5.0V core power to the hub.
2828

29-
peer-hub:
30-
$ref: /schemas/types.yaml#/definitions/phandle
31-
description:
32-
For onboard hub controllers that support USB 3.x and USB 2.0 hubs
33-
with shared resets and power supplies, this property is used to identify
34-
the hubs with which these are shared.
29+
peer-hub: true
30+
31+
ports:
32+
$ref: /schemas/graph.yaml#/properties/ports
33+
34+
patternProperties:
35+
'^port@':
36+
$ref: /schemas/graph.yaml#/properties/port
37+
38+
properties:
39+
reg:
40+
minimum: 1
41+
maximum: 4
3542

3643
required:
3744
- compatible
3845
- reg
3946

4047
allOf:
41-
- $ref: usb-device.yaml#
48+
- $ref: usb-hub.yaml#
4249
- if:
4350
properties:
4451
compatible:
@@ -62,13 +69,6 @@ allOf:
6269
peer-hub: true
6370
vdd-supply: true
6471

65-
patternProperties:
66-
"^.*@[0-9a-f]{1,2}$":
67-
description: The hard wired USB devices
68-
type: object
69-
$ref: /schemas/usb/usb-device.yaml
70-
additionalProperties: true
71-
7272
unevaluatedProperties: false
7373

7474
examples:

Documentation/devicetree/bindings/usb/lpc32xx-udc.txt

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/usb/nxp,lpc3220-udc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NXP LPC32xx SoC USB Device Controller (UDC)
8+
9+
maintainers:
10+
- Frank Li <[email protected]>
11+
12+
properties:
13+
compatible:
14+
const: nxp,lpc3220-udc
15+
16+
reg:
17+
maxItems: 1
18+
19+
interrupts:
20+
items:
21+
- description: USB Device Low Priority Interrupt
22+
- description: USB Device High Priority Interrupt
23+
- description: USB Device DMA Interrupt
24+
- description: External USB Transceiver Interrupt (OTG ATX)
25+
26+
clocks:
27+
maxItems: 1
28+
29+
transceiver:
30+
description:
31+
phandle of the associated ISP1301 device - this is necessary for
32+
the UDC controller for connecting to the USB physical layer
33+
34+
required:
35+
- compatible
36+
- reg
37+
- interrupts
38+
- transceiver
39+
40+
additionalProperties: false
41+
42+
examples:
43+
- |
44+
usbd@31020000 {
45+
compatible = "nxp,lpc3220-udc";
46+
reg = <0x31020000 0x300>;
47+
interrupt-parent = <&mic>;
48+
interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>;
49+
transceiver = <&isp1301>;
50+
};

Documentation/devicetree/bindings/usb/renesas,usbhs.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ properties:
2727
- renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
2828
- renesas,usbhs-r9a07g054 # RZ/V2L
2929
- renesas,usbhs-r9a08g045 # RZ/G3S
30+
- renesas,usbhs-r9a09g056 # RZ/V2N
3031
- renesas,usbhs-r9a09g057 # RZ/V2H(P)
3132
- const: renesas,rzg2l-usbhs
3233

Documentation/driver-api/usb/anchors.rst

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,6 @@ This function kills all URBs associated with an anchor. The URBs
4545
are called in the reverse temporal order they were submitted.
4646
This way no data can be reordered.
4747

48-
:c:func:`usb_unlink_anchored_urbs`
49-
----------------------------------
50-
51-
52-
This function unlinks all URBs associated with an anchor. The URBs
53-
are processed in the reverse temporal order they were submitted.
54-
This is similar to :c:func:`usb_kill_anchored_urbs`, but it will not sleep.
55-
Therefore no guarantee is made that the URBs have been unlinked when
56-
the call returns. They may be unlinked later but will be unlinked in
57-
finite time.
58-
5948
:c:func:`usb_scuttle_anchored_urbs`
6049
-----------------------------------
6150

Documentation/usb/gadget_configfs.rst

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Then the strings can be specified::
9292

9393
Further custom string descriptors can be created as directories within the
9494
language's directory, with the string text being written to the "s" attribute
95-
within the string's directory:
95+
within the string's directory::
9696

9797
$ mkdir strings/0x409/xu.0
9898
$ echo <string text> > strings/0x409/xu.0/s
@@ -104,9 +104,9 @@ string descriptors to associate those strings with class descriptors.
104104
------------------------------
105105

106106
Each gadget will consist of a number of configurations, their corresponding
107-
directories must be created:
107+
directories must be created::
108108

109-
$ mkdir configs/<name>.<number>
109+
$ mkdir configs/<name>.<number>
110110

111111
where <name> can be any string which is legal in a filesystem and the
112112
<number> is the configuration's number, e.g.::
@@ -246,7 +246,7 @@ a symlink to a function being removed from the configuration, e.g.::
246246
...
247247
...
248248

249-
Remove strings directories in configurations:
249+
Remove strings directories in configurations::
250250

251251
$ rmdir configs/<config name>.<number>/strings/<lang>
252252

@@ -270,7 +270,7 @@ e.g.::
270270
...
271271
...
272272

273-
Remove functions (function modules are not unloaded, though):
273+
Remove functions (function modules are not unloaded, though)::
274274

275275
$ rmdir functions/<name>.<instance name>
276276

@@ -369,32 +369,31 @@ For more information on configfs please see
369369
The concepts described above translate to USB gadgets like this:
370370

371371
1. A gadget has its config group, which has some attributes (idVendor,
372-
idProduct etc) and default sub-groups (configs, functions, strings).
373-
Writing to the attributes causes the information to be stored in
374-
appropriate locations. In the configs, functions and strings sub-groups
375-
a user can create their sub-groups to represent configurations, functions,
376-
and groups of strings in a given language.
372+
idProduct etc) and default sub-groups (configs, functions, strings).
373+
Writing to the attributes causes the information to be stored in appropriate
374+
locations. In the configs, functions and strings sub-groups a user can
375+
create their sub-groups to represent configurations, functions, and groups
376+
of strings in a given language.
377377

378378
2. The user creates configurations and functions, in the configurations
379-
creates symbolic links to functions. This information is used when the
380-
gadget's UDC attribute is written to, which means binding the gadget
381-
to the UDC. The code in drivers/usb/gadget/configfs.c iterates over
382-
all configurations, and in each configuration it iterates over all
383-
functions and binds them. This way the whole gadget is bound.
379+
creates symbolic links to functions. This information is used when the
380+
gadget's UDC attribute is written to, which means binding the gadget to the
381+
UDC. The code in drivers/usb/gadget/configfs.c iterates over all
382+
configurations, and in each configuration it iterates over all functions and
383+
binds them. This way the whole gadget is bound.
384384

385385
3. The file drivers/usb/gadget/configfs.c contains code for
386386

387387
- gadget's config_group
388388
- gadget's default groups (configs, functions, strings)
389389
- associating functions with configurations (symlinks)
390390

391-
4. Each USB function naturally has its own view of what it wants
392-
configured, so config_groups for particular functions are defined
393-
in the functions implementation files drivers/usb/gadget/f_*.c.
391+
4. Each USB function naturally has its own view of what it wants configured, so
392+
config_groups for particular functions are defined in the functions
393+
implementation files drivers/usb/gadget/f_*.c.
394394

395395
5. Function's code is written in such a way that it uses
396-
397-
usb_get_function_instance(), which, in turn, calls request_module.
398-
So, provided that modprobe works, modules for particular functions
399-
are loaded automatically. Please note that the converse is not true:
400-
after a gadget is disabled and torn down, the modules remain loaded.
396+
usb_get_function_instance(), which, in turn, calls request_module. So,
397+
provided that modprobe works, modules for particular functions are loaded
398+
automatically. Please note that the converse is not true: after a gadget is
399+
disabled and torn down, the modules remain loaded.

0 commit comments

Comments
 (0)