Linux USB
 help / color / mirror / Atom feed
* [GIT PULL] USB/Thunderbolt driver updates for 7.4-rc1
@ 2026-10-22 13:50 Greg KH
  2026-10-25  1:50 ` pr-tracker-bot
  2026-10-31  1:28 ` Linus Torvalds
  0 siblings, 2 replies; 6+ messages in thread
From: Greg KH @ 2026-10-22 13:50 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, linux-usb

The following changes since commit a90ee4305c4a5df72c11b31dacfdc76e00fcf78a:

  Linux 7.3-rc6 (2026-10-04 13:45:25 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git tags/usb-7.4-rc1

for you to fetch changes up to bdf12cde30830d46a8ef1ba93986356f1164b4f1:

  usb: gadget: dummy_hcd: prevent unbind via sysfs (2026-10-18 10:19:23 +0200)

----------------------------------------------------------------
USB / Thunderbolt changes for 7.4-rc1

Here is the big set of USB and Thunderbolt changes for 7.4-rc1.
Included in here are:
  - thunderbolt driver updates and fixes
  - lots of dt schema conversions
  - usb gadget driver fixes (and a new maintainer!)
  - usb core fixups with some interactions with the driver core
  - usb serial updates and fixes for scan-found "issues"
  - xhci driver updates
  - typec driver updates
  - dwc3 driver updates
  - lots of usb gadget driver fixes for syzbot found "problems"
  - lots of other small USB driver fixes for randomly reported problems.

All of these have been in linux-next with no reported issues.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

----------------------------------------------------------------
Adrian Ng Ho Yin (1):
      usb: dwc2: handle OTG HNP SetFeature requests

Alan Stern (5):
      USB: gadget: core: Improve documentation for usb_ep_disable()
      USB: gadgetfs: Fix races and locking in asynchronous I/O
      USB: gadgetfs: Fix test for copying data in asynchronous I/O
      USB: gadgetfs: Wait for work routines before unloading
      USB: Documentation: Update description of completion callback context

Aleksandr Nogikh (1):
      usb: gadget: dummy_hcd: prevent unbind via sysfs

Alexey Charkov (2):
      dt-bindings: usb: ti,hd3ss3220: Add support for supply regulators
      usb: typec: hd3ss3220: Add support for supply regulators

Ali Resool Tuama (1):
      USB: quirks: add USB_QUIRK_WINDOWS_CONFIG_REQ_SIZE for GameSir G7 SE

Amit Sunil Dhamne (1):
      usb: typec: tcpm: Support native battery energy properties in battery AMS

Anurag (3):
      thunderbolt: Make software margining error counter configurable
      thunderbolt: Fix sideband register access in usb4_port_sw_margin_errors()
      thunderbolt: Extract per-lane extended error counters in software margining

Arka Mondal (3):
      usb-storage: alauda: do not do DMA from the stack
      usb-storage: alauda: check the return value of alauda_read_map()
      usb-storage: alauda: fix out-of-bounds zone index

Arnd Bergmann (1):
      usb: fotg210: fix USB_EHCI_HCD dependency

Atharva Tiwari (3):
      thunderbolt: Move tb_apple_add_links() to pci.c
      thunderbolt: Add device links for Apple machines with Titan Ridge
      thunderbolt: Add device links for Apple systems with Ice Lake

Bartosz Golaszewski (1):
      dt-bindings: usb: qcom,snps-dwc3: Document the Nord DWC3 controller

Bhargav Joshi (7):
      dt-bindings: usb: ti,da830-ohci: Convert to DT schema
      dt-bindings: dma: ti,cppi41: Convert to DT schema
      dt-bindings: phy: ti,am335x-usb-phy: Convert to DT schema
      dt-bindings: usb: ti,musb-am33xx: Convert to DT schema
      dt-bindings: usb: ti,am335x-usb-ctrl-module: Convert to DT schema
      dt-bindings: usb: ti,am33xx-usb: Convert to DT schema
      dt-bindings: usb: ti,da830-musb: Convert to DT schema

Crescent Hsieh (6):
      USB: serial: mxuport: clean up product ID definitions and device table
      USB: serial: mxuport: clean up firmware version handling
      USB: serial: mxuport: add MUX50U-based device support
      USB: serial: add generic write control callbacks
      USB: serial: mxuport: handle SEND_NEXT transmit flow control
      USB: serial: mxuport: support RS485 mode configuration

Danilo Krummrich (1):
      usb: core: don't set drvdata to NULL in usb_unbind_interface()

Diego Fernando Mancera Gomez (1):
      usb: image: microtek: stop SG processing after transfer errors

Dmitry Antipov (1):
      usb: dwc3: simplify dwc3_lsp_write()

Dmitry Baryshkov (1):
      dt-bindings: usb: qcom,snps-dwc3: document the MSM8974 controller

Drobyshev Vladimir (1):
      USB: cdc-acm: add VeriFone VX820 device ID

Fabio Estevam (1):
      usb: xhci-pci: Add TUSB73x0 definitions

Fabrice Gasnier (2):
      dt-bindings: usb: gpio-sbu-mux: Add compatible for FUSB340
      usb: typec: mux: gpio-sbu: enable when only used for orientation

Fan Ye (1):
      thunderbolt: Stop waiting on a path pending bit that never clears

Greg Kroah-Hartman (6):
      Merge patch series "usb: gpio-sbu-mux: add FUSB340 and enable option for orientation"
      Merge 7.3-rc2 into usb-next
      Merge 7.3-rc6 into usb-next
      Merge tag 'thunderbolt-for-v7.4-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into usb-next
      Merge tag 'thunderbolt-for-v7.3-rc7' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into usb-next
      Merge tag 'usb-serial-7.4-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next

Gris Ge (1):
      usb: typec: ucsi: Skip CAM query when partner has no alt modes

Haofeng Li (2):
      usb: storage: sddr09: fix OOB access in sddr09_read_map
      usb: dwc2: truncate PIO RX FIFO reads to the request's remaining space

Haotian Zhang (1):
      thunderbolt: dma_test: Tear down DMA paths before stopping the rings

Hemanth Selam (3):
      thunderbolt: Fix typo "forwared" in comment
      usb: chipidea: fix typo "binded" in comments
      usb: dwc2: fix typos in comments

Henry Tseng (1):
      usb: xhci: return an error if the host is not halted

Hongyu Xie (1):
      xhci: check device notification type before forwarding wake event

Huang Wei (1):
      usb: dwc2: debugfs: fix memory leak of hsotg->regset

Igor Skalkin (2):
      usb: gadget: dummy_hcd: fix SuperSpeed ep0 maxpacket
      usb: gadget: dummy_hcd: set no_sg_constraint only on the SuperSpeed bus

Jacob Riff (1):
      usb: typec: ucsi: retry init when the PPM answers early commands incorrectly

Jameson Thies (1):
      usb: typec: ucsi: allow retries of ucsi_resume_work

Jens Glathe (3):
      usb: typec: mux: ps883x: support TYPEC_DP_STATE_F
      usb: typec: mux: ps883x: add a delay after writing config regs
      usb: typec: mux: ps883x: disable USB4 on incomplete USB4 platforms

Jiangong.Han (1):
      USB: usbmon: fix null-ptr-deref in mon_bus_remove() when mon_bus_init() fails

Johan Hovold (6):
      USB: gadget: stop propagating controller OF nodes
      USB: core: amend usb_get_from_anchor() kernel-doc
      USB: cdc-acm: fix urb leak on disconnect
      USB: serial: usb_wwan: fix urb leak on disconnect
      USB: serial: sierra: fix urb leak on write completion
      USB: core: document purpose of interface parent reference

Jonathan Gopel (1):
      thunderbolt: Do not RPM complete unrelated subtrees on unplug

Julia Lawall (1):
      USB: OHCI: drop unneeded semicolon

Karl Mehltretter (1):
      docs: usbmon: Fix a typo in the example

Keisuke Tsukuda (2):
      usb: gadget: composite: avoid warning on aborted delayed status
      usb: gadget: f_mass_storage: ignore class requests while inactive

Krishna Kurapati (2):
      usb: dwc3: qcom: Add support to skip phy management by USB core
      Revert "usb: dwc3: qcom: Add support to skip phy management by USB core"

Linus Walleij (7):
      usb: ehci: support non-standard port status registers
      usb: ehci: add port reset hooks
      usb: ehci: add port speed hook
      usb: ehci: support additional controller quirks
      usb: fotg210: use the common EHCI core
      usb: fotg210-udc: fix endpoint and resource handling
      usb: fotg210: guard host shutdown in gadget-only builds

Liu Chao (1):
      usb: fotg210: validate endpoint index in ep0 handlers

Lucas Martins Alves (1):
      usb: musb: dsps: implement vbus_status and set_vbus platform ops

Marek Vasut (9):
      dt-bindings: usb: generic-ehci: Document ST STM32MP1 SoC compatibles
      ARM: dts: stm32: Use STM32MP13xx compatible string for EHCI USB controller
      ARM: dts: stm32: Use STM32MP15xx compatible string for EHCI USB controller
      dt-bindings: usb: generic-ohci: Document ST STM32MP1 SoC compatibles
      ARM: dts: stm32: Use STM32MP13xx compatible string for OHCI USB controller
      ARM: dts: stm32: Use STM32MP15xx compatible string for OHCI USB controller
      dt-bindings: usb: generic-ohci: Document ST STM32MP2 SoC compatibles
      dt-bindings: usb: generic-ehci: Document ST STM32MP2 SoC compatibles
      arm64: dts: st: Add USB nodes on stm32mp231

Martin Rys (1):
      USB: Improve "New device found" printout message

Mathias Nyman (1):
      xhci: Prevent invalid vdev dereference during sideband unregister

Michael Wyraz (1):
      USB: serial: option: add support for ASR 1286:4e3c modem

Michal Pecio (6):
      usb: xhci: Unlock for command abort polling
      usb: xhci: Guarantee URB giveback on Ring Underrun/Overrun
      usb: xhci: Don't set the skip flag on non-isoc endpoints
      usb: xhci: Shorten the TD skipping loop
      usb: xhci: Rework and improve the TD matching and skipping logic
      usb: xhci: Fix bounce buffer overflow

Mika Westerberg (12):
      thunderbolt: Allow batching of descriptors
      net: thunderbolt: Update ring indices only after all frames are queued
      thunderbolt: Do not WARN about already disabled interrupt on polled rings
      thunderbolt: Clean up ring interrupt register indexing
      thunderbolt: Use shadow copy for ring interrupt mask
      thunderbolt: stream: Use polling with RX ring
      thunderbolt: Write descriptors in tb_ring_poll()
      thunderbolt: Add tb_ring_poll_pending()
      thunderbolt: stream: Do not hold the lock while busy polling
      thunderbolt: stream: Check the Rx ring before task starts sleeping
      thunderbolt: stream: Improve CLOSE handling on write side
      thunderbolt: stream: Make read return framing error to the userspace

Mike Rapoport (Microsoft) (1):
      USB: serial: usb_wwan: replace __get_free_page() with kmalloc()

Mikhail Zubenko (1):
      usb: gadget: dummy_hcd: add tick_us module parameter for timer-rate tuning

Neill Kapron (1):
      MAINTAINERS: add Neill Kapron as USB Gadget maintainer

Nguyen Ngoc Thang (1):
      usb: storage: ene_ub6250: set transport_reset to avoid NULL deref

Nguyen Quang Le Kien (1):
      usb: gadget: fix refcount underflow in gadgetfs_bind() error path

Orgad Shaneh (2):
      usb: octeon-hcd: release the USB block when initialization fails
      usb: octeon-hcd: keep SOF interrupts while a pipe needs them

Pan Chuang (11):
      usb: cdns3: Remove redundant dev_err()
      usb: common: usb-conn-gpio: Remove redundant dev_err()
      usb: dwc2: gadget: Remove redundant dev_err()
      usb: dwc3: Remove redundant dev_err()/dev_err_probe()
      usb: gadget: Remove redundant dev_err()
      usb: host: xhci-tegra: Remove redundant dev_err()
      usb: misc: Remove redundant dev_err()/dev_err_probe()
      usb: mtu3: Remove redundant dev_err()
      usb: phy: Remove redundant dev_err()/dev_err_probe()
      usb: renesas_usbhs: Remove redundant dev_err()
      usb: typec: Remove redundant dev_err()/dev_err_probe()

Pankaj Dev (1):
      arm64: dts: st: Add USB nodes on stm32mp251

Pengpeng Hou (3):
      thunderbolt: Require complete DROM entry headers
      usb: musb: da8xx: depopulate OF children on remove
      usb: musb: da8xx: depopulate OF children on probe failure

Reinhard Speyerer (1):
      USB: serial: option: add Rolling Wireless RN947R

Rene Sapiens (2):
      thunderbolt: Define number of dwords for hardware margining results
      thunderbolt: Add extended error counter support for software lane margining

Rosen Penev (2):
      usb: ehci-ppc-of: use platform for irq and ioremap
      usb: ohci-ppc-of: use platform for irq and ioremap

Sang-Hoon Choi (1):
      xhci: dbc: lock the minor IDR on registration failure

Seungjin Bae (1):
      usb: typec: ucsi: ccg: Validate altmode index in GET_CURRENT_CAM response

Shashank Balaji (4):
      usb: core: pass THIS_MODULE implicitly through a macro
      usb: core: set mod_name in driver registration
      usb: typec: set mod_name in driver registration
      usb: ulpi: set mod_name in driver registration

Stephen Horvath (1):
      usb: xhci-pci: Add AMD 600 series to xhci-pci-prom21

Sven Peter (1):
      usb: typec: tipd: Disable mode control for CD321x

Swark Yang (1):
      dt-bindings: usb: generic-xhci: add Axiado AX3005 xHCI variant

Wayne Chang (4):
      dt-bindings: usb: Add Tegra264 XUSB host support
      usb: host: xhci-tegra: Skip MBOX MSG_ENABLED on Tegra264
      usb: host: xhci-tegra: Add Tegra264 XHCI support
      usb: typec: ucsi_ccg: Add retry mechanism in ccg_read

Yuho Choi (1):
      USB: pci-quirks: Release EHCI device reference

Zain Aboobacker (1):
      usb: xhci: fix typos in comments

bui duc phuc (2):
      usb: chipidea: ci_hdrc_imx: Propagate errors from optional IRQ lookup
      usb: chipidea: ci_hdrc_imx: Fix error handling when creating IRQ name

 .../devicetree/bindings/dma/ti/ti,cppi41.yaml      |  109 +
 .../devicetree/bindings/phy/ti,am335x-usb-phy.yaml |   49 +
 .../devicetree/bindings/usb/am33xx-usb.txt         |  200 -
 .../devicetree/bindings/usb/da8xx-usb.txt          |   81 -
 .../devicetree/bindings/usb/generic-ehci.yaml      |   24 +
 .../devicetree/bindings/usb/generic-ohci.yaml      |   24 +
 .../devicetree/bindings/usb/generic-xhci.yaml      |    4 +-
 .../devicetree/bindings/usb/gpio-sbu-mux.yaml      |    1 +
 .../bindings/usb/nvidia,tegra234-xusb.yaml         |   52 +-
 .../devicetree/bindings/usb/ohci-da8xx.txt         |   23 -
 .../devicetree/bindings/usb/qcom,snps-dwc3.yaml    |   22 +
 .../bindings/usb/ti,am335x-usb-ctrl-module.yaml    |   38 +
 .../devicetree/bindings/usb/ti,am33xx-usb.yaml     |  103 +
 .../devicetree/bindings/usb/ti,da830-musb.yaml     |  113 +
 .../devicetree/bindings/usb/ti,da830-ohci.yaml     |   61 +
 .../devicetree/bindings/usb/ti,hd3ss3220.yaml      |   11 +
 .../devicetree/bindings/usb/ti,musb-am33xx.yaml    |  113 +
 Documentation/hwmon/prom21-xhci.rst                |    2 +-
 Documentation/usb/usbmon.rst                       |    2 +-
 MAINTAINERS                                        |   22 +
 arch/arm/boot/dts/st/stm32mp131.dtsi               |    4 +-
 arch/arm/boot/dts/st/stm32mp151.dtsi               |    4 +-
 arch/arm64/boot/dts/st/stm32mp231.dtsi             |   64 +
 arch/arm64/boot/dts/st/stm32mp251.dtsi             |   63 +
 drivers/net/thunderbolt/main.c                     |    6 +-
 drivers/net/usb/r8152.c                            |    2 +-
 drivers/thunderbolt/debugfs.c                      |  126 +-
 drivers/thunderbolt/dma_test.c                     |   10 +-
 drivers/thunderbolt/eeprom.c                       |   23 +-
 drivers/thunderbolt/icm.c                          |    6 +-
 drivers/thunderbolt/nhi.c                          |  222 +-
 drivers/thunderbolt/nhi.h                          |    2 +
 drivers/thunderbolt/path.c                         |    2 +-
 drivers/thunderbolt/pci.c                          |  113 +
 drivers/thunderbolt/quirks.c                       |   18 +
 drivers/thunderbolt/sb_regs.h                      |    2 +
 drivers/thunderbolt/stream.c                       |  287 +-
 drivers/thunderbolt/switch.c                       |    4 +
 drivers/thunderbolt/tb.c                           |   78 -
 drivers/thunderbolt/tb.h                           |    5 +-
 drivers/thunderbolt/usb4.c                         |   10 +-
 drivers/usb/cdns3/core.c                           |    4 +-
 drivers/usb/cdns3/drd.c                            |    4 +-
 drivers/usb/chipidea/ci_hdrc_imx.c                 |    8 +-
 drivers/usb/chipidea/otg_fsm.c                     |    2 +-
 drivers/usb/chipidea/udc.c                         |    2 +-
 drivers/usb/class/cdc-acm.c                        |    6 +-
 drivers/usb/common/ulpi.c                          |    4 +-
 drivers/usb/common/usb-conn-gpio.c                 |    8 +-
 drivers/usb/core/driver.c                          |   13 +-
 drivers/usb/core/hub.c                             |    2 +-
 drivers/usb/core/message.c                         |    5 +
 drivers/usb/core/quirks.c                          |    3 +
 drivers/usb/core/urb.c                             |   12 +-
 drivers/usb/core/usb.c                             |    2 +-
 drivers/usb/dwc2/core.c                            |    2 +-
 drivers/usb/dwc2/core.h                            |    2 +-
 drivers/usb/dwc2/debugfs.c                         |    6 +-
 drivers/usb/dwc2/gadget.c                          |   98 +-
 drivers/usb/dwc2/hcd.c                             |    4 +-
 drivers/usb/dwc2/hcd_ddma.c                        |    2 +-
 drivers/usb/dwc3/debugfs.c                         |    6 +-
 drivers/usb/dwc3/dwc3-google.c                     |    4 +-
 drivers/usb/dwc3/dwc3-imx.c                        |    2 +-
 drivers/usb/dwc3/dwc3-imx8mp.c                     |    4 +-
 drivers/usb/dwc3/dwc3-keystone.c                   |    5 +-
 drivers/usb/dwc3/dwc3-omap.c                       |    5 +-
 drivers/usb/fotg210/Kconfig                        |    5 +
 drivers/usb/fotg210/fotg210-core.c                 |  273 +-
 drivers/usb/fotg210/fotg210-hcd.c                  | 5666 +-------------------
 drivers/usb/fotg210/fotg210-hcd.h                  |  689 ---
 drivers/usb/fotg210/fotg210-udc.c                  |  114 +-
 drivers/usb/fotg210/fotg210-udc.h                  |    2 +-
 drivers/usb/fotg210/fotg210.h                      |   26 +-
 drivers/usb/gadget/composite.c                     |    2 +-
 drivers/usb/gadget/function/f_mass_storage.c       |    7 +-
 drivers/usb/gadget/legacy/inode.c                  |  208 +-
 drivers/usb/gadget/udc/aspeed-vhub/core.c          |    4 +-
 drivers/usb/gadget/udc/aspeed-vhub/dev.c           |    2 -
 drivers/usb/gadget/udc/aspeed_udc.c                |    5 +-
 drivers/usb/gadget/udc/at91_udc.c                  |    1 -
 drivers/usb/gadget/udc/atmel_usba_udc.c            |    5 +-
 drivers/usb/gadget/udc/bcm63xx_udc.c               |    1 -
 drivers/usb/gadget/udc/core.c                      |    9 +-
 drivers/usb/gadget/udc/dummy_hcd.c                 |   61 +-
 drivers/usb/gadget/udc/fsl_udc_core.c              |    3 -
 drivers/usb/gadget/udc/lpc32xx_udc.c               |    1 -
 drivers/usb/gadget/udc/r8a66597-udc.c              |    4 +-
 drivers/usb/gadget/udc/renesas_usbf.c              |    8 +-
 drivers/usb/gadget/udc/snps_udc_plat.c             |    4 +-
 drivers/usb/gadget/udc/tegra-xudc.c                |    5 +-
 drivers/usb/host/Kconfig                           |   13 +
 drivers/usb/host/ehci-dbg.c                        |    3 +-
 drivers/usb/host/ehci-hcd.c                        |   31 +-
 drivers/usb/host/ehci-hub.c                        |  104 +-
 drivers/usb/host/ehci-ppc-of.c                     |   47 +-
 drivers/usb/host/ehci-timer.c                      |    3 +-
 drivers/usb/host/ehci.h                            |   55 +-
 drivers/usb/host/octeon-hcd.c                      |   41 +-
 drivers/usb/host/ohci-dbg.c                        |    2 +-
 drivers/usb/host/ohci-hub.c                        |    2 +-
 drivers/usb/host/ohci-ppc-of.c                     |   44 +-
 drivers/usb/host/pci-quirks.c                      |    4 +-
 drivers/usb/host/xhci-dbgtty.c                     |    2 +
 drivers/usb/host/xhci-pci-prom21.c                 |    3 +
 drivers/usb/host/xhci-pci.c                        |   12 +-
 drivers/usb/host/xhci-pci.h                        |    3 +
 drivers/usb/host/xhci-ring.c                       |  255 +-
 drivers/usb/host/xhci-tegra.c                      |   45 +-
 drivers/usb/host/xhci.c                            |   27 +-
 drivers/usb/host/xhci.h                            |    5 +
 drivers/usb/image/microtek.c                       |    1 +
 drivers/usb/misc/apple-mfi-fastcharge.c            |    2 +-
 drivers/usb/misc/brcmstb-usb-pinmap.c              |    9 +-
 drivers/usb/misc/onboard_usb_dev.c                 |    2 +-
 drivers/usb/misc/qcom_eud.c                        |    2 +-
 drivers/usb/mon/mon_main.c                         |    3 +
 drivers/usb/mtu3/mtu3_core.c                       |    4 +-
 drivers/usb/musb/da8xx.c                           |    8 +-
 drivers/usb/musb/musb_dsps.c                       |   25 +
 drivers/usb/phy/phy-ab8500-usb.c                   |   12 +-
 drivers/usb/phy/phy-generic.c                      |    3 +-
 drivers/usb/phy/phy-gpio-vbus-usb.c                |    5 +-
 drivers/usb/renesas_usbhs/mod.c                    |    4 +-
 drivers/usb/serial/generic.c                       |   11 +-
 drivers/usb/serial/mxuport.c                       |  424 +-
 drivers/usb/serial/option.c                        |    5 +
 drivers/usb/serial/sierra.c                        |    3 +-
 drivers/usb/serial/usb_wwan.c                      |    9 +-
 drivers/usb/storage/alauda.c                       |   95 +-
 drivers/usb/storage/ene_ub6250.c                   |    2 +
 drivers/usb/storage/sddr09.c                       |    9 +
 drivers/usb/storage/usb.c                          |    6 +-
 drivers/usb/typec/anx7411.c                        |    4 +-
 drivers/usb/typec/bus.c                            |    4 +-
 drivers/usb/typec/hd3ss3220.c                      |   36 +-
 drivers/usb/typec/mux/gpio-sbu-mux.c               |   13 +-
 drivers/usb/typec/mux/it5205.c                     |    2 +-
 drivers/usb/typec/mux/ps883x.c                     |   48 +
 drivers/usb/typec/tcpm/tcpci_maxim_core.c          |    3 +-
 drivers/usb/typec/tcpm/tcpci_mt6360.c              |    1 -
 drivers/usb/typec/tcpm/tcpci_mt6370.c              |    2 +-
 drivers/usb/typec/tcpm/tcpm.c                      |   57 +-
 drivers/usb/typec/tipd/core.c                      |    3 +
 drivers/usb/typec/ucsi/ucsi.c                      |   55 +-
 drivers/usb/typec/ucsi/ucsi.h                      |    3 +-
 drivers/usb/typec/ucsi/ucsi_ccg.c                  |   37 +-
 drivers/usb/usbip/stub_main.c                      |    2 +-
 include/linux/pci_ids.h                            |    1 +
 include/linux/thunderbolt.h                        |   47 +-
 include/linux/ulpi/driver.h                        |    4 +-
 include/linux/usb.h                                |   13 +-
 include/linux/usb/serial.h                         |    8 +
 include/linux/usb/typec_altmode.h                  |    4 +-
 154 files changed, 3546 insertions(+), 7571 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/dma/ti/ti,cppi41.yaml
 create mode 100644 Documentation/devicetree/bindings/phy/ti,am335x-usb-phy.yaml
 delete mode 100644 Documentation/devicetree/bindings/usb/am33xx-usb.txt
 delete mode 100644 Documentation/devicetree/bindings/usb/da8xx-usb.txt
 delete mode 100644 Documentation/devicetree/bindings/usb/ohci-da8xx.txt
 create mode 100644 Documentation/devicetree/bindings/usb/ti,am335x-usb-ctrl-module.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/ti,am33xx-usb.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/ti,da830-musb.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/ti,da830-ohci.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/ti,musb-am33xx.yaml
 delete mode 100644 drivers/usb/fotg210/fotg210-hcd.h

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] USB/Thunderbolt driver updates for 7.4-rc1
  2026-10-22 13:50 [GIT PULL] USB/Thunderbolt driver updates for 7.4-rc1 Greg KH
