STRUCT SCU_AFE_REGISTERS(9)
π NAME π
struct scu_afe_registers β AFE Regsiters
(ok so bestie, yes, the source really does spell it "Regsiters" and not "Registers" β that typo is canon, we're keeping it exactly as-is, no cap π
this is from the Kernel API Manual, struct scu_afe_registers(9), and she's iconic for it)
β¨ SYNOPSIS β¨
Like, here's the whole vibe, character for character, no notes:
struct scu_afe_registers {
u32 afe_bias_control;
u32 reserved_0004;
u32 afe_pll_control0;
u32 afe_pll_control1;
u32 afe_pll_control2;
u32 afe_common_block_status;
u32 reserved_18_7c[0x1a];
u32 afe_pmsn_master_control0;
u32 afe_pmsn_master_control1;
u32 afe_pmsn_master_control2;
u32 reserved_008c_00fc[0x1D];
u32 afe_dfx_master_control0;
u32 afe_dfx_master_control1;
u32 afe_dfx_dcl_control;
u32 afe_dfx_digital_monitor_control;
u32 afe_dfx_analog_p_monitor_control;
u32 afe_dfx_analog_n_monitor_control;
u32 afe_dfx_ntl_status;
u32 afe_dfx_fifo_status0;
u32 afe_dfx_fifo_status1;
u32 afe_dfx_master_pattern_control;
u32 afe_dfx_p0_control;
u32 afe_dfx_p0_data[32];
u32 reserved_01ac;
u32 afe_dfx_p0_instruction[24];
u32 reserved_0210;
u32 afe_dfx_p1_control;
u32 afe_dfx_p1_data[16];
u32 reserved_0258_029c[0x12];
u32 afe_dfx_p1_instruction[8];
u32 reserved_02c0_02fc[0x10];
u32 afe_dfx_tx_pmsn_control;
u32 afe_dfx_rx_pmsn_control;
u32 reserved_0308;
u32 afe_dfx_noa_control0;
u32 afe_dfx_noa_control1;
u32 afe_dfx_noa_control2;
u32 afe_dfx_noa_control3;
u32 afe_dfx_noa_control4;
u32 afe_dfx_noa_control5;
u32 afe_dfx_noa_control6;
u32 afe_dfx_noa_control7;
u32 reserved_032c_07fc[0x135];
struct scu_afe_transceiver scu_afe_xcvr[4];
u32 reserved_0c00_0ffc[0x0100];
};
ngl this is a lot of u32s and the way the reserved_* fields are named after their own hex addresses? main character energy honestly π note the capitalization inconsistency too β reserved_18_7c[0x1a] vs reserved_008c_00fc[0x1D] β we love her, we don't fix her π
π«Ά MEMBERS π«Ά
Okay so this is lowkey the funniest part: the Members section is empty in the source. Like, nothing. A whole struct with this many fields and the docs just β¨ vibed β¨ right past the member descriptions. So there's nothing to list here β that's not me skipping it, bestie, that's genuinely all there is π
π SEE ALSO π
Everything lives in the kernel file ./drivers/scsi/isci/registers.h, and here's the whole squad you should go read next:
struct scu_viit_entry(9)struct scu_iit_entry(9)struct smu_registers(9)struct scu_sdma_registers(9)struct scu_transport_layer_registers(9)struct scu_link_layer_registers(9)struct scu_sgpio_registers(9)struct scu_port_task_scheduler_registers(9)struct scu_port_task_scheduler_group_registers(9)struct transport_link_layer_pair(9)struct scu_peg_registers(9)struct scu_registers(9)
real talk for a sec: the original page gives you the layout and literally nothing else β no per-field explanations, no semantics, no caveats. So don't go assuming what any of these registers do, because this manpage fr fr does not say. π
okay that's the whole thing, slay π this cutie came out of ./drivers/scsi/isci, dated October 2026 β go forth and read your hex offsets responsibly, bestie, 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