[PATCH v5 1/2] PCI: dwc: Implement general suspend/resume functionality for L2/L3 transitions
Frank Li
Frank.li at nxp.com
Fri Jul 28 08:02:59 PDT 2023
On Fri, Jul 28, 2023 at 11:05:56AM +0200, Lorenzo Pieralisi wrote:
> On Mon, Jul 24, 2023 at 05:58:29PM -0400, Frank Li wrote:
> > Introduced helper function dw_pcie_get_ltssm to retrieve SMLH_LTSS_STATE.
> > Added API pme_turn_off and exit_from_l2 for managing L2/L3 state transitions.
>
> Commit logs should not use the past tense but the present tense.
>
> eg s/Introduced/Introduce
>
> Furthermore, read this post from Bjorn and follow it to the letter
> please:
>
> https://lore.kernel.org/linux-pci/20171026223701.GA25649@bhelgaas-glaptop.roam.corp.google.com
>
> >
> > Typical L2 entry workflow:
> >
> > 1. Transmit PME turn off signal to PCI devices and wait for PME_To_Ack.
> > 2. Await link entering L2_IDLE state.
> > 3. Transition Root complex to D3 state.
> >
> > Typical L2 exit workflow:
> >
> > 1. Transition Root complex to D0 state.
> > 2. Issue exit from L2 command.
> > 3. Reinitialize PCI host.
> > 4. Wait for link to become active.
>
> This does not explain what the patch does and why it does it.
>
> Are you describing the L2 entry/exit as implemented in the code ?
Yes.
How about below commit message:
Introduce helper function dw_pcie_get_ltssm to retrieve SMLH_LTSS_STATE.
Add callback .pme_turn_off and .exit_from_l2 for platform specific PME
handle.
Add common dw_pcie_suspend(resume)_noirq() API to avoid duplicated code
in dwc pci host controller platform driver.
Typical L2 entry workflow/dw_pcie_suspend_noirq()
1. Transmit PME turn off signal to PCI devices and wait for PME_To_Ack.
2. Await link entering L2_IDLE state.
3. Transition Root complex to D3 state.
Typical L2 exit workflow/dw_pcie_resume_noirq()
1. Transition Root complex to D0 state.
2. Issue exit from L2 command.
3. Reinitialize PCI host.
4. Wait for link to become active.
Frank
>
> >
> > Signed-off-by: Frank Li <Frank.Li at nxp.com>
> > ---
> > Change from v4 to v5:
More information about the linux-arm-kernel
mailing list