@ 2026-10-25  1:50 ` pr-tracker-bot
  2026-10-31  1:28 ` Linus Torvalds
  1 sibling, 0 replies; 6+ messages in thread
From: pr-tracker-bot @ 2026-10-25  1:50 UTC (permalink / raw)
  To: Greg KH; +Cc: Linus Torvalds, Andrew Morton, linux-kernel, linux-usb

The pull request you sent on Thu, 22 Oct 2026 15:50:34 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git tags/usb-7.4-rc1

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/168151cdb0f93d26557f9f3c7aae659b8d6b1863

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] USB/Thunderbolt driver updates for 7.4-rc1
  2026-10-22 13:50 [GIT PULL] USB/Thunderbolt driver updates for 7.4-rc1 Greg KH
  2026-10-25  1:50 ` pr-tracker-bot
@ 2026-10-31  1:28 ` Linus Torvalds
  2026-10-31  3:23   ` Jacob Riff
  2026-10-31  3:24   ` [PATCH] usb: typec: ucsi: retry init only while the PPM is not ready Jacob Riff
  1 sibling, 2 replies; 6+ messages in thread
From: Linus Torvalds @ 2026-10-31  1:28 UTC (permalink / raw)
  To: Greg KH, Heikki Krogerus, Jacob Riff; +Cc: linux-kernel, linux-usb

