t3_phy_reset(9)
π t3_phy_reset(9) β or, "how to factory-reset a PHY block and make it look effortless"
okay so real talk, this page lives in the Kernel API Manual (that's the manual name, bestie, we're fancy now β¨) and it's all about one tiny function that goes bonk on a PHY block and resets it. short page, big main-character energy. let's get into it π
β¨ NAME β¨
t3_phy_reset β reset a PHY block π
πΈ SYNOPSIS πΈ
int t3_phy_reset (struct cphy *phy , int mmd , int wait );
three args, returns an int, no crumbs left behind. iconic behavior honestly π
π¦ ARGUMENTS π¦
phyβ the PHY we're operating on π«Ά like, the actual victim of the reset. the whole point.mmdβ the device address of the PHY block that's getting reset. yes, you have to know which block. no, it can't guess. πwaitβ how long to wait for the reset to finish, measured in 1ms increments. so like,waitof 5 = 5ms of chilling. β³
π DESCRIPTION π
so what does it actually do. it resets a PHY block, and then β optionally, if you asked nicely β it waits for that reset to complete. πβ¨
and now the part you need to remember, no cap:
mmdshould be0for 10/100/1000 PHYs- for 10G PHYs, pass the device address to reset
that's literally it. that's the whole vibe check. get your mmd right and you're slaying. get it wrong and, well... π
β οΈ heads up: pick the wrong mmd for your PHY type and you're not resetting the thing you think you're resetting. read the two bullets above again. i'll wait. π
π₯ SEE ALSO π₯
the extended universe, fr fr β this function does not exist alone and the manpage wants you to know it π
Kernel file ./drivers/net/ethernet/chelsio/cxgb3/t3_hw.ct3_wait_op_done_val(9)t3_write_regs(9)t3_set_reg_field(9)t3_read_indirect(9)t3_mc7_bd_read(9)t3_mdio_change_bits(9)t3_phy_advertise(9)t3_phy_advertise_fiber(9)t3_set_phy_speed_duplex(9)t3_seeprom_wp(9)get_vpd_params(9)sf1_read(9)sf1_write(9)flash_wait_op(9)t3_read_flash(9)t3_write_flash(9)t3_get_tp_version(9)t3_check_tpsram_version(9)t3_check_tpsram(9)t3_get_fw_version(9)t3_check_fw_version(9)t3_flash_erase_sectors(9)t3_load_fw(9)t3_cim_ctl_blk_read(9)t3_link_changed(9)t3_link_start(9)t3_set_vlan_accel(9)t3_handle_intr_status(9)t3_intr_enable(9)t3_intr_disable(9)t3_intr_clear(9)t3_port_intr_enable(9)t3_port_intr_disable(9)t3_port_intr_clear(9)t3_sge_write_context(9)clear_sge_ctxt(9)t3_sge_init_ecntxt(9)t3_sge_init_flcntxt(9)t3_sge_init_rspcntxt(9)t3_sge_init_cqcntxt(9)t3_sge_enable_ecntxt(9)t3_sge_disable_fl(9)t3_sge_disable_rspcntxt(9)t3_sge_disable_cqcntxt(9)t3_sge_cqcntxt_op(9)t3_config_rss(9)t3_tp_set_offload_mode(9)pm_num_pages(9)partition_mem(9)tp_set_timers(9)t3_tp_set_coalescing_size(9)t3_tp_set_max_rxsize(9)t3_load_mtus(9)t3_tp_get_mib_stats(9)t3_set_proto_sram(9)t3_config_sched(9)get_pci_mode(9)init_link_config(9)mc7_calc_size(9)
π and that's the whole page, bestie π
this little love letter ships from source <purple>./drivers/net/ethernet/chelsio...</purple> (they truncated it, not me π) and it's dated October 2026. go reset something responsibly. 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