Re: [PATCH v2] PCI: dwc: Fix resume failure if no EP is connected at some platforms

From: Krzysztof Wilczyński
Date: Thu Nov 07 2024 - 02:20:45 EST


Hello,

> > But I don't think you responded to the race question. What happens here?
> >
> > if (dw_pcie_get_ltssm(pci) > DW_PCIE_LTSSM_DETECT_ACT) {
> > --> link goes down here <--
> > pci->pp.ops->pme_turn_off(&pci->pp);
> >
> > You decide the LTSSM is active and the link is up. Then the link goes down.
> > Then you send PME_Turn_off. Now what?
> >
> > If it's safe to try to send PME_Turn_off regardless of whether the link is up or
> > down, there would be no need to test the LTSSM state.
> I made a local tests on i.MX95/i.MX8QM/i.MX8MP/i.MX8MM/i.MX8MQ, and
> confirm that it's safe to send PME_TURN_OFF although the link is down.
> You're right. It's no need to test LTSSM state here.
> So do the L2 poll listed above after PME_TURN_OFF is sent.
>
> Since the 6.13 merge window is almost closed.
> How about I prepare another Fix patch to do the following items for incoming
> 6.14?
> - Before sending PME_TURN_OFF, don't test the LTSSM stat.
> - Remove the L2 stat poll, after sending PME_TURN_OFF.

If the changes aren't too involved, then I would rather fix it or drop the
not needed code now, before we sent the Pull Request.

So, feel free to sent a small patch against the current branch, or simply
let me know how do you wish the current code to be changed, so I can do it
against the current branch.

Thank you!

Krzysztof