• Gil Fine's avatar
    thunderbolt: Add debugfs interface · 54e41810
    Gil Fine authored
    This adds debugfs interface that can be used for debugging possible
    issues in hardware/software. It exposes router and adapter config spaces
    through files like this:
    
      /sys/kernel/debug/thunderbolt/<DEVICE>/regs
      /sys/kernel/debug/thunderbolt/<DEVICE>/<PORT1>/regs
      /sys/kernel/debug/thunderbolt/<DEVICE>/<PORT1>/path
      /sys/kernel/debug/thunderbolt/<DEVICE>/<PORT1>/counters
      /sys/kernel/debug/thunderbolt/<DEVICE>/<PORT2>/regs
      /sys/kernel/debug/thunderbolt/<DEVICE>/<PORT2>/path
      /sys/kernel/debug/thunderbolt/<DEVICE>/<PORT2>/counters
      ...
    
    The "regs" is either the router or port configuration space register
    dump. The "path" is the port path configuration space and "counters" is
    the optional counters configuration space.
    
    These files contains one register per line so it should be easy to use
    normal filtering tools to find the registers of interest if needed.
    
    The router and adapter regs file becomes writable when
    CONFIG_USB4_DEBUGFS_WRITE is enabled (which is not supposed to be done
    in production systems) and in this case the developer can write "offset
    value" lines there to modify the hardware directly. For convenience this
    also supports the long format the read side produces (but ignores the
    additional fields). The counters file can be written even when
    CONFIG_USB4_DEBUGFS_WRITE is not enabled and it is only used to clear
    the counter values.
    Signed-off-by: default avatarGil Fine <gil.fine@intel.com>
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    54e41810
switch.c 67.7 KB