On Thu, 22 Oct 2026 at 03:53, Greg KH <gregkh@linuxfoundation.org> wrote:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git tags/usb-7.4-rc1

This commit (254261381538: "usb: typec: ucsi: retry init when the PPM
answers early commands incorrectly")

> Jacob Riff (1):
>       usb: typec: ucsi: retry init when the PPM answers early commands incorrectly

results in a hundred and one lines of

    ucsi_acpi USBC000:00: error -ENODEV: con1: failed to get usb role switch

for me on every boot on my laptop.

Before that commit, I got a single

    ucsi_acpi USBC000:00: error -ENODEV: con1: failed to get usb role switch
    ucsi_acpi USBC000:00: error -ENODEV: PPM init failed

but now it apparently retries that thing a hundred times before
finally giving up wth

    ucsi_acpi USBC000:00: PPM init failed, stop trying

and honestly, this all seems rather excessive. Retry ten times a
second, for ten seconds? As far as I know, this has never succeeded in
the history of this laptop, and it has no bad effects apart from the
silly messages.

                   Linus

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] USB/Thunderbolt driver updates for 7.4-rc1
  2026-10-31  1:28 ` Linus Torvalds
@ 2026-10-31  3:23   ` Jacob Riff
  2026-10-31  3:24   ` [PATCH] usb: typec: ucsi: retry init only while the PPM is not ready Jacob Riff
  1 sibling, 0 replies; 6+ messages in thread
From: Jacob Riff @ 2026-10-31  3:23 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Greg Kroah-Hartman, Heikki Krogerus, linux-usb, linux-kernel

On Fri, 30 Oct 2026 15:28:29 -1000, Linus Torvalds wrote:
> and honestly, this all seems rather excessive. Retry ten times a
> second, for ten seconds? As far as I know, this has never succeeded in
> the history of this laptop, and it has no bad effects apart from the
> silly messages.

Hi Linus,

Sorry about the noise. As written the retry catches every -ENODEV,
including ucsi_register_port() failing on the role switch lookup, which
no retry can change. Fix follows in this thread: it retries only the
PPM-not-ready case, for one second instead of ten, and has been through
six boots on the machine the retry was written for (three hit the race,
all recovered).

As far as I can see, the -ENODEV in your log can only come from the
!CONFIG_USB_ROLE_SWITCH stub of fwnode_usb_role_switch_get(); the real
one returns a switch, NULL or -EPROBE_DEFER. If that is your config,
UCSI has never been able to init there: TYPEC_UCSI builds without
USB_ROLE_SWITCH but then fails on it at probe. That is a separate,
older problem.

Jacob

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] usb: typec: ucsi: retry init only while the PPM is not ready
  2026-10-31  1:28 ` Linus Torvalds
  2026-10-31  3:23   ` Jacob Riff
@ 2026-10-31  3:24   ` Jacob Riff
  2026-10-31  3:36     ` sashiko-bot
  1 sibling, 1 reply; 6+ messages in thread
From: Jacob Riff @ 2026-10-31  3:24 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Heikki Krogerus
  Cc: Linus Torvalds, linux-usb, linux-kernel

Commit 254261381538 ("usb: typec: ucsi: retry init when the PPM
answers early commands incorrectly") makes ucsi_init_work() retry
ucsi_init() on -ENODEV and -EINVAL, a hundred times over ten seconds,
to cover a PPM that is not ready to answer commands correctly for a
short window during boot.

It catches more than that. ucsi_register_port() also fails with
-ENODEV when no USB role switch is available, and logs that at error
level, so every retry runs it again and logs it again. Where a machine
without a usable role switch used to log

  ucsi_acpi USBC000:00: error -ENODEV: con1: failed to get usb role switch
  ucsi_acpi USBC000:00: error -ENODEV: PPM init failed

it now logs a hundred and one copies of the first line, followed by
"PPM init failed, stop trying", on every boot, and the retries can
never succeed there.

Have ucsi_init() report the two not-ready cases as -EAGAIN instead:
GET_CAPABILITY reporting zero connectors, and the PPM rejecting a
standard command (-EINVAL from ucsi_read_error(), the only -EINVAL
expected once the PPM reset has succeeded). Retry only -EAGAIN and, as
before that commit, -EPROBE_DEFER. Every other error is reported once
and init stops, as it did before.

Also give -EAGAIN its own budget. The hundred retries over ten seconds
belong to the USB role switch wait. On the machine the retry was
written for, every observed failure recovered on the first or second
retry, so ten retries over one second is plenty. A PPM that
permanently rejects a command now logs "possible UCSI driver bug" up
to eleven times in that second, on hardware where init already failed
before.

Fixes: 254261381538 ("usb: typec: ucsi: retry init when the PPM answers early commands incorrectly")
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Closes: https://lore.kernel.org/r/CAHk-=wjGk9rBTphk1OAwcqGAE1__KJgMr3B-8X4hKFPX8Wm=BQ@mail.gmail.com
Signed-off-by: Jacob Riff <jacob@riff.dk>
---
Tested on the machine from the Fixes commit (Lenovo ThinkPad X1 Carbon
Gen 14, this patch applied to the 7.2.6 driver): 6 boots, 3 hit the
race, all 3 recovered through the -EAGAIN path (two on the first retry,
one on the second), none ended with UCSI unusable. The single-report
path for a permanent -ENODEV from ucsi_register_port() is verified by
inspection only; no machine here has that configuration.

 drivers/usb/typec/ucsi/ucsi.c | 37 +++++++++++++++++++++++++----------
 drivers/usb/typec/ucsi/ucsi.h |  1 +
 2 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index 2f9adf4..9e453d2 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -2106,7 +2106,7 @@ static int ucsi_init(struct ucsi *ucsi)
 		goto err_reset;
 
 	if (!ucsi->cap.num_connectors) {
-		ret = -ENODEV;
+		ret = -EAGAIN;
 		goto err_reset;
 	}
 	/* Check if reserved bit set. This is out of spec but happens in buggy FW */
@@ -2172,6 +2172,16 @@ static int ucsi_init(struct ucsi *ucsi)
 err_reset:
 	memset(&ucsi->cap, 0, sizeof(ucsi->cap));
 	ucsi_reset_ppm(ucsi);
+
+	/*
+	 * The only -EINVAL expected on this path is ucsi_read_error()'s:
+	 * the PPM rejected a standard command. Some PPMs do that, or
+	 * report zero connectors above, for a short while after boot
+	 * before they are ready. Report both as -EAGAIN so that
+	 * ucsi_init_work() can retry them, and only them.
+	 */
+	if (ret == -EINVAL)
+		ret = -EAGAIN;
 err:
 	return ret;
 }
@@ -2249,16 +2259,23 @@ static void ucsi_init_work(struct work_struct *work)
 	}
 
 	/*
-	 * On some platforms the PPM is not ready to answer commands
-	 * correctly for a short window during boot: standard commands are
-	 * rejected or GET_CAPABILITY reports zero connectors, seen as
-	 * -EINVAL or -ENODEV from ucsi_init(), and a retry moments later
-	 * succeeds (observed on Lenovo ThinkPad X1 Carbon Gen 14, where
-	 * this affects roughly half of all boots). Retry those like the
-	 * USB role switch wait instead of giving up on the first attempt.
+	 * -EPROBE_DEFER: the USB role switch is not registered yet. Wait
+	 * up to ten seconds for it.
+	 *
+	 * -EAGAIN: the PPM is not ready to answer commands correctly yet.
+	 * On some platforms that lasts for a short window during boot
+	 * (observed on Lenovo ThinkPad X1 Carbon Gen 14, where it affects
+	 * roughly half of all boots and a retry moments later succeeds).
+	 * One second is plenty for that.
+	 *
+	 * Anything else is not going to change with a retry, so report it
+	 * once and stop.
 	 */
-	if (ret == -EPROBE_DEFER || ret == -ENODEV || ret == -EINVAL) {
-		if (ucsi->work_count++ < UCSI_ROLE_SWITCH_WAIT_COUNT) {
+	if (ret == -EPROBE_DEFER || ret == -EAGAIN) {
+		int limit = ret == -EPROBE_DEFER ? UCSI_ROLE_SWITCH_WAIT_COUNT :
+						 UCSI_PPM_READY_WAIT_COUNT;
+
+		if (ucsi->work_count++ < limit) {
 			dev_dbg(ucsi->dev, "PPM init failed (%pe), retrying\n",
 				ERR_PTR(ret));
 			queue_delayed_work(system_dfl_long_wq, &ucsi->work,
diff --git a/drivers/usb/typec/ucsi/ucsi.h b/drivers/usb/typec/ucsi/ucsi.h
index 1996f04..140d34e 100644
--- a/drivers/usb/typec/ucsi/ucsi.h
+++ b/drivers/usb/typec/ucsi/ucsi.h
@@ -491,6 +491,7 @@ struct ucsi {
 #define UCSI_ROLE_SWITCH_RETRY_PER_HZ	10
 #define UCSI_ROLE_SWITCH_INTERVAL	(HZ / UCSI_ROLE_SWITCH_RETRY_PER_HZ)
 #define UCSI_ROLE_SWITCH_WAIT_COUNT	(10 * UCSI_ROLE_SWITCH_RETRY_PER_HZ)
+#define UCSI_PPM_READY_WAIT_COUNT	(1 * UCSI_ROLE_SWITCH_RETRY_PER_HZ)
 
 	/* PPM Communication lock */
 	struct mutex ppm_lock;

base-commit: e971f4f365bad51d01bc90db55b56fdb3124f963
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] usb: typec: ucsi: retry init only while the PPM is not ready
  2026-10-31  3:24   ` [PATCH] usb: typec: ucsi: retry init only while the PPM is not ready Jacob Riff
