linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v8 0/4] PCI: vmd: Enable PCI PM's L1 substates of remapped PCIe Root Port and NVMe
@ 2024-07-19  7:52 Jian-Hong Pan
  2024-07-19  7:55 ` [PATCH v8 1/4] PCI: vmd: Set PCI devices to D0 before enable PCI PM's L1 substates Jian-Hong Pan
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Jian-Hong Pan @ 2024-07-19  7:52 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Johan Hovold, David Box, Ilpo Järvinen,
	Kuppuswamy Sathyanarayanan, Mika Westerberg, Damien Le Moal,
	Nirmal Patel, Jonathan Derrick, linux-pci, linux-kernel, linux,
	Jian-Hong Pan

Notice the VMD remapped PCIe Root Port and NVMe have PCI PM L1 substates
capability, but they are disabled originally.

Here is a failed example on ASUS B1400CEAE with enabled VMD:

10000:e0:06.0 PCI bridge: Intel Corporation 11th Gen Core Processor PCIe Controller (rev 01) (prog-if 00 [Normal decode])
    ...
    Capabilities: [200 v1] L1 PM Substates
        L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                  PortCommonModeRestoreTime=45us PortTPowerOnTime=50us
        L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1-
                   T_CommonMode=45us LTR1.2_Threshold=101376ns
        L1SubCtl2: T_PwrOn=50us

10000:e1:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN550 NVMe SSD (rev 01) (prog-if 02 [NVM Express])
    ...
    Capabilities: [900 v1] L1 PM Substates
        L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+
                  PortCommonModeRestoreTime=32us PortTPowerOnTime=10us
        L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1-
                   T_CommonMode=0us LTR1.2_Threshold=0ns
        L1SubCtl2: T_PwrOn=10us

According to "PCIe r6.0, sec 5.5.4", to config the link between the PCIe
Root Port and the child device correctly:
* Ensure both devices are in D0 before enabling PCI-PM L1 PM Substates.
* Ensure L1.2 parameters: Common_Mode_Restore_Times, T_POWER_ON and
  LTR_L1.2_THRESHOLD are programmed properly on both devices before enable
  bits for L1.2.

Prepare this series to fix that.

Jian-Hong Pan (4):
  PCI: vmd: Set PCI devices to D0 before enable PCI PM's L1 substates
  PCI/ASPM: Add notes about enabling PCI-PM L1SS to
    pci_enable_link_state(_locked)
  PCI/ASPM: Introduce aspm_get_l1ss_cap()
  PCI/ASPM: Fix L1.2 parameters when enable link state

 drivers/pci/controller/vmd.c | 13 +++++++----
 drivers/pci/pcie/aspm.c      | 44 ++++++++++++++++++++++++++++--------
 2 files changed, 44 insertions(+), 13 deletions(-)

-- 
2.45.2


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2024-09-23 13:44 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-19  7:52 [PATCH v8 0/4] PCI: vmd: Enable PCI PM's L1 substates of remapped PCIe Root Port and NVMe Jian-Hong Pan
2024-07-19  7:55 ` [PATCH v8 1/4] PCI: vmd: Set PCI devices to D0 before enable PCI PM's L1 substates Jian-Hong Pan
2024-07-19  7:57 ` [PATCH v8 2/4] PCI/ASPM: Add notes about enabling PCI-PM L1SS to pci_enable_link_state(_locked) Jian-Hong Pan
2024-07-19  7:59 ` [PATCH v8 3/4] PCI/ASPM: Introduce aspm_get_l1ss_cap() Jian-Hong Pan
2024-07-19  8:02 ` [PATCH v8 4/4] PCI/ASPM: Fix L1.2 parameters when enable link state Jian-Hong Pan
2024-08-02  8:24   ` Jian-Hong Pan
2024-08-05 18:24     ` Nirmal Patel
2024-08-07  4:23       ` Jian-Hong Pan
2024-08-05 20:26     ` David E. Box
2024-08-07 10:05       ` Jian-Hong Pan
2024-08-07 11:18         ` Ilpo Järvinen
2024-08-07 23:27           ` David E. Box
2024-08-08  9:48             ` Ilpo Järvinen
2024-08-12  8:18               ` Jian-Hong Pan
2024-09-02 15:43                 ` Ilpo Järvinen
2024-09-03 10:31                   ` Jian-Hong Pan
2024-09-23  8:41                   ` Jian-Hong Pan
2024-09-23 13:44                     ` Ilpo Järvinen
2024-09-03 15:17                 ` Nirmal Patel
2024-09-04  3:56                   ` Jian-Hong Pan
2024-09-20 16:03                 ` Nirmal Patel
2024-09-23 10:57                   ` Jian-Hong Pan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).