Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'usb-6.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB driver fixes from Greg KH:
"Here are some small USB driver fixes and new device ids for 6.18-rc3.
Included in here are:

- new option serial driver device ids added

- dt bindings fixes for numerous platforms

- xhci bugfixes for many reported regressions

- usbio dependency bugfix

- dwc3 driver fix

- raw-gadget bugfix

All of these have been in linux-next this week with no reported issues"

* tag 'usb-6.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
USB: serial: option: add Telit FN920C04 ECM compositions
USB: serial: option: add Quectel RG255C
tcpm: switch check for role_sw device with fw_node
usb/core/quirks: Add Huawei ME906S to wakeup quirk
usb: raw-gadget: do not limit transfer length
USB: serial: option: add UNISOC UIS7720
xhci: dbc: enable back DbC in resume if it was enabled before suspend
xhci: dbc: fix bogus 1024 byte prefix if ttyDBC read races with stall event
usb: xhci-pci: Fix USB2-only root hub registration
dt-bindings: usb: qcom,snps-dwc3: Fix bindings for X1E80100
usb: misc: Add x86 dependency for Intel USBIO driver
dt-bindings: usb: switch: split out ports definition
usb: dwc3: Don't call clk_bulk_disable_unprepare() twice
dt-bindings: usb: dwc3-imx8mp: dma-range is required only for imx8mp

