ice_ptp_init_tx_e82x(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– ice_ptp_init_tx_e82x β€” a Kernel API Manual moment πŸ’–

okay so bestie, we're in the kernel API manual today, and this one is literally the function that sets up Tx timestamp tracking. yes ma'am, timestamps. from the ./drivers/net/ethernet/intel/ice girlies. let's get into it 🫢


✨ NAME ✨

ice_ptp_init_tx_e82x β€” Initialize tracking for Tx timestamps


🌸 SYNOPSIS 🌸

int ice_ptp_init_tx_e82x (struct ice_pf *pf , struct ice_ptp_tx *tx , u8
port );

πŸŽ€ ARGUMENTS πŸŽ€

  • pf β€” Board private structure. yes the whole board's business lives in here πŸ’…
  • tx β€” the Tx tracking structure to initialize. this is the one we're setting up, main character energy fr fr
  • port β€” the port this structure tracks. one port, one tracker, that's the vibe πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the situation: this function initializes the Tx timestamp tracker for this port. iconic. but wait, there's lore πŸ‘€

For generic MAC devices, the timestamp block is shared for all ports in the same quad. shared!! like a group chat for registers 😭 so to avoid ports using the same timestamp index (which would be a whole mess, ngl), the function logically breaks the block of registers into chunks based on the port number. slay, no collisions, no drama ✨


⭐ RETURN ⭐

  • 0 on success πŸŽ‰
  • -ENOMEM when out of memory πŸ’€ (memory said "not today bestie")

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./drivers/net/ethernet/intel/ice/ice_ptp.c

and literally the entire extended universe, no cap:

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(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_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)

that's the whole friend group, go say hi πŸ’œ


mwah, that's the page πŸŽ€ this little gem lives in ./drivers/net/ethernet/intel/ice, dated October 2026, from the Kernel API Manual β€” go forth and timestamp your Tx like the icon you are πŸ’…βœ¨

πŸ“¦ where this page comes from