From: Bjorn Helgaas <helgaas@kernel.org>
To: Kenneth Crudup <kenny@panix.com>
Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>,
Vidya Sagar <vidyas@nvidia.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Andrea Righi <andrea.righi@canonical.com>,
You-Sheng Yang <vicamo.yang@canonical.com>,
linux-pm@vger.kernel.org, linux-pci@vger.kernel.org,
"David E. Box" <david.e.box@linux.intel.com>,
Nirmal Patel <nirmal.patel@linux.ntel.com>
Subject: Re: My AlderLake Dell (XPS-9320) needs these patches to get full standby/low-power modes
Date: Fri, 13 Dec 2024 10:43:35 -0600 [thread overview]
Message-ID: <20241213164335.GA3381091@bhelgaas> (raw)
In-Reply-To: <402b2e32-3b54-4e80-92fd-9237549ffa14@panix.com>
[+cc David, Nirmal, linux-pci]
On Thu, Dec 12, 2024 at 03:04:53PM -0800, Kenneth Crudup wrote:
> On 12/12/24 12:56, Bjorn Helgaas wrote:
> > On Wed, Dec 11, 2024 at 03:26:37PM -0800, Kenneth Crudup wrote:
> > > So we're on 6.13-rc2 and the patches are getting closer and
> > > closer, but they still need to be manually added.
> > >
> > > The good news is now only (variants of) "PCI/ASPM: Enable LTR
> > > for endpoints behind VMD" and "PCI/ASPM: Enable ASPM for links
> > > under VMD domain" are needed.
> ...
> https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/lunar/commit/?id=47c7bfd31514e7b54a1f830f7707297aebbb8679
This is "UBUNTU: SAUCE: PCI/ASPM: Enable LTR for endpoints behind
VMD", which writes PCI_LTR_MAX_SNOOP_LAT and PCI_LTR_MAX_NOSNOOP_LAT
for PCI_CLASS_STORAGE_EXPRESS devices directly below VMDs with Device
IDs 0x9a09, 0xa0b0, or 0xa0bc.
This looks equivalent in spirit to upstream
https://git.kernel.org/linus/f492edb40b54 ("PCI: vmd: Add quirk to
configure PCIe ASPM and LTR"), which writes PCI_LTR_MAX_SNOOP_LAT and
PCI_LTR_MAX_NOSNOOP_LAT for any kind of device below VMDs tagged with
VMD_FEATS_CLIENT, which includes 0x467f, 0x4c3d, 0x7d0b, 0x9a0b,
0xa77f, 0xad0b, 0xb06f, 0xb60b.
However, IDs 0x9a09, 0xa0b0, and 0xa0bc are NOT tagged with
VMD_FEATS_CLIENT. In fact, they're not included in vmd_ids[] at all,
so I'd be surprised if VMD worked for those devices unless BIOS set
up the VMD itself.
Maybe David or Nirmal can comment on this?
> https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/lunar/commit/?id=1a0102a08f206149d9abd56c2b28877c878b5526
This is "UBUNTU: SAUCE: PCI/ASPM: Enable ASPM for links under VMD
domain", which adds "link->aspm_default = ASPM_STATE_ALL" for device
IDs 0x9a09 and 0xa0b0.
This looks like it should also be handled by upstream f492edb40b54
("PCI: vmd: Add quirk to configure PCIe ASPM and LTR") [1], which adds
"pci_enable_link_state(pdev, PCIE_LINK_STATE_ALL)".
But again, the Device IDs mentioned in the Ubuntu commit are NOT
included in the upstream VMD_FEATS_CLIENT list.
> https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/lunar/commit/?id=154d48da2c57514e4b5dadc7b8c70a4edb550981
This is "UBUNTU: SAUCE: vmd: fixup bridge ASPM by driver name
instead", which applies the quirk that writes PCI_LTR_MAX_SNOOP_LAT
and PCI_LTR_MAX_NOSNOOP_LAT for PCI_CLASS_STORAGE_EXPRESS devices
below any VMD claimed by the "vmd" driver, not just VMDs with Device
IDs 0x9a09, 0xa0b0, or 0xa0bc.
I think the only thing that's missing is that the upstream vmd_ids[]
needs to be updated with some new VMD Device IDs that are tagged with
VMD_FEATS_CLIENT.
I don't know what the vmd_ids[] strategy is, but Kenneth, you might
try an upstream patch like the one below. If that resolves the
standby/low-power issues, maybe David or Nirmal can figure out the
"right" way to do this.
Bjorn
diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
index 9d9596947350..4de7ff3bbf23 100644
--- a/drivers/pci/controller/vmd.c
+++ b/drivers/pci/controller/vmd.c
@@ -1109,6 +1109,12 @@ static const struct pci_device_id vmd_ids[] = {
.driver_data = VMD_FEATS_CLIENT,},
{PCI_VDEVICE(INTEL, 0xb06f),
.driver_data = VMD_FEATS_CLIENT,},
+ {PCI_VDEVICE(INTEL, 0x9a09),
+ .driver_data = VMD_FEATS_CLIENT,},
+ {PCI_VDEVICE(INTEL, 0xa0b0),
+ .driver_data = VMD_FEATS_CLIENT,},
+ {PCI_VDEVICE(INTEL, 0xa0bc),
+ .driver_data = VMD_FEATS_CLIENT,},
{0,}
};
MODULE_DEVICE_TABLE(pci, vmd_ids);
next prev parent reply other threads:[~2024-12-13 16:43 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-04 17:13 My AlderLake Dell (XPS-9320) needs these patches to get full standby/low-power modes Kenneth R. Crudup
2023-11-06 18:11 ` Bjorn Helgaas
2023-11-07 11:15 ` Mika Westerberg
2023-11-16 20:10 ` David E. Box
2023-11-16 23:18 ` Bjorn Helgaas
2023-11-16 23:27 ` Matthew Garrett
2023-11-18 0:21 ` David E. Box
2023-12-21 1:19 ` David E. Box
2023-12-27 0:03 ` Bjorn Helgaas
2024-05-13 5:23 ` Kenneth R. Crudup
2023-11-08 15:44 ` Kenneth R. Crudup
2023-11-08 11:45 ` Kai-Heng Feng
2023-11-08 15:46 ` Kenneth R. Crudup
2024-03-12 2:37 ` Kenneth R. Crudup
2024-03-21 10:12 ` Kai-Heng Feng
2024-07-15 18:27 ` Kenneth Crudup
2024-07-17 1:59 ` Kai-Heng Feng
2024-07-17 3:39 ` Kenneth Crudup
2024-07-17 4:40 ` Kenneth Crudup
2024-07-17 23:46 ` Kenneth Crudup
2024-12-11 23:26 ` Kenneth Crudup
2024-12-12 20:56 ` Bjorn Helgaas
2024-12-12 23:04 ` Kenneth Crudup
2024-12-12 23:13 ` Kenneth Crudup
2024-12-13 16:43 ` Bjorn Helgaas [this message]
2024-12-13 19:48 ` Kenneth Crudup
2024-12-13 20:27 ` Kenneth Crudup
2024-12-13 22:26 ` Kenneth Crudup
2024-12-13 22:33 ` Kenneth Crudup
2024-12-13 23:02 ` Bjorn Helgaas
2024-12-19 16:25 ` David E. Box
2024-12-19 18:17 ` Kenneth Crudup
2024-12-19 19:52 ` David E. Box
2024-12-19 20:37 ` Kenneth Crudup
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241213164335.GA3381091@bhelgaas \
--to=helgaas@kernel.org \
--cc=andrea.righi@canonical.com \
--cc=bhelgaas@google.com \
--cc=david.e.box@linux.intel.com \
--cc=kai.heng.feng@canonical.com \
--cc=kenny@panix.com \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=nirmal.patel@linux.ntel.com \
--cc=vicamo.yang@canonical.com \
--cc=vidyas@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.