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

From: Loic Poulain

Date: Tue Oct 20 2026 - 03:33:03 EST


Hi Slark,

On Tue, Oct 20, 2026 at 5:20 AM Slark Xiao <slark_xiao@xxxxxxx> wrote:
>
>
> At 2026-10-19 15:41:27, "Loic Poulain" <loic.poulain@xxxxxxxxxxxxxxxx> wrote:
> >On Mon, Oct 19, 2026 at 7:52 AM Slark Xiao <slark_xiao@xxxxxxx> wrote:
> >>
> >> For some MHI devices in some specific scenario, the default value
> >> of autosuspend_delay_ms may not enough to handle last wake event.
> >> This may lead to some unexpected problems.
> >>
> >> Refer to the Qualcomm's Windows settings and we checked this with
> >> Quaclomm over case, Qualcomm recommend us to set this as 5000ms.
> >
> >Qualcomm
> >
> >> 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.
> >
> >This looks more like a workaround than a proper fix. It would be
> >helpful to describe the underlying issue, including the timing and
> >sequence of events that make this necessary. In principle, either the
> >device can be suspended at that point or it cannot. Relying on a
> >delayed suspend feels fragile and may end up masking the real problem.
> >
> Hi Loic,
> Honestly, Qualcomm has been analyzing for over 2 months and still hasn't
> identified the root cause.
>
> Actually I have explained the reasons behind the events to Mani in another
> thread, you can refer to https://lore.kernel.org/mhi/20260919095506.9570-1-slark_xiao@xxxxxxx/
>
> From Qualcomm's perspective, 2 seconds is not enough for their default design.
> They recommended us to update this value to 5 seconds and Mani checked this
> internally as well. So we decided to update this 5 seconds setting to all MHI devices.

Thanks. I'm really surprised we still don't have a more precise
understanding or description of the underlying issue. That said, I
think it's reasonable to proceed with this as an initial workaround.

Could you please send a v2 that introduces a define for the 5000 ms
timeout? It would also be helpful to add a comment explaining that
this value is required to accommodate the 'late wake-event issue'.

Regards,
Loic

>
> Thanks
> >>
> >> Fixes: d3800c1dce24 ("bus: mhi: pci_generic: Add support for runtime PM")
> >> Cc: stable@xxxxxxxxxxxxxxx
> >> Signed-off-by: Slark Xiao <slark_xiao@xxxxxxx>
> >> ---
> >> drivers/bus/mhi/host/pci_generic.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c
> >> index 7193a384cca4..40735beb46cb 100644
> >> --- a/drivers/bus/mhi/host/pci_generic.c
> >> +++ b/drivers/bus/mhi/host/pci_generic.c
> >> @@ -1483,7 +1483,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, 5000);
> >> pm_runtime_use_autosuspend(&pdev->dev);
> >> pm_runtime_mark_last_busy(&pdev->dev);
> >> pm_runtime_put_noidle(&pdev->dev);
> >> --
> >> 2.53.0
> >>