Lines Matching +full:dw +full:- +full:pcie
1 // SPDX-License-Identifier: GPL-2.0
3 * PCIe TLP Log handling
17 * aer_tlp_log_len - Calculate AER Capability TLP Header/Prefix Log length
18 * @dev: PCIe device
30 dev->eetlp_prefix_max : 0); in aer_tlp_log_len()
35 * dpc_tlp_log_len - Calculate DPC RP PIO TLP Header/Prefix Log length
36 * @dev: PCIe device
43 if (dev->dpc_rp_log_size >= PCIE_STD_NUM_TLP_HEADERLOG + 1) in dpc_tlp_log_len()
44 return dev->dpc_rp_log_size - 1; in dpc_tlp_log_len()
46 return dev->dpc_rp_log_size; in dpc_tlp_log_len()
51 * pcie_read_tlp_log - read TLP Header Log
52 * @dev: PCIe device
69 if (tlp_len > ARRAY_SIZE(log->dw)) in pcie_read_tlp_log()
70 tlp_len = ARRAY_SIZE(log->dw); in pcie_read_tlp_log()
78 off = where2 + (i - PCIE_STD_NUM_TLP_HEADERLOG) * 4; in pcie_read_tlp_log()
80 ret = pci_read_config_dword(dev, off, &log->dw[i]); in pcie_read_tlp_log()
86 * Hard-code non-Flit mode to 4 DWORDs, for now. The exact length in pcie_read_tlp_log()
89 log->header_len = flit ? tlp_len : 4; in pcie_read_tlp_log()
90 log->flit = flit; in pcie_read_tlp_log()
95 #define EE_PREFIX_STR " E-E Prefixes:"
98 * pcie_print_tlp_log - Print TLP Header / Prefix Log contents
99 * @dev: PCIe device
108 /* EE_PREFIX_STR fits the extended DW space needed for the Flit mode */ in pcie_print_tlp_log()
114 log->dw[0], log->dw[1], log->dw[2], log->dw[3]); in pcie_print_tlp_log()
116 if (log->flit) { in pcie_print_tlp_log()
117 for (i = PCIE_STD_NUM_TLP_HEADERLOG; i < log->header_len; i++) { in pcie_print_tlp_log()
118 len += scnprintf(buf + len, sizeof(buf) - len, in pcie_print_tlp_log()
119 " %#010x", log->dw[i]); in pcie_print_tlp_log()
122 if (log->prefix[0]) in pcie_print_tlp_log()
123 len += scnprintf(buf + len, sizeof(buf) - len, in pcie_print_tlp_log()
125 for (i = 0; i < ARRAY_SIZE(log->prefix); i++) { in pcie_print_tlp_log()
126 if (!log->prefix[i]) in pcie_print_tlp_log()
128 len += scnprintf(buf + len, sizeof(buf) - len, in pcie_print_tlp_log()
129 " %#010x", log->prefix[i]); in pcie_print_tlp_log()
134 log->flit ? " (Flit)" : "", buf); in pcie_print_tlp_log()