ice_ptp_port_phy_restart(9)
π ice_ptp_port_phy_restart(9) β bestie's guide to the Kernel API Manual
okay so picture this: you're deep in the Kernel API Manual, you found a PHY that needs its timestamping situation sorted, and you open this page. slay, you're in the right place. this is ice_ptp_port_phy_restart, and she's the one who kicks the PHY timestamping block into gear. π
β¨ SYNOPSIS β¨
int ice_ptp_port_phy_restart (struct ice_ptp_port *ptp_port );
it returns an int, she takes one arg, and honestly? iconic behaviour. π
πΈ ARGUMENTS πΈ
ptp_portβ the PTP port whose PHY start is set. that's it, that's the whole vibe. she hands you the port, you hand her the port. π«Ά
π DESCRIPTION π
so what actually happens?? two things, bestie, and they're both important. β¨
first: she starts the PHY timestamping block. the block goes from "not it" to "it." π₯
second: she kicks off Vernier timestamping calibration. yes, Vernier, like the fancy measurement thing. she's calibrating. let her cook. π
and here's the lowkey important part β the vibe check. if the timestamping block can't be calibrated (for example, if the link is down), she doesn't just leave it hanging half-alive like some kind of chaos gremlin. instead she disables the timestamping block. no half-finished situationships here. it's either calibrated or it's off. periodt. π
ngl, "link is down" is the example the page gives for why calibration might fail β so if things look off, check your link first, bestie. π
π¦ SEE ALSO π¦
literally the whole ice_ptp extended universe, and we are obsessed. also, the source lives in the kernel file ./drivers/net/ethernet/intel/ice/ice_ptp.c β go say hi. π
ice_ptp_find_pin_idx(9)ice_ptp_cfg_tx_interrupt(9)ice_set_rx_tstamp(9)ice_ptp_disable_timestamp_mode(9)ice_ptp_restore_timestamp_mode(9)ice_ptp_read_src_clk_reg(9)ice_ptp_extend_32b_ts(9)ice_ptp_extend_40b_ts(9)ice_ptp_is_tx_tracker_up(9)ice_ptp_req_tx_single_tstamp(9)ice_ptp_complete_tx_single_tstamp(9)ice_ptp_process_tx_tstamp(9)ice_ptp_alloc_tx_tracker(9)ice_ptp_flush_tx_tracker(9)ice_ptp_mark_tx_tracker_stale(9)ice_ptp_flush_all_tx_tracker(9)ice_ptp_release_tx_tracker(9)ice_ptp_init_tx_e82x(9)ice_ptp_init_tx(9)ice_ptp_update_cached_phctime(9)ice_ptp_reset_cached_phctime(9)ice_ptp_write_init(9)ice_ptp_write_adj(9)ice_base_incval(9)ice_ptp_check_tx_fifo(9)ice_ptp_wait_for_offsets(9)ice_ptp_port_phy_stop(9)ice_ptp_link_change(9)ice_ptp_cfg_phy_interrupt(9)ice_ptp_reset_phy_timestamping(9)ice_ptp_restart_all_phy(9)ice_ptp_adjfine(9)ice_ptp_extts_event(9)ice_ptp_cfg_extts(9)ice_ptp_disable_all_extts(9)ice_ptp_enable_all_extts(9)ice_ptp_write_perout(9)ice_ptp_cfg_perout(9)ice_ptp_disable_all_perout(9)ice_ptp_enable_all_perout(9)ice_verify_pin(9)ice_ptp_gpio_enable(9)ice_ptp_gettimex64(9)ice_ptp_settime64(9)ice_ptp_adjtime_nonatomic(9)ice_ptp_adjtime(9)struct ice_crosststamp_cfg(9)struct ice_crosststamp_ctx(9)ice_capture_crosststamp(9)ice_ptp_getcrosststamp(9)ice_ptp_hwtstamp_get(9)ice_ptp_set_timestamp_mode(9)ice_ptp_hwtstamp_set(9)ice_ptp_get_rx_hwts(9)ice_ptp_setup_pin_cfg(9)ice_ptp_disable_pins(9)ice_ptp_parse_sdp_entries(9)ice_ptp_set_funcs_e82x(9)ice_ptp_set_funcs_e810(9)ice_ptp_set_funcs_e830(9)ice_ptp_set_caps(9)ice_ptp_create_clock(9)ice_ptp_request_ts(9)ice_ptp_ts_irq(9)ice_ptp_maybe_trigger_tx_interrupt(9)ice_ptp_queue_work(9)ice_ptp_prepare_rebuild_sec(9)ice_ptp_prepare_for_reset(9)ice_ptp_rebuild_owner(9)ice_ptp_rebuild(9)ice_ptp_clock_index(9)ice_ptp_init_owner(9)ice_ptp_init_work(9)ice_ptp_init_port(9)ice_ptp_init_tx_interrupt_mode(9)ice_ptp_init(9)ice_ptp_release(9)
π and that's the whole page!! no cap, she's short but she's got range. this lil beauty lives in ./drivers/net/ethernet/intel/ice, straight from October 2026, and the manpage itself is ice_ptp_port_phy_restart(9) from the Kernel API Manual. mwah π go calibrate something, 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