ice_dpll_pin...irection_set(9)
π
ice_dpll_pin...irection_set(9) π
okay bestie, quick vibe check: this is a page from the Kernel API Manual, and the star of the show is ice_dpll_pin...irection_set(9). It's short, it's sweet, and it's very specific. Let's get into it π«Ά
β¨ NAME β¨
ice_dpll_pin_sma_direction_set β the callback that handles setting the direction of an SMA pin. that's it, that's the whole job, and honestly? iconic of it π
π SYNOPSIS π
int ice_dpll_pin_sma_direction_set (const struct dpll_pin *pin , void
*pin_priv , const struct dpll_device *dpll , void *dpll_priv , enum
dpll_pin_direction direction , struct netlink_ext_ack *extack );
look at all those parameters, no cap, it's giving "I take my arguments seriously" π
πΈ ARGUMENTS πΈ
pinβ pointer to a pin. just a lil pointer, pointing at a pin πpin_privβ private data pointer that was passed on pin registration. it's the pin's personal lore, kept private πdpllβ the registered dpll pointer. yes, this one's actually registered, we checked β¨dpll_privβ private data pointer that was passed on dpll registration. the dpll's own private stash π«Άdirectionβ the requested pin direction, typed asenum dpll_pin_direction. this is the whole reason we're here πextackβ error reporting. it's giving "struct netlink_ext_ack" and it's here to carry the bad news if something goes wrong π
π¦ DESCRIPTION π¦
So this is a Dpll subsystem callback β big deal, lowkey. It's the handler for setting the direction of a SMA pin. Someone wants the direction changed, this function is the one who answers the call, main character energy π
no extra lore, no secret side quests. direction gets set. slay β¨
β CONTEXT β
It acquires and releases pf->dplls.lock.
so yeah. it grabs the lock, does its thing, and puts the lock back where it found it. lock etiquette: immaculate ππ
π₯ RETURN π₯
0β success π (the good ending)- negative β error π (the "we don't talk about it" ending)
that's literally the whole return contract, bestie. zero means we ate. negative means we did not π
π SEE ALSO π
Kernel file ./drivers/net/ethernet/intel/ice/ice_dpll.c and honestly the whole extended friend group:
enum ice_dpll_pin_type(9)ice_dpll_is_sw_pin(9)ice_dpll_is_reset(9)ice_dpll_pin_freq_set(9)ice_dpll_frequency_set(9)ice_dpll_input_frequency_set(9)ice_dpll_output_frequency_set(9)ice_dpll_frequency_get(9)ice_dpll_input_frequency_get(9)ice_dpll_output_frequency_get(9)ice_dpll_sw_pin_frequency_set(9)ice_dpll_sw_pin_frequency_get(9)ice_dpll_pin_enable(9)ice_dpll_pin_disable(9)ice_dpll_pin_store_state(9)ice_dpll_rclk_update_e825c(9)ice_dpll_rclk_update(9)ice_dpll_sw_pins_update(9)ice_dpll_pin_state_update(9)ice_dpll_hw_input_prio_set(9)ice_dpll_lock_status_get(9)ice_dpll_mode_get(9)ice_dpll_phase_offset_monitor_set(9)ice_dpll_phase_offset_monitor_get(9)ice_dpll_pin_state_set(9)ice_dpll_output_state_set(9)ice_dpll_input_state_set(9)ice_dpll_pin_state_get(9)ice_dpll_output_state_get(9)ice_dpll_input_state_get(9)ice_dpll_sw_pin_notify_peer(9)ice_dpll_sma_direction_set(9)ice_dpll_ufl_pin_state_set(9)ice_dpll_sw_pin_state_get(9)ice_dpll_sma_pin_state_set(9)ice_dpll_input_prio_get(9)ice_dpll_input_prio_set(9)ice_dpll_input_direction(9)ice_dpll_output_direction(9)ice_dpll_pin_sw_direction_get(9)ice_dpll_pin_phase_adjust_get(9)ice_dpll_pin_phase_adjust_set(9)ice_dpll_input_phase_adjust_set(9)ice_dpll_output_phase_adjust_set(9)ice_dpll_sw_phase_adjust_get(9)ice_dpll_sw_phase_adjust_set(9)ice_dpll_phase_offset_get(9)ice_dpll_synce_update_e825c(9)ice_dpll_output_esync_set(9)ice_dpll_output_esync_get(9)ice_dpll_input_esync_set(9)ice_dpll_input_esync_get(9)ice_dpll_sw_esync_set(9)ice_dpll_sw_esync_get(9)ice_dpll_input_ref_sync_get(9)ice_dpll_sw_input_ref_sync_get(9)ice_dpll_rclk_state_on_pin_set(9)ice_dpll_rclk_state_on_pin_get(9)ice_dpll_txclk_work(9)ice_dpll_txclk_state_on_dpll_set(9)ice_dpll_txclk_state_on_dpll_get(9)ice_generate_clock_id(9)ice_dpll_pin_ntf(9)ice_dpll_notify_changes(9)ice_dpll_is_pps_phase_monitor(9)ice_dpll_pins_notify_mask(9)ice_dpll_pps_update_phase_offsets(9)ice_dpll_update_state(9)ice_dpll_periodic_work(9)ice_dpll_init_ref_sync_inputs(9)ice_dpll_release_pins(9)ice_dpll_get_pins(9)ice_dpll_unregister_pins(9)ice_dpll_pin_ref_sync_register(9)ice_dpll_register_pins(9)ice_dpll_deinit_direct_pins(9)ice_dpll_init_direct_pins(9)ice_dpll_deinit_rclk_pin(9)ice_dpll_init_pin_common(9)ice_dpll_init_rclk_pin(9)ice_dpll_deinit_pins(9)ice_dpll_init_fwnode_pins(9)ice_dpll_init_pins_e825(9)ice_dpll_init_pins(9)ice_dpll_deinit_dpll(9)ice_dpll_init_dpll(9)ice_dpll_deinit_worker(9)ice_dpll_init_worker(9)ice_dpll_phase_range_set(9)ice_dpll_init_info_pins_generic(9)ice_dpll_init_info_direct_pins(9)ice_dpll_init_info_pin_on_pin_e825c(9)ice_dpll_init_info_rclk_pin(9)ice_dpll_init_info_sw_pins(9)ice_dpll_init_info_txclk_pins_e825c(9)ice_dpll_init_pins_info(9)ice_dpll_deinit_info(9)ice_dpll_init_info_e825c(9)ice_dpll_init_info(9)ice_dpll_deinit(9)ice_dpll_init_e825(9)ice_dpll_init_e810(9)
like I said. extended friend group. all of them invited to the group chat π
and that's the page! source vibes come from ./drivers/net/ethernet/intel/ice, dated October 2026, and we're closing out ice_dpll_pin...irection_set(9) with a little kiss on the forehead ππ go set some directions, 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