ice_dpll_txclk_work(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ice_dpll_txclk_work β€” the kernel API manual, bestie edition πŸŽ€

okay so this is ice_dpll_txclk_work(9) from the Kernel API Manual and honestly? she's a little worker bee with main character energy. let's get into it 🐝✨


✨ NAME ✨

ice_dpll_txclk_work β€” applies a pending TX reference clock change πŸ’–

like, the switch you asked for earlier? yeah, this is the part that actually goes and does it. no cap.


πŸ¦‹ SYNOPSIS πŸ¦‹

void ice_dpll_txclk_work (struct work_struct *work );

that's it. one argument. she's lowkey minimalist about it. πŸ’…


🌸 ARGUMENTS 🌸

  • work β€” a work_struct that's embedded in struct ice_dplls. that's the whole thing, that's the vibe check. it's not some random work struct, it lives inside the ice_dplls struct, iykyk 🫢

πŸ‘‘ DESCRIPTION πŸ‘‘

okay so picture this: earlier, somebody queued up a TX reference clock switch request through the DPLL TXCLK pin set callback. this worker? it's the one who actually executes that outstanding request. she shows up, she does the job, she leaves ✨

and here's the important part β€” she performs only the operational part of the switch. that means she issues the necessary firmware commands to request a new TX reference clock selection (think: triggering an AN restart πŸ”). that's her whole contribution.

what she does NOT do is verify whether the requested clock was ultimately accepted by the hardware. nope, not her job, not her problem, she's just the messenger fr fr πŸ’€

all the heavy lifting verification stuff happens later, after link-up, over in ice_txclk_update_and_notify. that's where you get:

  • hardware verification βœ…
  • software state reconciliation βœ…
  • pin state notification βœ…
  • TXC DPLL lock-status updates βœ…

so like… don't @ her about hardware confirmation. she literally doesn't do that. πŸ™ˆ


πŸ”₯ CONTEXT πŸ”₯

  • Runs in process context on pf->dplls.wq and may sleep 😴 β€” yes bestie, she can sleep, it's fine, she's allowed
  • Serializes access to shared TXCLK state using pf->dplls.lock πŸ”’ β€” no racing, no chaos, we stay locked and loaded

🧚 SEE ALSO 🧚

okay this list is long long, so buckle up buttercup 🌈 everything here is in the kernel file ./drivers/net/ethernet/intel/ice/ice_dpll.c, plus the enum and all the friends:

see? told you it was a whole friend group πŸ˜­πŸ’œ


and that's the tea, bestie πŸ“ this little page came from ./drivers/net/ethernet/intel/ice and it's dated October 2026 β€” remember it fondly, she ate and left no crumbs πŸ‘‘βœ¨πŸ’…

πŸ“¦ where this page comes from