Re: [PATCH v4 3/3] usb: xhci: plat: Facilitate using autosuspend for xhci plat devices

From: Krishna Kurapati
Date: Wed Aug 13 2025 - 02:50:10 EST




On 8/13/2025 11:46 AM, Peter Chen wrote:
On Tue, Aug 12, 2025 at 1:58 PM Krishna Kurapati
<krishna.kurapati@xxxxxxxxxxxxxxxx> wrote:

Allow autosuspend to be used by xhci plat device. For Qualcomm SoCs,
when in host mode, it is intended that the controller goes to suspend
state to save power and wait for interrupts from connected peripheral
to wake it up. This is particularly used in cases where a HID or Audio
device is connected. In such scenarios, the usb controller can enter
auto suspend and resume action after getting interrupts from the
connected device.

Signed-off-by: Krishna Kurapati <krishna.kurapati@xxxxxxxxxxxxxxxx>
---
drivers/usb/host/xhci-plat.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index 5eb51797de32..dd57ffedcaa2 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -171,6 +171,7 @@ int xhci_plat_probe(struct platform_device *pdev, struct device *sysdev, const s
return ret;

pm_runtime_set_active(&pdev->dev);
+ pm_runtime_use_autosuspend(&pdev->dev);
pm_runtime_enable(&pdev->dev);
pm_runtime_get_noresume(&pdev->dev);


There is an xhci quirk XHCI_DEFAULT_PM_RUNTIME_ALLOW for it, try to use it.


Hi Peter,

I see it being used only in xhci-pci.c.

In xhci-plat, I intended to only allow usage of autosuspend and let userspace decide whether to use it or not (echo (auto or on) > control).

Hence I only did use_autosuspend() instead of doing runtime_allow.

Regards,
Krishna,