From: Martin Mares Date: Sun, 31 Jan 2010 17:40:18 +0000 (+0100) Subject: Minor improvements to decoding of the VC cap X-Git-Tag: v3.1.7~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d676f20d8161b7be7347b6990f6064fa3b171900;p=thirdparty%2Fpciutils.git Minor improvements to decoding of the VC cap Position of the PAT and size of its entries are now fully decoded. --- diff --git a/ls-ecaps.c b/ls-ecaps.c index fa3545f..ed10f72 100644 --- a/ls-ecaps.c +++ b/ls-ecaps.c @@ -239,23 +239,25 @@ cap_vc(struct device *d, int where) status = get_conf_word(d, where + PCI_VC_PORT_STATUS); evc_cnt = BITS(cr1, 0, 3); - printf("\t\tCaps:\tLPEVC=%d RefClk=%s PATEntrySize=%d\n", + printf("\t\tCaps:\tLPEVC=%d RefClk=%s PATEntryBits=%d\n", BITS(cr1, 4, 3), TABLE(ref_clocks, BITS(cr1, 8, 2), buf), - BITS(cr1, 10, 2)); + 1 << BITS(cr1, 10, 2)); - printf("\t\tArb:\t"); + printf("\t\tArb:"); for (i=0; i<8; i++) if (arb_selects[i][0] != '?' || cr2 & (1 << i)) - printf("%s%c ", arb_selects[i], FLAG(cr2, 1 << i)); + printf("%c%s%c", (i ? ' ' : '\t'), arb_selects[i], FLAG(cr2, 1 << i)); arb_table_pos = BITS(cr2, 24, 8); - printf("TableOffset=%x\n", arb_table_pos); - printf("\t\tCtrl:\tArbSelect=%s\n", TABLE(arb_selects, BITS(ctrl, 1, 3), buf)); + printf("\n\t\tCtrl:\tArbSelect=%s\n", TABLE(arb_selects, BITS(ctrl, 1, 3), buf)); printf("\t\tStatus:\tInProgress%c\n", FLAG(status, 1)); if (arb_table_pos) - printf("\t\tPort Arbitration Table \n"); + { + arb_table_pos = where + 16*arb_table_pos; + printf("\t\tPort Arbitration Table [%x] \n", arb_table_pos); + } for (i=0; i<=evc_cnt; i++) {