ishtp_cl_es...h_connection(9)
π ishtp_cl_establish_connection(9) β a Kernel API Manual moment
okay so bestie, welcome to the Kernel API Manual β¨ you're literally about to read ishtp_cl_es...h_connection(9) (yes the header abbreviates it like that, don't come for me) and honestly? it's giving "small helper function, big main character energy" π₯
π NAME
ishtp_cl_establish_connection β establishing a connection with the firmware, but make it a whole personality π«Ά
β¨ SYNOPSIS
int ishtp_cl_establish_connection (struct ishtp_cl *cl , const guid_t
*uuid , int tx_size , int rx_size , bool reset );
that's the whole vibe, one function call, five arguments, no cap π
π ARGUMENTS
clβ your client device instance, the star of the show πuuidβ the uuid of the client we're out here searching for πtx_sizeβ TX ring buffer size, aka how much room the transmit side gets π€rx_sizeβ RX ring buffer size, same deal but for receiving π₯resetβtrueif you're calling this to reset the connection, otherwise it's for the first connection, iykyk πΈ
π¦ DESCRIPTION
so this is a helper function for the client driver to build a connection with the firmware π«Ά it's literally doing the intro work so your driver doesn't have to.
if it's the first time connecting to the firmware, set reset to false β then this function will link the client to the bus, find the client id, and send a connect request to the firmware. iconic behavior honestly β¨
if it's called for a reset handler, like where the client lost connection after a firmware reset, set reset to true β then this function will reinit the client state and establish the connection again π and here's the cute part: in this case, this function reuses the current client structure and ring buffers, specifically to avoid allocation failure and memory fragments π§ she's efficient, she's considerate, she recycles π
π₯ RETURN
0β successful connection with the firmware, slay π- an error code β on failure π (that's it, that's the whole return contract, periodt)
π SEE ALSO
the kernel file lives right here:
./drivers/hid/intel-ish-hid/ishtp/client.c
and here's the whole friend group, all referenced, no one left out π«Ά
ishtp_read_list_flush(9)ishtp_cl_flush_queues(9)ishtp_cl_init(9)ishtp_cl_allocate(9)ishtp_cl_free(9)ishtp_cl_link(9)ishtp_cl_unlink(9)ishtp_cl_disconnect(9)ishtp_cl_is_other_connecting(9)ishtp_cl_connect_to_fw(9)ishtp_cl_connect(9)ishtp_cl_destroy_connection(9)ishtp_cl_read_start(9)ishtp_cl_send(9)ishtp_cl_read_complete(9)ipc_tx_send(9)ishtp_cl_send_msg_ipc(9)ishtp_cl_send_msg_dma(9)ishtp_cl_send_msg(9)recv_ishtp_cl_msg(9)recv_ishtp_cl_msg_dma(9)
π real talk though: if you're resetting, passresetastrueand let her reuse the buffers β don't be out here fighting allocation failures for no reason bestie π
β okay that's the page!! sourced straight from ./drivers/hid/intel-ish-hid/ishtp, dated October 2026, and signed off by your favorite manual, ishtp_cl_es...h_connection(9) π bye bestie, go establish some connections π
π¦ 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