STRUCT MXL862XX_XPCS_PCS_LINK_UP(9)
β¨ NAME β¨
struct mxl862xx_xpcs_pcs_link_up β literally just the PCS link-up parameters, bestie π
(also hi, welcome to the Kernel API Manual, you're gonna do great π«Ά)
πΈ SYNOPSIS πΈ
struct mxl862xx_xpcs_pcs_link_up {
__le16 mode;
__le16 speed;
__le16 result;
};
okay so that's the whole struct, it's giving tiny but mighty β¨
π Members π
modeβ the packed input parameters, and you're gonna wanna look atMXL862XX_XPCS_LU_*for the deets. Inside it:port_idis the XPCS port index, and it's0-3(no cap, that's the range fr).interfaceis the PCS interface mode (MXL862XX_XPCS_IF_*).duplexis the duplex mode (MXL862XX_XPCS_DUPLEX_*).usx_lane_modeis the USX lane mode β USXGMII only, ignored otherwise, and it'sMXL862XX_XPCS_USX_*. Andusx_subport(0-3) selects the sub-port for QUSXGMII and QSGMII (yes, despite the name π) and is ignored otherwise, periodt.speedβ the resolved speed, in Mbit/s ποΈresultβ the firmware result.0on success,<0is errno. simple as that π
π¦ Description π¦
So this bad boy gets called once per link-up event, right β but only after the host has already resolved the line-side speed/duplex. And where does that come from? One of three places, iykyk:
- from the PHY's
read_status - from a preceding PCS
get-state - or from a fixed-link description
main character energy for real π
π SEE ALSO π
The kernel file is ./drivers/net/dsa/mxl862xx/mxl862xx-api.h β that's the home base π and here's the whole friend group:
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_state(9)struct mxl862xx_xpcs_pcs_disable(9)struct mxl862xx_xpcs_an_restart(9)
okay that's the whole page, go forth and slay πβ¨
sign-off szn: this one lives at ./drivers/net/dsa/mxl862xx π, dated October 2026 πΈ, and it's the struct mxl86..._pcs_link_up(9) page β mwah, catch you on the next one bestie ππ
π¦ 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