Re: [PATCH v2] bus: mhi: host: pci_generic: Update the default autosuspend_delay_ms as 5000ms

From: Val Packett

Date: Wed Oct 21 2026 - 01:27:22 EST



On 10/20/26 11:40 PM, Slark Xiao wrote:
For some MHI devices in some specific scenario, the default value
of autosuspend_delay_ms may not enough to handle last wake event.
Missing verb.. may not *be* enough
This may lead to some unexpected problems.
Sounds vague, are there any examples of the problems? A short description of a concrete error message or something would be nice.
Refer to the Qualcomm's Windows settings and we checked this with
Quaclomm over case, Qualcomm recommend us to set this as 5000ms.

spelliiiiing. Quaclomm? :)

(also "over case" sounds odd)

Qualcomm also suggests us to update this for all MHI devices.
Since this setting has affected some existed kernel versions, it's
better to be applied to stable version.
Please leave the "meta" stuff about where the commit applies outside of the commit message.
Fixes: d3800c1dce24 ("bus: mhi: pci_generic: Add support for runtime PM")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Slark Xiao <slark_xiao@xxxxxxx>
---
v2: define a autosuspend delay timeout and explain the reason
---
drivers/bus/mhi/host/pci_generic.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c
index 7193a384cca4..1f52542794d7 100644
--- a/drivers/bus/mhi/host/pci_generic.c
+++ b/drivers/bus/mhi/host/pci_generic.c
@@ -21,6 +21,9 @@
#define MHI_POST_RESET_DELAY_MS 2000
+/* Add define of initial autosuspend_delay_ms to accommodate a potential 'late wake-event' issue */

Not a very necessary comment, but if you do add it, please don't write things like "Add define of". This *is* the define, we're looking at it..

Also, it's not "initial" if it's not a tunable or anything, it's just *the* delay value.

+#define MHI_AUTOSUSPEND_DELAY_MS 5000
+
#define HEALTH_CHECK_PERIOD (HZ * 2)
/* PCI VID definitions */
@@ -1483,7 +1486,7 @@ static int mhi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
/* Allow runtime suspend only if both PME from D3Hot and M3 are supported */
if (pci_pme_capable(pdev, PCI_D3hot) && !(info->no_m3)) {
- pm_runtime_set_autosuspend_delay(&pdev->dev, 2000);
+ pm_runtime_set_autosuspend_delay(&pdev->dev, MHI_AUTOSUSPEND_DELAY_MS);
pm_runtime_use_autosuspend(&pdev->dev);
pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_noidle(&pdev->dev);


Thanks,
~val