We are reading wrong size(word) for this cap, since: RootSta has: PCI_EXP_RTSTA_PME_STATUS 0x00010000 /* PME Status */ PCI_EXP_RTSTA_PME_PENDING 0x00020000 /* PME is Pending */ Signed-off-by: Jeffy Chen <jeffy.chen@xxxxxxxxxxxxxx> --- Changes in v2: Sorry, DevCtl2/LnkCtl2 are correct, remove wrong modifies for them... ls-caps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ls-caps.c b/ls-caps.c index 0ca46fb..d4aebc8 100644 --- a/ls-caps.c +++ b/ls-caps.c @@ -879,7 +879,7 @@ static void cap_express_root(struct device *d, int where) printf("\t\tRootCap: CRSVisible%c\n", FLAG(w, PCI_EXP_RTCAP_CRSVIS)); - w = get_conf_word(d, where + PCI_EXP_RTSTA); + w = get_conf_long(d, where + PCI_EXP_RTSTA); printf("\t\tRootSta: PME ReqID %04x, PMEStatus%c PMEPending%c\n", w & PCI_EXP_RTSTA_PME_REQID, FLAG(w, PCI_EXP_RTSTA_PME_STATUS), -- 2.1.4