diff options
| author | Anurag <anurag@intel.com> | 2026-08-27 17:18:49 -0700 |
|---|---|---|
| committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2026-09-24 06:44:04 +0200 |
| commit | 5ef3b5a4ea78da6ffdf32bcfe7517d4b2860f339 (patch) | |
| tree | 3242d9aa834bedf780a28d7875e7354226417e38 /tools/perf/scripts/python | |
| parent | d224aacc8cf333700257fe0936f701848c2ea1b8 (diff) | |
| download | linux-next-5ef3b5a4ea78da6ffdf32bcfe7517d4b2860f339.tar.gz linux-next-5ef3b5a4ea78da6ffdf32bcfe7517d4b2860f339.zip | |
thunderbolt: Extract per-lane extended error counters in software margining
USB4 defines two error counter formats for software margining:
- Standard counters (USB4 v1): 4-bit per-lane values in DW0.
- Extended counters (USB4 v2): 16-bit per-lane values split across
DW0 (lower 4 bits) and DW1-DW3 (upper 12 bits).
The existing debugfs logic only reads DW0 when checking for errors,
which works correctly for standard error counters but only captures
the lower 4 bits, missing the 12 MSBs if extended error counter is
supported.
Read and combine the full counter values from all result dwords
before evaluating whether errors occurred on any lane.
When running software margining with "all lanes", determine which
Rx lanes are actually active and only check those:
- ASYM_RX: RX0, RX1, RX2
- ASYM_TX: RX0
- Symmetric: RX0, RX1
Refactor the error counter extraction into a helper function to
improve readability.
Signed-off-by: Anurag <anurag@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
