Re: Re: Re: [PATCH] bus: mhi: host: pci_generic: Update the default autosuspend_delay_ms as 5000ms
From: Loic Poulain
Date: Tue Oct 20 2026 - 07:43:10 EST
On Tue, Oct 20, 2026 at 12:31 PM Slark Xiao <slark_xiao@xxxxxxx> wrote:
>
>
>
> At 2026-10-20 15:27:43, "Loic Poulain" <loic.poulain@xxxxxxxxxxxxxxxx> wrote:
> >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
>
> Do you mean something like below?
>
> /* Add define of initial autosuspend_delay_ms to accommodate a potential 'late wake-event' issue */
> #define MHI_AUTOSUSPEND_DELAY_MS 5000
> ......
> - pm_runtime_set_autosuspend_delay(&pdev->dev, 2000);
> + pm_runtime_set_autosuspend_delay(&pdev->dev, MHI_AUTOSUSPEND_DELAY_MS);
Yes.
>
> Thanks
>
> >>
> >> 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
> >> >>