i40e_aq_set_...register_ext(9)
π i40e_aq_set_phy_register_ext(9) β bestie edition πΈ
okay so this is a page from the Kernel API Manual, section 9, and it's about one very specific little function. her name is i40e_aq_set_phy_register_ext and she's giving "I write to the external PHY register" main character energy. no cap. β¨
π NAME π
i40e_aq_set_phy_register_ext β literally just here to write the external PHY register. that's it, that's the whole job. π
π¦ SYNOPSIS π¦
int i40e_aq_set_phy_register_ext (struct i40e_hw *hw , u8 phy_select ,
u8 dev_addr , bool page_change , bool set_mdio , u8 mdio_num , u32
reg_addr , u32 reg_val , struct i40e_asq_cmd_details *cmd_details );
look at all those args. she has a LOT going on and honestly? respect. π
β¨ ARGUMENTS β¨
hwβ pointer to thehwstruct. your home base, your main character struct, the whole vibe. πphy_selectβ selects which phy should be accessed. picking favorites, basically, but for hardware. πββοΈdev_addrβ the PHY device address. where your device lives, iykyk. πpage_changeβ flag that says whether the phy page should be updated.truemeans yes bestie we're flipping pages,falsemeans we're staying put. πset_mdioβ use the MDIO I/F number specified bymdio_num. like, "use THIS one," not whatever default. π―mdio_numβ the MDIO I/F number itself. the actual number. the digits. π’reg_addrβ PHY register address. where the register is chillin'. π‘reg_valβ the new register value. the fresh content we're writing in there. π₯cmd_detailsβ pointer to command details structure orNULL. optional, like a little accessory. can beNULL, no pressure. π«Ά
π DESCRIPTION π
Write the external PHY register.
that's the whole description. short, sweet, iconic, ate. π
β NOTE β
in common cases the MDIO I/F number should not be changed β that's literally why you may use the simple wrapper i40e_aq_set_phy_register instead. she's the low-effort version of this function and sometimes that's exactly what you need, ngl. π§
reminder bestie: don't be out here changing mdio_num for no reason. common cases = leave it alone. π
πΈ SEE ALSO πΈ
also go look at the Kernel file ./drivers/net/ethernet/intel/i40e/i40e_common.c β that's where the actual sauce lives. π
and here's the entire friend group, all section 9, all invited to the group chat:
i40e_set_mac_type(9)i40e_debug_aq(9)i40e_check_asq_alive(9)i40e_aq_queue_shutdown(9)i40e_aq_get_set_rss_lut(9)i40e_aq_get_rss_lut(9)i40e_aq_set_rss_lut(9)i40e_aq_get_set_rss_key(9)i40e_aq_get_rss_key(9)i40e_aq_set_rss_key(9)i40e_init_shared_code(9)i40e_aq_mac_address_read(9)i40e_aq_mac_address_write(9)i40e_get_mac_addr(9)i40e_get_port_mac_addr(9)i40e_pre_tx_queue_cfg(9)i40e_get_pba_string(9)i40e_get_media_type(9)i40e_poll_globr(9)i40e_pf_reset(9)i40e_clear_hw(9)i40e_clear_pxe_mode(9)i40e_led_is_mine(9)i40e_led_get(9)i40e_led_set(9)i40e_aq_get_phy_capabilities(9)i40e_aq_set_phy_config(9)i40e_set_fc(9)i40e_aq_set_mac_config(9)i40e_aq_clear_pxe_mode(9)i40e_aq_set_link_restart_an(9)i40e_aq_get_link_info(9)i40e_aq_set_phy_int_mask(9)i40e_aq_set_mac_loopback(9)i40e_aq_set_phy_debug(9)i40e_aq_add_vsi(9)i40e_aq_set_default_vsi(9)i40e_aq_clear_default_vsi(9)i40e_aq_set_vsi_unicast_promiscuous(9)i40e_aq_set_vsi_multicast_promiscuous(9)i40e_aq_set_vsi_mc_promisc_on_vlan(9)i40e_aq_set_vsi_uc_promisc_on_vlan(9)i40e_aq_set_vsi_bc_promisc_on_vlan(9)i40e_aq_set_vsi_broadcast(9)i40e_aq_get_vsi_params(9)i40e_aq_update_vsi_params(9)i40e_aq_get_switch_config(9)i40e_aq_set_switch_config(9)i40e_aq_get_firmware_version(9)i40e_aq_send_driver_version(9)i40e_get_link_status(9)i40e_update_link_info(9)i40e_aq_add_veb(9)i40e_aq_get_veb_parameters(9)i40e_prepare_add_macvlan(9)i40e_aq_add_macvlan(9)i40e_aq_add_macvlan_v2(9)i40e_aq_remove_macvlan(9)i40e_aq_remove_macvlan_v2(9)i40e_aq_send_msg_to_vf(9)i40e_aq_debug_read_register(9)i40e_aq_debug_write_register(9)i40e_aq_request_resource(9)i40e_aq_release_resource(9)i40e_aq_read_nvm(9)i40e_aq_erase_nvm(9)i40e_parse_discover_capabilities(9)i40e_aq_discover_capabilities(9)i40e_aq_update_nvm(9)i40e_aq_get_lldp_mib(9)i40e_aq_set_lldp_mib(9)i40e_aq_cfg_lldp_mib_change_event(9)i40e_aq_stop_lldp(9)i40e_aq_start_lldp(9)i40e_aq_set_dcb_parameters(9)i40e_aq_get_cee_dcb_config(9)i40e_aq_add_udp_tunnel(9)i40e_aq_del_udp_tunnel(9)i40e_aq_delete_element(9)i40e_aq_dcb_updated(9)i40e_aq_tx_sched_cmd(9)i40e_aq_config_vsi_bw_limit(9)i40e_aq_config_vsi_tc_bw(9)i40e_aq_config_switch_comp_ets(9)i40e_aq_config_switch_comp_bw_config(9)i40e_aq_query_vsi_bw_config(9)i40e_aq_query_vsi_ets_sla_config(9)i40e_aq_query_switch_comp_ets_config(9)i40e_aq_query_port_ets_config(9)i40e_aq_query_switch_comp_bw_config(9)i40e_validate_filter_settings(9)i40e_set_filter_control(9)i40e_aq_add_rem_control_packet_filter(9)i40e_add_filter_to_drop_tx_flow_control_frames(9)i40e_aq_alternate_read(9)i40e_aq_suspend_port_tx(9)i40e_aq_resume_port_tx(9)i40e_set_pci_config_data(9)i40e_aq_debug_dump(9)i40e_read_bw_from_alt_ram(9)i40e_aq_configure_partition_bw(9)i40e_read_phy_register_clause22(9)i40e_write_phy_register_clause22(9)i40e_read_phy_register_clause45(9)i40e_write_phy_register_clause45(9)i40e_get_phy_address(9)i40e_led_get_reg(9)i40e_led_set_reg(9)i40e_led_get_phy(9)i40e_led_set_phy(9)i40e_aq_rx_ctl_read_register(9)i40e_read_rx_ctl(9)i40e_aq_rx_ctl_write_register(9)i40e_write_rx_ctl(9)i40e_mdio_if_number_selection(9)i40e_aq_get_phy_register_ext(9)i40e_aq_write_ddp(9)i40e_aq_get_ddp_list(9)i40e_find_segment_in_package(9)i40e_ddp_exec_aq_section(9)i40e_validate_profile(9)i40e_write_profile(9)i40e_rollback_profile(9)i40e_aq_add_cloud_filters(9)i40e_aq_add_cloud_filters_bb(9)i40e_aq_rem_cloud_filters(9)i40e_aq_rem_cloud_filters_bb(9)
like, that's the whole tl;dr of the i40e universe. obsessed. π
and that's the page, bestie! brought to you by ./drivers/net/ethernet/intel/i40e, vintage October 2026, filed under i40e_aq_set_...register_ext(9) β take care of her, she's iconic. π«Άβ¨π
π¦ 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