STRUCT TI_SCI_MSG_PSIL_UNPAIR(9)
π struct ti_sci_msg_psil_unpair(9) β bestie's guide to the Kernel API Manual π
okay so picture this: it's a Kernel API Manual page, and it's all about struct ti_sci_msg_psil_unpair β literally the struct that unpairs a PSI-L source thread from a destination thread. no cap, that's the whole vibe. breaking up is hard but somebody's gotta do it πβ¨
π NAME
struct ti_sci_msg_psil_unpair β unpairs a PSI-L source thread from a destination thread. it's giving conscious uncoupling, kernel edition π¦
β¨ SYNOPSIS
struct ti_sci_msg_psil_unpair {
struct ti_sci_msg_hdr hdr;
u32 nav_id;
u32 src_thread;
u32 dst_thread;
};
look at her. four fields. flawless. no notes π
πΈ Members
hdrβ the Generic Header. every message's little passport, iconic behavior πnav_idβ the SoC Navigator Subsystem device ID whose PSI-L config proxy gets used to unpair the source and destination threads. it's the mutual friend who's handling the logistics π«Άsrc_threadβ the PSI-L source thread ID within the PSI-L System thread map. one half of the situationship.dst_threadβ the PSI-L destination thread ID within the PSI-L System thread map. and here's the tea: PSI-L destination threads start at index0x8000, and the request gets NACK'd if the destination thread is not greater than or equal to0x8000. so disrespect that boundary and you'll get left on read π
π₯ Description
UDMAP transmit channels that are mapped to source threads will have their TCHAN_THRD_ID register cleared if the unpairing is successful. clean slate, we love to see it π
UDMAP receive channels mapped to destination threads will have their RCHAN_THRD_ID register cleared if the unpairing is successful too. both sides moving on, growth π
request type is TI_SCI_MSG_RM_PSIL_UNPAIR, and the response is a generic ACK or NACK message. so like β either "slay, done" or "nope, blocked" π«
π SEE ALSO
all my besties in the kernel file ./drivers/firmware/ti_sci.h:
struct ti_sci_msg_hdr(9)struct ti_sci_msg_resp_version(9)struct ti_sci_msg_req_reboot(9)struct ti_sci_msg_resp_query_fw_caps(9)struct ti_sci_msg_req_set_device_state(9)struct ti_sci_msg_req_get_device_state(9)struct ti_sci_msg_resp_get_device_state(9)struct ti_sci_msg_req_set_device_resets(9)struct ti_sci_msg_req_set_clock_state(9)struct ti_sci_msg_req_get_clock_state(9)struct ti_sci_msg_resp_get_clock_state(9)struct ti_sci_msg_req_set_clock_parent(9)struct ti_sci_msg_req_get_clock_parent(9)struct ti_sci_msg_resp_get_clock_parent(9)struct ti_sci_msg_req_get_clock_num_parents(9)struct ti_sci_msg_resp_get_clock_num_parents(9)struct ti_sci_msg_req_query_clock_freq(9)struct ti_sci_msg_resp_query_clock_freq(9)struct ti_sci_msg_req_set_clock_freq(9)struct ti_sci_msg_req_get_clock_freq(9)struct ti_sci_msg_resp_get_clock_freq(9)struct ti_sci_msg_req_prepare_sleep(9)struct ti_sci_msg_req_set_io_isolation(9)struct ti_sci_msg_resp_lpm_wake_reason(9)struct ti_sci_msg_req_lpm_set_device_constraint(9)struct ti_sci_msg_req_lpm_set_latency_constraint(9)struct ti_sci_msg_req_get_resource_range(9)struct ti_sci_msg_resp_get_resource_range(9)struct ti_sci_msg_req_manage_irq(9)struct ti_sci_msg_rm_ring_cfg_req(9)struct ti_sci_msg_psil_pair(9)struct ti_sci_msg_udmap_rx_flow_cfg(9)struct rm_ti_sci_msg_udmap_rx_flow_opt_cfg(9)struct ti_sci_msg_rm_udmap_tx_ch_cfg_req(9)struct ti_sci_msg_rm_udmap_rx_ch_cfg_req(9)struct ti_sci_msg_rm_udmap_flow_cfg_req(9)struct ti_sci_msg_req_proc_request(9)struct ti_sci_msg_req_proc_release(9)struct ti_sci_msg_req_proc_handover(9)struct ti_sci_msg_req_set_config(9)struct ti_sci_msg_req_set_ctrl(9)struct ti_sci_msg_req_get_status(9)struct ti_sci_msg_resp_get_status(9)
β¨ that's the whole page, bestie β¨ this one lives in ./drivers/firmware, dated October 2026, and it's filed under struct ti_s..._psil_unpair(9) β go forth and unpair responsibly, mwah ππ
π¦ 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