STRUCT TB_RETIMER(9)
β¨ struct tb_retimer(9) β¨
okay so this is a page from the Kernel API Manual, bestie β it's all about struct tb_retimer, which is literally the Thunderbolt retimer struct. yes THE retimer. we're doing kernel internals today and honestly? iconic. π
πΈ NAME πΈ
struct tb_retimer β Thunderbolt retimer, that's it, that's the whole vibe π¦
π SYNOPSIS π
struct tb_retimer {
struct device dev;
struct tb *tb;
u8 index;
u32 vendor;
u32 device;
struct tb_port *port;
struct tb_nvm *nvm;
bool no_nvm_upgrade;
u32 auth_status;
#ifdef CONFIG_USB4_DEBUGFS_MARGINING;
struct tb_margining *margining;
#endif;
};
like, look at her. gorgeous. every field accounted for. πβ¨
π Members π
devβ thestruct devicefor the retimer. it's the retimer's little identity card fr πͺͺtbβ pointer to the domain the retimer belongs to. where she lives, basically πindexβ the retimer index facing the router USB4 port. the numbering situation π’vendorβ vendor ID of the retimer. who made her πdeviceβ device ID of the retimer. which model she is π·οΈportβ pointer to the lane 0 adapter. yes lane 0 specifically, no cap π£οΈnvmβ pointer to the NVM if the retimer has one, andNULLotherwise. she may or may not have the nvm, it's giving mystery π«Άno_nvm_upgradeβ prevent NVM upgrade of this retimer. hard no on the upgrade, bestie π«auth_statusβ status of last NVM authentication. how'd the last auth go? this tells you πmarginingβ pointer to margining structure if enabled. only a thing when that debugfs config is turned on, iykyk π
tiny heads-up:marginingis wrapped in#ifdef CONFIG_USB4_DEBUGFS_MARGININGβ so if that config isn't set, that field is simply not there. don't go looking for it and then act surprised π
π SEE ALSO π
so many friends. she's got a whole friend group, we love a social queen π
- Kernel file
./drivers/thunderbolt/tb.h struct tb_nvm(9)enum tb_switch_tmu_mode(9)struct tb_switch_tmu(9)struct tb_switch(9)struct tb_bandwidth_group(9)struct tb_port(9)struct usb4_port(9)struct tb_path_hop(9)enum tb_path_port(9)struct tb_path(9)struct tb_cm_ops(9)tb_upstream_port(9)tb_is_upstream_port(9)tb_port_has_remote(9)tb_domain_event(9)tb_switch_for_each_port(9)tb_switch_downstream_port(9)tb_switch_depth(9)tb_switch_is_icm(9)tb_switch_tmu_is_configured(9)tb_switch_tmu_is_enabled(9)tb_switch_clx_is_enabled(9)tb_port_path_direction_downstream(9)tb_for_each_port_on_path(9)tb_for_each_upstream_port_on_path(9)tb_path_for_each_hop(9)tb_downstream_route(9)tb_xdomain_downstream_port(9)usb4_switch_version(9)tb_switch_is_usb4(9)enum usb4_sb_target(9)enum usb4_margin_sw_error_counter(9)struct usb4_port_margining_params(9)
and that's the whole page, bestie, we ate and left zero crumbs πβ¨ this one lives in ./drivers/thunderbolt, dated October 2026 β like, the far future, main character energy fr fr π°οΈπ love that for us. mwah π«Άπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms