e1000_power_up_phy(9)
π e1000_power_up_phy(9) β the Kernel API Manual, bestie edition β¨
okay so welcome to the e1000_power_up_phy(9) page from the Kernel API Manual β yes that's the manual name, it's giving official π
β and honestly? this little function is so important and nobody talks about it. let's get into it π«Ά
β¨ NAME β¨
e1000_power_up_phy β literally just here to restore the link in case the phy was powered down π that's it. that's the whole job. no cap.
π SYNOPSIS π
void e1000_power_up_phy (struct e1000_adapter *adapter );
she takes one thing and gives you nothing back (a void, iconic, no return value, no drama) π
πΈ ARGUMENTS πΈ
adapterβ the address of the board private structure π¦ like, hand her the board's private struct and she'll know what to do with it, trust.
π DESCRIPTION π
okay so the whole vibe here: the phy can be powered down to save power and to turn off the link when the driver is unloaded and wake on lan is not enabled (among others). so this routine is the "bestie wake up, we're going back online" moment β
β οΈ THE BIG ONE, DO NOT SKIP: this routine MUST be followed by a call to e1000_reset π₯ and yes the original says it in all caps with three asterisks (**) around it, so you *know it's serious. not me warning you twice. it's literally in the middle of the sentence, that's main character energy for a caveat π
so: power the phy up with this, then immediately hit e1000_reset. periodt.
π§ SEE ALSO π§
the kernel file lives at ./drivers/net/ethernet/intel/e1000/e1000_main.c if you wanna go read the source like a real one π
and here's the whole friend group, every single one, no skips, iykyk:
e1000_get_hw_dev(9)e1000_init_module(9)e1000_exit_module(9)e1000_irq_disable(9)e1000_irq_enable(9)e1000_configure(9)e1000_is_need_ioport(9)e1000_init_hw_struct(9)e1000_probe(9)e1000_remove(9)e1000_sw_init(9)e1000_alloc_queues(9)e1000_open(9)e1000_close(9)e1000_check_64k_bound(9)e1000_setup_tx_resources(9)e1000_setup_all_tx_resources(9)e1000_configure_tx(9)e1000_setup_rx_resources(9)e1000_setup_all_rx_resources(9)e1000_setup_rctl(9)e1000_configure_rx(9)e1000_free_tx_resources(9)e1000_free_all_tx_resources(9)e1000_clean_tx_ring(9)e1000_clean_all_tx_rings(9)e1000_free_rx_resources(9)e1000_free_all_rx_resources(9)e1000_clean_rx_ring(9)e1000_clean_all_rx_rings(9)e1000_set_mac(9)e1000_set_rx_mode(9)e1000_update_phy_info_task(9)e1000_82547_tx_fifo_stall_task(9)e1000_watchdog(9)e1000_update_itr(9)e1000_tx_timeout(9)e1000_change_mtu(9)e1000_update_stats(9)e1000_intr(9)e1000_clean(9)e1000_clean_tx_irq(9)e1000_rx_checksum(9)e1000_consume_page(9)e1000_receive_skb(9)e1000_tbi_adjust_stats(9)e1000_clean_jumbo_rx_irq(9)e1000_clean_rx_irq(9)e1000_alloc_jumbo_rx_buffers(9)e1000_alloc_rx_buffers(9)e1000_smartspeed(9)e1000_ioctl(9)e1000_mii_ioctl(9)e1000_io_error_detected(9)e1000_io_slot_reset(9)e1000_io_resume(9)
π quick reminder bestie: this page ise1000_power_up_phy(9), from the Kernel API Manual, dated October 2026, and the source footer points at./drivers/net/ethernet/intel/e...β that's the manpage source/version line and the date, folded into this cute little sign-off instead of the boring footer bc we don't do boring here ππ
okay ily, go call e1000_reset right after this, 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