ice_ptp_wait_for_offsets(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ice_ptp_wait_for_offsets β€” Kernel API Manual, section 9 ✨

okay so bestie, we're looking at ice_ptp_wait_for_offsets from the Kernel API Manual (yes, section 9, we're fancy). buckle up, it's a good one 🫢


🌸 NAME 🌸

ice_ptp_wait_for_offsets β€” the lil function that checks whether your Tx and Rx offsets are actually, you know, valid πŸ‘€


⭐ SYNOPSIS ⭐

void ice_ptp_wait_for_offsets (struct kthread_work *work );

πŸŽ€ ARGUMENTS πŸŽ€

  • work β€” a pointer to the kthread_work structure for this task. that's the whole argument, she's lowkey low-maintenance πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the vibe: this function checks whether the hardware has finished measuring the Tx and Rx offset values β€” the ones used to configure and enable vernier timestamp calibration. like, has the hardware done its homework yet or not πŸ“

the way that it works: once the offset in either direction is measured, it configures the associated registers with the calibrated offset values and enables timestamping. and no cap, the Tx and Rx directions are configured independently, as soon as their associated offsets are known. so if Tx shows up first, Tx gets handled first. main character energy, no waiting around for the other one 😀

and the iconic part? this function reschedules itself until both Tx and Rx calibration have completed. she literally keeps her own group chat alive until everyone's answered. periodt πŸ”₯


πŸ’– SEE ALSO πŸ’–

the kernel file, bestie: ./drivers/net/ethernet/intel/ice/ice_ptp.c β€” go read it, iykyk 🧚

and now, the full squad (yes, all of them, i'm not skipping a single one, don't @ me):

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_port_phy_stop(9), ice_ptp_port_phy_restart(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, bestie! 🌈

this lil beauty lives in ./drivers/net/ethernet/intel/ice and it's dated October 2026 πŸ’œ go forth and calibrate those offsets, you absolute icon πŸ‘‘πŸ’…

πŸ“¦ where this page comes from