linux/drivers/usb
Huang Wei eb4573cf2f usb: typec: ucsi: use UCSI_TIMEOUT_MS for sync command completion
The synchronous command completion path in ucsi_sync_control_common()
hardcodes a 5 second (5 * HZ) timeout when waiting for the PPM to signal
command completion via ACPI notification. This value matched
UCSI_TIMEOUT_MS when it was still 5000 ms, but it was not updated when
that macro was later raised to 10000 ms to fix PPM reset timeouts.

As a result, the two PPM communication paths are now inconsistent: the
polling path in ucsi_reset_ppm() respects the 10 second timeout, while
the event-driven completion path still uses 5 seconds. On machines where
the firmware is slow to respond during boot (e.g. some Lenovo ThinkPad
models such as the E14 Gen 7), commands sent after the PPM reset, such
as SET_NOTIFICATION_ENABLE and GET_CAPABILITY, can exceed 5 seconds and
cause UCSI initialization to fail with:

    ucsi_acpi USBC000:00: error -ETIMEDOUT: PPM init failed

Once UCSI init aborts, USB-C PD negotiation never completes, which in
turn blocks USB-C dock enumeration since the dock depends on a successful
PD contract.

Replace the hardcoded 5 * HZ with msecs_to_jiffies(UCSI_TIMEOUT_MS) so
that both communication paths share a single, consistent timeout value,
and future adjustments to UCSI_TIMEOUT_MS are picked up automatically.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=221740
Link: https://bugzilla.kernel.org/show_bug.cgi?id=2183790
Fixes: bf4f9ae1cb ("usb: typec: ucsi: increase timeout for PPM reset operations")
Cc: stable@vger.kernel.org
Signed-off-by: Huang Wei <huangwei@kylinos.cn>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Fedor Pchelkin <boddah8794@gmail.com>
Link: https://patch.msgid.link/20260805085725.389761-1-huangwei@kylinos.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-08-14 10:48:55 +09:00
..
atm Merge 7.2-rc7 into usb-next 2026-08-14 10:17:11 +09:00
c67x00 Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
cdns3 Merge 7.2-rc7 into usb-next 2026-08-14 10:17:11 +09:00
chipidea Merge 7.2-rc5 into usb-next 2026-07-27 08:40:53 +02:00
class Merge 7.2-rc3 into usb-next 2026-07-13 07:09:28 +02:00
common USB: ulpi: fix memory leak on registration failure 2026-06-25 15:11:27 +01:00
core Merge 7.2-rc7 into usb-next 2026-08-14 10:17:11 +09:00
dwc2 usb: dwc2: gadget: Exit partial power down state when changing USB pull-up 2026-08-14 10:48:41 +09:00
dwc3 usb: xhci: standardize multi bit-field macros 2026-08-14 10:26:41 +09:00
early usb: early: xhci-dbc: Fix early_ioremap leak 2025-07-07 11:04:46 +02:00
fotg210 usb: free iso schedules on failed submit 2026-07-08 13:30:38 +02:00
gadget usb: gadget: snps_udc_plat: clean up PHY on probe deferral 2026-08-14 10:48:50 +09:00
host usb: xhci: Handle bogus TRB pointers in Missed Service Error events 2026-08-14 10:26:41 +09:00
image Merge 7.0-rc4 into usb-next 2026-03-16 11:50:48 +01:00
isp1760 Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
misc Merge 7.2-rc7 into usb-next 2026-08-14 10:17:11 +09:00
mon Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
mtu3 Merge 7.2-rc3 into usb-next 2026-07-13 07:09:28 +02:00
musb Merge 7.2-rc5 into usb-next 2026-07-27 08:40:53 +02:00
phy USB: phy: fsl-usb: fix missing static keywords 2026-07-17 17:54:18 +02:00
renesas_usbhs usb: renesas_usbhs: Fix power-off ordering on unbind 2026-07-10 15:56:24 +02:00
roles usb: roles: get usb role switch from parent only for usb-b-connector 2026-03-11 16:22:22 +01:00
serial USB serial updates for 7.3-rc1 2026-08-14 10:25:23 +09:00
storage USB: storage: add NO_ATA_1X quirk for Longmai USB Key 2026-07-16 17:11:02 +02:00
typec usb: typec: ucsi: use UCSI_TIMEOUT_MS for sync command completion 2026-08-14 10:48:55 +09:00
usbip usbip: vudc: fix NULL deref in vep_dequeue() 2026-07-08 13:29:31 +02:00
Kconfig usb: pci-quirks: handle HAS_IOPORT dependency for AMD quirk 2023-10-02 16:19:12 +02:00
Makefile usb: cdns3: Add USBSSP platform driver support 2026-04-27 05:14:18 -06:00
usb-skeleton.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00