@ 2026-10-31  3:36     ` sashiko-bot
  0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-10-31  3:36 UTC (permalink / raw)
  To: Jacob Riff; +Cc: linux-usb

> Commit 254261381538 ("usb: typec: ucsi: retry init when the PPM
> answers early commands incorrectly") makes ucsi_init_work() retry
> ucsi_init() on -ENODEV and -EINVAL, a hundred times over ten seconds,
> to cover a PPM that is not ready to answer commands correctly for a
> short window during boot.
> 
> It catches more than that. ucsi_register_port() also fails with
> -ENODEV when no USB role switch is available, and logs that at error
> level, so every retry runs it again and logs it again. Where a machine
> without a usable role switch used to log
> 
>   ucsi_acpi USBC000:00: error -ENODEV: con1: failed to get usb role switch
>   ucsi_acpi USBC000:00: error -ENODEV: PPM init failed
> 
> it now logs a hundred and one copies of the first line, followed by
> [ ... ]
> 
> Fixes: 254261381538 ("usb: typec: ucsi: retry init when the PPM answers early commands incorrectly")
> Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
> Closes: https://lore.kernel.org/r/CAHk-=wjGk9rBTphk1OAwcqGAE1__KJgMr3B-8X4hKFPX8Wm=BQ@mail.gmail.com
> Signed-off-by: Jacob Riff <jacob@riff.dk>

Sashiko has reviewed this patch and found no issues.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261031032400.38349-1-jacob@riff.dk?part=1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-10-31  3:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-22 13:50 [GIT PULL] USB/Thunderbolt driver updates for 7.4-rc1 Greg KH
2026-10-25  1:50 ` pr-tracker-bot
2026-10-31  1:28 ` Linus Torvalds
2026-10-31  3:23   ` Jacob Riff
2026-10-31  3:24   ` [PATCH] usb: typec: ucsi: retry init only while the PPM is not ready Jacob Riff
2026-10-31  3:36     ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox