[PATCH 3/3] PCI: iproc: Display PCIe Link information
From: Srinath Mannam
Date: Thu Mar 26 2020 - 03:08:17 EST
Add more comprehensive information to show PCIe link speed and link
width to the console.
Signed-off-by: Srinath Mannam <srinath.mannam@xxxxxxxxxxxx>
---
drivers/pci/controller/pcie-iproc.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pcie-iproc.c b/drivers/pci/controller/pcie-iproc.c
index e7f0d58..ed41357 100644
--- a/drivers/pci/controller/pcie-iproc.c
+++ b/drivers/pci/controller/pcie-iproc.c
@@ -823,6 +823,8 @@ static int iproc_pcie_check_link(struct iproc_pcie *pcie)
#define PCI_TARGET_LINK_SPEED_MASK 0xf
#define PCI_TARGET_LINK_SPEED_GEN2 0x2
#define PCI_TARGET_LINK_SPEED_GEN1 0x1
+#define PCI_TARGET_LINK_WIDTH_MASK 0x3f
+#define PCI_TARGET_LINK_WIDTH_OFFSET 0x4
iproc_pci_raw_config_read32(pcie, 0,
IPROC_PCI_EXP_CAP + PCI_EXP_LNKCTL2,
4, &link_ctrl);
@@ -843,7 +845,14 @@ static int iproc_pcie_check_link(struct iproc_pcie *pcie)
}
}
- dev_info(dev, "link: %s\n", link_is_active ? "UP" : "DOWN");
+ if (link_is_active) {
+ dev_info(dev, "link UP @ Speed Gen-%d and width-x%d\n",
+ link_status & PCI_TARGET_LINK_SPEED_MASK,
+ (link_status >> PCI_TARGET_LINK_WIDTH_OFFSET) &
+ PCI_TARGET_LINK_WIDTH_MASK);
+ } else {
+ dev_info(dev, "link DOWN\n");
+ }
return link_is_active ? 0 : -ENODEV;
}
--
2.7.4