From dcb1f4fa24489fe3ae00f521a85b954d0e870ee7 Mon Sep 17 00:00:00 2001 From: AxxzyWasTaken Date: Tue, 3 Nov 2026 17:24:26 +0000 Subject: [PATCH] usb: dwc3: apple: Let a never-plugged T6041 port runtime-suspend erikwb's T8132 change lets a port that has not seen a cable yet suspend, with runtime PM held by the glue until the first core probe. On the M4 Max (T6041, apple,t6040-dwc3 ports) idle runtime PM already applies once a core has probed, but a never-plugged port reports runtime PM unsupported and keeps its ATCn_USB domain on. Take the same path there. Signed-off-by: AxxzyWasTaken --- drivers/usb/dwc3/dwc3-apple.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/usb/dwc3/dwc3-apple.c b/drivers/usb/dwc3/dwc3-apple.c index c11d299840d80..6b384e35aeff6 100644 --- a/drivers/usb/dwc3/dwc3-apple.c +++ b/drivers/usb/dwc3/dwc3-apple.c @@ -926,10 +926,11 @@ static int dwc3_apple_probe(struct platform_device *pdev) /* * Until the first cable there is no core to keep powered: let the controller * runtime-suspend, and its DARTs with it, so that its power domain can drop. - * Tested on T8132 only. + * Tested on T8132; on the T6041 (M4 Max) the never-plugged ports are the usual case. */ if (appledwc->idle_rpm && !appledwc->fixed_hub && - of_device_is_compatible(dev->of_node, "apple,t8132-dwc3")) { + (of_device_is_compatible(dev->of_node, "apple,t8132-dwc3") || + of_machine_is_compatible("apple,t6041"))) { pm_runtime_set_active(dev); pm_runtime_enable(dev); appledwc->pre_core_rpm = true;