ice_ptp_create_clock(9)
π ice_ptp_create_clock(9) π
okay so bestie, welcome to the Kernel API Manual β yes that's the manual we're in, and yes this page is about one (1) little function that has main character energy despite being, like, twelve lines of docs π
β¨ NAME β¨
ice_ptp_create_clock β Create PTP clock device for userspace π
πΈ SYNOPSIS πΈ
long ice_ptp_create_clock (struct ice_pf *pf );
that's it. that's the whole vibe. one arg, one long coming back atcha π
π¦ ARGUMENTS π¦
pfβ the board private structure π like, the whole board's personal diary. it's astruct ice_pf *and it's the only thing you're passing in, so don't overthink it.
π DESCRIPTION π
so what does it do?? it creates a new PTP clock device β¨ that's the whole job. gen z work ethic: do one thing, do it well, go home.
but here's the thing β it only creates one if we don't already have one π like it's not out here making duplicates, it has boundaries, it's secure in itself.
- if it can't create one, it returns an error π
- if we already have a device, it returns success π«Ά no drama, no fuss, just vibes
it should be used by ice_ptp_init to create the clock initially, and β this is the important part, bestie β it prevents global resets from creating new clock devices π like a bouncer at the club, checking IDs so random resets don't sneak in and start making clocks everywhere.
ngl this is a "don't recreate what already exists" function and honestly? relatable. iconic. no notes πβ¨
π SEE ALSO π
Kernel file ./drivers/net/ethernet/intel/ice/ice_ptp.c π
and now, the friend group β literally the entire ice_ptp squad, present and accounted for π:
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_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_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)
like okay go off, that's the whole extended friend group, iykyk ππ
and that's the page, bestie!! π this lil writeup lives in the source tree at ./drivers/net/ethernet/intel/ice and it's dated October 2026 β so like, future-coded of it honestly π
π«Ά go forth and create exactly zero duplicate clocks β¨π
π¦ 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