STRUCT MXL862XX_XPCS_PCS_STATE(9)
π struct mxl862xx_xpcs_pcs_state(9) β a Kernel API Manual moment
okay bestie, welcome to the Kernel API Manual, and today's main character is struct mxl862xx_xpcs_pcs_state β literally the PCS link state struct. it's giving "small struct, big job" energy and we're obsessed π
β¨ NAME β¨
struct mxl862xx_xpcs_pcs_state β PCS link state. yep, that's it, that's the whole vibe. no cap.
β¨ SYNOPSIS β¨
struct mxl862xx_xpcs_pcs_state {
__le32 mode;
__le16 speed;
union mxl862xx_xpcs_an_word lpa;
};
three fields. compact. iconic. let's get into it π₯
β¨ Members β¨
modeβ the multitasker of the group fr fr. it's packed input parameters and firmware status all in one, seeMXL862XX_XPCS_ST_*. here's the split, bestie: the host writesport_id(the XPCS port index,0-3),interface(MXL862XX_XPCS_IF_*),usx_lane_mode(MXL862XX_XPCS_USX_*) andusx_subport(0-3). then the firmware fills inlink,an_complete,duplex(MXL862XX_XPCS_DUPLEX_*),pcs_fault,pause(bit 0 symmetric, bit 1 asymmetric),lp_eee_capandlp_eee_cs_cap. so it's like a two-way group chat: you send, firmware replies πspeedβ resolved speed in Mbit/s. it's an output, so it comes back to you, not the other way around π¦lpaβ the Link partner ability word, also an output. same union asunion mxl862xx_xpcs_an_word, and the host picks the member based on theinterfacefield. iykyk πΈ
β¨ SEE ALSO β¨
okay this is the part where the manpage goes full "let me introduce you to my entire friend group" π and we're not skipping a single one, because every single reference matters:
in the kernel file ./drivers/net/dsa/mxl862xx/mxl862xx-api.h you'll find:
struct mdio_relay_data(9)struct mxl862xx_register_mod(9)enum mxl862xx_mac_table_filter(9)struct mxl862xx_mac_table_add(9)struct mxl862xx_mac_table_remove(9)struct mxl862xx_mac_table_read(9)struct mxl862xx_mac_table_query(9)enum mxl862xx_mac_clear_type(9)struct mxl862xx_mac_table_clear(9)enum mxl862xx_age_timer(9)struct mxl862xx_bridge_alloc(9)enum mxl862xx_bridge_config_mask(9)enum mxl862xx_bridge_port_egress_meter(9)struct mxl862xx_qos_meter_cfg(9)enum mxl862xx_bridge_forward_mode(9)struct mxl862xx_bridge_config(9)struct mxl862xx_bridge_port_alloc(9)enum mxl862xx_bridge_port_config_mask(9)enum mxl862xx_color_marking_mode(9)enum mxl862xx_color_remarking_mode(9)enum mxl862xx_pmapper_mapping_mode(9)struct mxl862xx_pmapper(9)struct mxl862xx_bridge_port_config(9)struct mxl862xx_cfg(9)enum mxl862xx_extended_vlan_filter_type(9)enum mxl862xx_extended_vlan_filter_tpid(9)enum mxl862xx_extended_vlan_filter_dei(9)enum mxl862xx_extended_vlan_treatment_remove_tag(9)enum mxl862xx_extended_vlan_treatment_priority(9)enum mxl862xx_extended_vlan_treatment_vid(9)enum mxl862xx_extended_vlan_treatment_tpid(9)enum mxl862xx_extended_vlan_treatment_dei(9)enum mxl862xx_extended_vlan_4_tpid_mode(9)enum mxl862xx_extended_vlan_filter_ethertype(9)struct mxl862xx_extendedvlan_filter_vlan(9)struct mxl862xx_extendedvlan_filter(9)struct mxl862xx_extendedvlan_treatment_vlan(9)struct mxl862xx_extendedvlan_treatment(9)struct mxl862xx_extendedvlan_alloc(9)struct mxl862xx_extendedvlan_config(9)enum mxl862xx_vlan_filter_tci_mask(9)struct mxl862xx_vlanfilter_alloc(9)struct mxl862xx_vlanfilter_config(9)enum mxl862xx_ss_sp_tag_mask(9)enum mxl862xx_ss_sp_tag_rx(9)enum mxl862xx_ss_sp_tag_tx(9)enum mxl862xx_ss_sp_tag_rx_pen(9)struct mxl862xx_ss_sp_tag(9)enum mxl862xx_logical_port_mode(9)struct mxl862xx_ctp_port_assignment(9)enum mxl862xx_stp_port_state(9)struct mxl862xx_stp_port_cfg(9)struct mxl862xx_sys_fw_image_version(9)enum mxl862xx_port_type(9)enum mxl862xx_rmon_port_type(9)struct mxl862xx_rmon_port_cnt(9)union mxl862xx_xpcs_an_word(9)enum mxl862xx_xpcs_loopback_mode(9)struct mxl862xx_xpcs_pcs_cfg(9)struct mxl862xx_xpcs_pcs_disable(9)struct mxl862xx_xpcs_an_restart(9)struct mxl862xx_xpcs_pcs_link_up(9)
that's the whole squad, no one left behind π«Ά
lowkey a reminder that mode is doing double duty β host writes some fields in, firmware writes others back. don't get it twisted π
that's the page bestie, go forth and slay your PCS link state π
signed, sealed, delivered: source ./drivers/net/dsa/mxl862xx, dated October 2026, and yeah β it's still struct mxl862xx_xpcs_pcs_state(9) at the end of the day. periodt. πβ
π¦ 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