ice_cpi_wait_ack(9)
π ice_cpi_wait_ack(9) β Kernel API Manual, bestie edition β¨
okay so you found yourself in the ice_cpi_wait_ack(9) page, welcome, come sit with me π«Ά this one's a little kernel helper from the Kernel API Manual and honestly it's giving "patient bestie waiting for a text back" energy, because that's literally what it does: it waits for a bit to flip. no cap.
β¨ NAME β¨
ice_cpi_wait_ack β Waits for the PHY.ACK bit to be asserted/deasserted
like, that's it. that's the whole gig. it waits. iconic behaviour honestly π
πΈ SYNOPSIS πΈ
int ice_cpi_wait_ack (struct ice_hw *hw , u8 phy , bool asserted , u32
*data );
yes the line break in the middle of u32 *data is exactly how the original is laid out, we do not fix, we do not editorialise, we copy verbatim π
π ARGUMENTS π
hwβ pointer to the HW struct. the main character of the whole operation fr frphyβ phy index of port the CPI action is taken on. gotta know which port we're doing this on πassertedβ desired state ofPHY.ACKbit. are we waiting for it to go up or go down? that's the vibe check πdataβ pointer to the user data wherePHY.datais stored. this is where the good stuff gets parked π
π¦ DESCRIPTION π¦
so what actually happens: this function checks if the PHY.ACK bit is asserted or deasserted, depending on the phase of the CPI handshake. it's phase-aware, it's context-sensitive, it's lowkey doing the most (affectionate) β¨
and if the 'asserted' state is required, the PHY command data is stored in the 'data' storage. so not only is it watching the bit, it's also tucking the payload away for you. multi-tasking queen π
π₯ RETURN π₯
0on success π- negative on error π
that's the whole return contract, no surprises, no plot twists.
π SEE ALSO π
the kernel file lives right here, go read the source bestie, it's free:
./drivers/net/ethernet/intel/ice/ice_cpi.c
and the whole CPI friend group, all of them, in order:
ice_cpi_get_dest_dev(9)ice_cpi_write_phy(9)ice_cpi_read_phy(9)ice_cpi_wait_req0_ack0(9)ice_cpi_req0(9)ice_cpi_exec_cmd(9)ice_cpi_phy_lock(9)ice_cpi_exec(9)ice_cpi_set_cmd(9)ice_cpi_ena_dis_clk_ref(9)
ngl, ice_cpi_wait_req0_ack0 and this function are basically siblings, if you're here you probably wanna peek at that one too π§
that's the page!! source is ./drivers/net/ethernet/intel/ice, dated October 2026, and it's signed off as ice_cpi_wait_ack(9) on the way out β stay hydrated, go assert some bits, ily πβ¨π
π¦ 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