+122 -66
+3 -1
Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml
··· 142 142 required: 143 143 - orientation-switch 144 144 then: 145 - $ref: /schemas/usb/usb-switch.yaml# 145 + allOf: 146 + - $ref: /schemas/usb/usb-switch.yaml# 147 + - $ref: /schemas/usb/usb-switch-ports.yaml# 146 148 147 149 unevaluatedProperties: false 148 150
+3 -1
Documentation/devicetree/bindings/phy/samsung,usb3-drd-phy.yaml
··· 125 125 contains: 126 126 const: google,gs101-usb31drd-phy 127 127 then: 128 - $ref: /schemas/usb/usb-switch.yaml# 128 + allOf: 129 + - $ref: /schemas/usb/usb-switch.yaml# 130 + - $ref: /schemas/usb/usb-switch-ports.yaml# 129 131 130 132 properties: 131 133 clocks:
+1
Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
··· 76 76 77 77 allOf: 78 78 - $ref: usb-switch.yaml# 79 + - $ref: usb-switch-ports.yaml# 79 80 80 81 additionalProperties: false 81 82
+9 -1
Documentation/devicetree/bindings/usb/fsl,imx8mp-dwc3.yaml
··· 89 89 - reg 90 90 - "#address-cells" 91 91 - "#size-cells" 92 - - dma-ranges 93 92 - ranges 94 93 - clocks 95 94 - clock-names 96 95 - interrupts 97 96 - power-domains 97 + 98 + allOf: 99 + - if: 100 + properties: 101 + compatible: 102 + const: fsl,imx8mp-dwc3 103 + then: 104 + required: 105 + - dma-ranges 98 106 99 107 additionalProperties: false 100 108
+1
Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
··· 52 52 53 53 allOf: 54 54 - $ref: usb-switch.yaml# 55 + - $ref: usb-switch-ports.yaml# 55 56 - if: 56 57 required: 57 58 - mode-switch
+1
Documentation/devicetree/bindings/usb/nxp,ptn36502.yaml
··· 46 46 47 47 allOf: 48 48 - $ref: usb-switch.yaml# 49 + - $ref: usb-switch-ports.yaml# 49 50 50 51 additionalProperties: false 51 52
+1
Documentation/devicetree/bindings/usb/onnn,nb7vpq904m.yaml
··· 91 91 92 92 allOf: 93 93 - $ref: usb-switch.yaml# 94 + - $ref: usb-switch-ports.yaml# 94 95 95 96 additionalProperties: false 96 97
+1
Documentation/devicetree/bindings/usb/parade,ps8830.yaml
··· 81 81 82 82 allOf: 83 83 - $ref: usb-switch.yaml# 84 + - $ref: usb-switch-ports.yaml# 84 85 85 86 additionalProperties: false 86 87
+3
Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
··· 68 68 - qcom,sm8550-dwc3 69 69 - qcom,sm8650-dwc3 70 70 - qcom,x1e80100-dwc3 71 + - qcom,x1e80100-dwc3-mp 71 72 - const: qcom,snps-dwc3 72 73 73 74 reg: ··· 461 460 then: 462 461 properties: 463 462 interrupts: 463 + minItems: 4 464 464 maxItems: 5 465 465 interrupt-names: 466 + minItems: 4 466 467 items: 467 468 - const: dwc_usb3 468 469 - const: pwr_event
+1
Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml
··· 60 60 61 61 allOf: 62 62 - $ref: usb-switch.yaml# 63 + - $ref: usb-switch-ports.yaml# 63 64 64 65 additionalProperties: false 65 66
+1
Documentation/devicetree/bindings/usb/ti,tusb1046.yaml
··· 11 11 12 12 allOf: 13 13 - $ref: usb-switch.yaml# 14 + - $ref: usb-switch-ports.yaml# 14 15 15 16 properties: 16 17 compatible:
+68
Documentation/devicetree/bindings/usb/usb-switch-ports.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/usb/usb-switch-ports.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: USB Orientation and Mode Switches Ports Graph Properties 8 + 9 + maintainers: 10 + - Greg Kroah-Hartman <gregkh@linuxfoundation.org> 11 + 12 + description: 13 + Ports Graph properties for devices handling USB mode and orientation switching. 14 + 15 + properties: 16 + port: 17 + $ref: /schemas/graph.yaml#/$defs/port-base 18 + description: 19 + A port node to link the device to a TypeC controller for the purpose of 20 + handling altmode muxing and orientation switching. 21 + 22 + properties: 23 + endpoint: 24 + $ref: /schemas/graph.yaml#/$defs/endpoint-base 25 + unevaluatedProperties: false 26 + properties: 27 + data-lanes: 28 + $ref: /schemas/types.yaml#/definitions/uint32-array 29 + minItems: 1 30 + maxItems: 8 31 + uniqueItems: true 32 + items: 33 + maximum: 8 34 + 35 + ports: 36 + $ref: /schemas/graph.yaml#/properties/ports 37 + properties: 38 + port@0: 39 + $ref: /schemas/graph.yaml#/properties/port 40 + description: 41 + Super Speed (SS) Output endpoint to the Type-C connector 42 + 43 + port@1: 44 + $ref: /schemas/graph.yaml#/$defs/port-base 45 + description: 46 + Super Speed (SS) Input endpoint from the Super-Speed PHY 47 + unevaluatedProperties: false 48 + 49 + properties: 50 + endpoint: 51 + $ref: /schemas/graph.yaml#/$defs/endpoint-base 52 + unevaluatedProperties: false 53 + properties: 54 + data-lanes: 55 + $ref: /schemas/types.yaml#/definitions/uint32-array 56 + minItems: 1 57 + maxItems: 8 58 + uniqueItems: true 59 + items: 60 + maximum: 8 61 + 62 + oneOf: 63 + - required: 64 + - port 65 + - required: 66 + - ports 67 + 68 + additionalProperties: true
-52
Documentation/devicetree/bindings/usb/usb-switch.yaml
··· 25 25 description: Possible handler of SuperSpeed signals retiming 26 26 type: boolean 27 27 28 - port: 29 - $ref: /schemas/graph.yaml#/$defs/port-base 30 - description: 31 - A port node to link the device to a TypeC controller for the purpose of 32 - handling altmode muxing and orientation switching. 33 - 34 - properties: 35 - endpoint: 36 - $ref: /schemas/graph.yaml#/$defs/endpoint-base 37 - unevaluatedProperties: false 38 - properties: 39 - data-lanes: 40 - $ref: /schemas/types.yaml#/definitions/uint32-array 41 - minItems: 1 42 - maxItems: 8 43 - uniqueItems: true 44 - items: 45 - maximum: 8 46 - 47 - ports: 48 - $ref: /schemas/graph.yaml#/properties/ports 49 - properties: 50 - port@0: 51 - $ref: /schemas/graph.yaml#/properties/port 52 - description: 53 - Super Speed (SS) Output endpoint to the Type-C connector 54 - 55 - port@1: 56 - $ref: /schemas/graph.yaml#/$defs/port-base 57 - description: 58 - Super Speed (SS) Input endpoint from the Super-Speed PHY 59 - unevaluatedProperties: false 60 - 61 - properties: 62 - endpoint: 63 - $ref: /schemas/graph.yaml#/$defs/endpoint-base 64 - unevaluatedProperties: false 65 - properties: 66 - data-lanes: 67 - $ref: /schemas/types.yaml#/definitions/uint32-array 68 - minItems: 1 69 - maxItems: 8 70 - uniqueItems: true 71 - items: 72 - maximum: 8 73 - 74 - oneOf: 75 - - required: 76 - - port 77 - - required: 78 - - ports 79 - 80 28 additionalProperties: true
+2
drivers/usb/core/quirks.c
··· 467 467 /* Huawei 4G LTE module */ 468 468 { USB_DEVICE(0x12d1, 0x15bb), .driver_info = 469 469 USB_QUIRK_DISCONNECT_SUSPEND }, 470 + { USB_DEVICE(0x12d1, 0x15c1), .driver_info = 471 + USB_QUIRK_DISCONNECT_SUSPEND }, 470 472 { USB_DEVICE(0x12d1, 0x15c3), .driver_info = 471 473 USB_QUIRK_DISCONNECT_SUSPEND }, 472 474
-3
drivers/usb/dwc3/dwc3-generic-plat.c
··· 85 85 static void dwc3_generic_remove(struct platform_device *pdev) 86 86 { 87 87 struct dwc3 *dwc = platform_get_drvdata(pdev); 88 - struct dwc3_generic *dwc3g = to_dwc3_generic(dwc); 89 88 90 89 dwc3_core_remove(dwc); 91 - 92 - clk_bulk_disable_unprepare(dwc3g->num_clocks, dwc3g->clks); 93 90 } 94 91 95 92 static int dwc3_generic_suspend(struct device *dev)
-2
drivers/usb/gadget/legacy/raw_gadget.c
··· 667 667 return ERR_PTR(-EINVAL); 668 668 if (!usb_raw_io_flags_valid(io->flags)) 669 669 return ERR_PTR(-EINVAL); 670 - if (io->length > PAGE_SIZE) 671 - return ERR_PTR(-EINVAL); 672 670 if (get_from_user) 673 671 data = memdup_user(ptr + sizeof(*io), io->length); 674 672 else {
+12 -3
drivers/usb/host/xhci-dbgcap.c
··· 892 892 dev_info(dbc->dev, "DbC configured\n"); 893 893 portsc = readl(&dbc->regs->portsc); 894 894 writel(portsc, &dbc->regs->portsc); 895 - return EVT_GSER; 895 + ret = EVT_GSER; 896 + break; 896 897 } 897 898 898 899 return EVT_DONE; ··· 955 954 break; 956 955 case TRB_TYPE(TRB_TRANSFER): 957 956 dbc_handle_xfer_event(dbc, evt); 958 - ret = EVT_XFER_DONE; 957 + if (ret != EVT_GSER) 958 + ret = EVT_XFER_DONE; 959 959 break; 960 960 default: 961 961 break; ··· 1392 1390 if (!dbc) 1393 1391 return 0; 1394 1392 1395 - if (dbc->state == DS_CONFIGURED) 1393 + switch (dbc->state) { 1394 + case DS_ENABLED: 1395 + case DS_CONNECTED: 1396 + case DS_CONFIGURED: 1396 1397 dbc->resume_required = 1; 1398 + break; 1399 + default: 1400 + break; 1401 + } 1397 1402 1398 1403 xhci_dbc_stop(dbc); 1399 1404
+2 -1
drivers/usb/host/xhci-pci.c
··· 582 582 if (!usb_hcd_is_primary_hcd(hcd)) 583 583 return 0; 584 584 585 + xhci->allow_single_roothub = 1; 586 + 585 587 if (xhci->quirks & XHCI_PME_STUCK_QUIRK) 586 588 xhci_pme_acpi_rtd3_enable(pdev); 587 589 ··· 639 637 xhci = hcd_to_xhci(hcd); 640 638 xhci->reset = reset; 641 639 642 - xhci->allow_single_roothub = 1; 643 640 if (!xhci_has_one_roothub(xhci)) { 644 641 xhci->shared_hcd = usb_create_shared_hcd(&xhci_pci_hc_driver, &dev->dev, 645 642 pci_name(dev), hcd);
+1
drivers/usb/misc/Kconfig
··· 182 182 config USB_USBIO 183 183 tristate "Intel USBIO Bridge support" 184 184 depends on USB && ACPI 185 + depends on X86 || COMPILE_TEST 185 186 select AUXILIARY_BUS 186 187 help 187 188 This adds support for Intel USBIO drivers.
+10
drivers/usb/serial/option.c
··· 273 273 #define QUECTEL_PRODUCT_EM05CN 0x0312 274 274 #define QUECTEL_PRODUCT_EM05G_GR 0x0313 275 275 #define QUECTEL_PRODUCT_EM05G_RS 0x0314 276 + #define QUECTEL_PRODUCT_RG255C 0x0316 276 277 #define QUECTEL_PRODUCT_EM12 0x0512 277 278 #define QUECTEL_PRODUCT_RM500Q 0x0800 278 279 #define QUECTEL_PRODUCT_RM520N 0x0801 ··· 618 617 #define UNISOC_VENDOR_ID 0x1782 619 618 /* TOZED LT70-C based on UNISOC SL8563 uses UNISOC's vendor ID */ 620 619 #define TOZED_PRODUCT_LT70C 0x4055 620 + #define UNISOC_PRODUCT_UIS7720 0x4064 621 621 /* Luat Air72*U series based on UNISOC UIS8910 uses UNISOC's vendor ID */ 622 622 #define LUAT_PRODUCT_AIR720U 0x4e00 623 623 ··· 1272 1270 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) }, 1273 1271 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RG650V, 0xff, 0xff, 0x30) }, 1274 1272 { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RG650V, 0xff, 0, 0) }, 1273 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RG255C, 0xff, 0xff, 0x30) }, 1274 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RG255C, 0xff, 0, 0) }, 1275 + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RG255C, 0xff, 0xff, 0x40) }, 1275 1276 1276 1277 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, 1277 1278 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, ··· 1403 1398 .driver_info = RSVD(0) | NCTRL(3) }, 1404 1399 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a2, 0xff), /* Telit FN920C04 (MBIM) */ 1405 1400 .driver_info = NCTRL(4) }, 1401 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a3, 0xff), /* Telit FN920C04 (ECM) */ 1402 + .driver_info = NCTRL(4) }, 1406 1403 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a4, 0xff), /* Telit FN20C04 (rmnet) */ 1407 1404 .driver_info = RSVD(0) | NCTRL(3) }, 1408 1405 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a7, 0xff), /* Telit FN920C04 (MBIM) */ 1406 + .driver_info = NCTRL(4) }, 1407 + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a8, 0xff), /* Telit FN920C04 (ECM) */ 1409 1408 .driver_info = NCTRL(4) }, 1410 1409 { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a9, 0xff), /* Telit FN20C04 (rmnet) */ 1411 1410 .driver_info = RSVD(0) | NCTRL(2) | RSVD(3) | RSVD(4) }, ··· 2475 2466 { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9291, 0xff, 0xff, 0x30) }, 2476 2467 { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9291, 0xff, 0xff, 0x40) }, 2477 2468 { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) }, 2469 + { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, UNISOC_PRODUCT_UIS7720, 0xff, 0, 0) }, 2478 2470 { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) }, 2479 2471 { USB_DEVICE_INTERFACE_CLASS(0x1bbb, 0x0530, 0xff), /* TCL IK512 MBIM */ 2480 2472 .driver_info = NCTRL(1) },
+2 -2
drivers/usb/typec/tcpm/tcpm.c
··· 7876 7876 7877 7877 port->partner_desc.identity = &port->partner_ident; 7878 7878 7879 - port->role_sw = usb_role_switch_get(port->dev); 7879 + port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode); 7880 7880 if (!port->role_sw) 7881 - port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode); 7881 + port->role_sw = usb_role_switch_get(port->dev); 7882 7882 if (IS_ERR(port->role_sw)) { 7883 7883 err = PTR_ERR(port->role_sw); 7884 7884 goto out_destroy_wq;