[PATCH 4/8] lspci: Decode PCIe DevCtl2 End-to-End TLP Prefix Blocking

Bjorn Helgaas
2023-10-18T16:09:09Z

Decode the PCIe DevCtl2 End-to-End TLP Prefix Blocking bit. The
"EETLPPrefixBlk" format is analogous to the existing "EETLPPrefix" format
used for the corresponding DevCap2 bit.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
lib/header.h | 1 +
ls-caps.c | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/header.h b/lib/header.h
index c3a720f716b7..4869617641f1 100644
--- a/lib/header.h
+++ b/lib/header.h
@@ -909,6 +909,7 @@
#define PCI_EXP_DEVCTL2_EPR_REQ 0x0800 /* Emergency Power Reduction Request */
#define PCI_EXP_DEVCTL2_10BIT_TAG_REQ 0x1000 /* 10 Bit Tag Requester enabled */
#define PCI_EXP_DEVCTL2_OBFF(x) (((x) >> 13) & 3) /* OBFF enabled */
+#define PCI_EXP_DEVCTL2_EE_TLP_BLK 0x8000 /* End-End TLP Prefix Blocking */
#define PCI_EXP_DEVSTA2 0x2a /* Device Status */
#define PCI_EXP_LNKCAP2 0x2c /* Link Capabilities */
#define PCI_EXP_LNKCAP2_SPEED(x) (((x) >> 1) & 0x7f)
diff --git a/ls-caps.c b/ls-caps.c
index 19c59536f948..0d333d578407 100644
--- a/ls-caps.c
+++ b/ls-caps.c
@@ -1178,9 +1178,10 @@ static void cap_express_dev2(struct device *d, int where, int type)
FLAG(w, PCI_EXP_DEVCTL2_IDO_CMP_EN),
FLAG(w, PCI_EXP_DEVCTL2_LTR),
FLAG(w, PCI_EXP_DEVCTL2_EPR_REQ));
- printf("\t\t\t 10BitTagReq%c OBFF %s\n",
+ printf("\t\t\t 10BitTagReq%c OBFF %s, EETLPPrefixBlk%c\n",
FLAG(w, PCI_EXP_DEVCTL2_10BIT_TAG_REQ),
- cap_express_devctl2_obff(PCI_EXP_DEVCTL2_OBFF(w)));
+ cap_express_devctl2_obff(PCI_EXP_DEVCTL2_OBFF(w)),
+ FLAG(w, PCI_EXP_DEVCTL2_EE_TLP_BLK));
}

static const char *cap_express_link2_speed_cap(int vector)
--
2.34.1