STRUCT USB4_PORT_MARGINING_PARAMS(9)
πΈ struct usb4_port_margining_params(9) πΈ
okay so this is from the Kernel API Manual bestie, and we're about to get deep into USB4 margining parameters π like this is the struct that holds all the little knobs for margin testing, and ngl she's lowkey iconic for it π
β¨ NAME β¨
struct usb4_port_margining_params β USB4 margining parameters, that's the whole vibe π¦
π SYNOPSIS π
struct usb4_port_margining_params {
enum usb4_margin_sw_error_counter error_counter;
u32 ber_level;
enum usb4_margining_lane lanes;
u32 voltage_time_offset;
bool optional_voltage_offset_range;
bool right_high;
bool upper_eye;
bool time;
};
like, that's her. that's the whole struct. no cap π
π Members π
okay so every single field gets her moment, periodt:
error_counterβ the error counter operation for software margining π« like that's what she's here forber_levelβ the current BER level contour value β (BER = bit error rate, and she's got a contour value)lanesβ the lanes to enable for the margining operation π¦ which ones are we turning on, bestievoltage_time_offsetβ the offset for voltage / time for software margining π that's the whole point of heroptional_voltage_offset_rangeβ enable the optional extended voltage range π₯ she's got range, literallyright_highβfalseif a left/low margin test is performed,trueif right/high πΈ so like, pick a sideupper_eyeβtrueif the margin test is done on the upper eye,falseif done on the lower eye ποΈβ¨ eye diagram momenttimeβtrueif time margining is used instead of voltage β° she can do either, she's flexible like that
fr fr though βright_high,upper_eye, andtimeare all booleans where the meaning flips depending on the value, so don't just assumetrue= "good". read the description, bestie π
π«Ά SEE ALSO π«Ά
okay this list is long but we do not skip a single one, iykyk π she's connected to the whole thunderbolt family:
Kernel file ./drivers/thunderbolt/tb.h β and also: 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_retimer(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)
likeβ¦ she knows everyone ππ
π§ sign-off π§
this little page lives in ./drivers/thunderbolt, and the version stamp is October 2026 π
so yeah, she's from the future, slay β and the title up top is struct usb4...ining_params(9) in case you forgot where you were π
go forth and margin, bestie β ate and left no crumbs πβ¨
π¦ 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