[Linux-kernel-mentees] [RFC PATCH v5 02/23] PCI: Add l1ss_cap and l1ss_cap_ptr to struct pci_dev
Saheed O. Bolarinwa
refactormyself at gmail.com
Sat Aug 22 20:03:37 UTC 2020
- Add l1ss_cap and l1ss_cap_ptr to struct pci_dev
- Compute the value of pci_dev.l1ss_cap and pci_dev.l1ss_cap_ptr
Signed-off-by: Saheed O. Bolarinwa <refactormyself at gmail.com>
---
drivers/pci/probe.c | 6 ++++++
include/linux/pci.h | 2 ++
2 files changed, 8 insertions(+)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 6cae7230f3b5..787ab6e831c7 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -2101,6 +2101,12 @@ static void pci_configure_ltr(struct pci_dev *dev)
if (!pci_is_pcie(dev))
return;
+ /* Read L1 PM substate capabilities */
+ dev->l1ss_cap_ptr = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_L1SS);
+ if (dev->l1ss_cap_ptr)
+ pci_read_config_dword(dev, dev->l1ss_cap_ptr + PCI_L1SS_CAP,
+ &dev->l1ss_cap);
+
pcie_capability_read_dword(dev, PCI_EXP_DEVCAP2, &cap);
if (!(cap & PCI_EXP_DEVCAP2_LTR))
return;
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 3d30d3650ac9..fa114c5d01e7 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -381,6 +381,8 @@ struct pci_dev {
struct pcie_link_state *link_state; /* ASPM link state */
unsigned int ltr_path:1; /* Latency Tolerance Reporting
supported from root to here */
+ int l1ss_cap_ptr; /* L1SS cap ptr, 0 if not supported */
+ u32 l1ss_cap; /* L1 PM substate Capabilities */
#endif
unsigned int eetlp_prefix_path:1; /* End-to-End TLP Prefix */
--
2.18.4
More information about the Linux-kernel-mentees
mailing list