STRUCT TI_SCI_RM_PSIL_OPS(9)
π struct ti_sci_rm_psil_ops(9) β Kernel API Manual, bestie edition π
okay so this is a page from the Kernel API Manual, and we're talking about struct ti_sci_rm_psil_ops β literally the PSI-L thread operations squad. sit down, grab a strawberry drink π, we're doing this.
β¨ NAME β¨
struct ti_sci_rm_psil_ops β PSI-L thread operations. that's it, that's the vibe. it's the little struct that holds the function pointers for pairing and unpairing threads. no cap. π¦
πΈ SYNOPSIS πΈ
here's the whole thing, character for character, because we do NOT play with source code:
struct ti_sci_rm_psil_ops {
int (*pair)(const struct ti_sci_handle *handle, u32 nav_id, u32
src_thread, u32 dst_thread);
int (*unpair)(const struct ti_sci_handle *handle, u32 nav_id, u32
src_thread, u32 dst_thread);
};
look at those two little function pointers. they're giving main character energy, honestly. pair and unpair. a whole duality. π«
π Members π
π pair
pair PSI-L source thread to a destination thread. iconic behavior, honestly.
and the details matter, so bestie listen up:
- If the
src_threadis mapped to UDMA tchan, the corresponding channel'sTCHAN_THRD_IDregister is updated. yes, updated. we're writing to registers today. π - If the
dst_threadis mapped to UDMA rchan, the corresponding channel'sRCHAN_THRD_IDregister is updated. same energy, different register. π«Ά
π unpair
unpair PSI-L source thread from a destination thread. the breakup arc we've all been waiting for π
- If the
src_threadis mapped to UDMA tchan, the corresponding channel'sTCHAN_THRD_IDregister is cleared. - If the
dst_threadis mapped to UDMA rchan, the corresponding channel'sRCHAN_THRD_IDregister is cleared.
so like... pair sets it, unpair clears it. it's giving "we were on a break" but make it register state. π₯
π SEE ALSO π
go read the kernel file ./include/linux/soc/ti/ti_sci_protocol.h β that's where all of this lives, iykyk π
and then the whole extended friend group, all of these, fr fr:
struct ti_sci_version_info(9)struct ti_sci_core_ops(9)struct ti_sci_dev_ops(9)struct ti_sci_clk_ops(9)struct ti_sci_pm_ops(9)struct ti_sci_resource_desc(9)struct ti_sci_rm_core_ops(9)struct ti_sci_rm_irq_ops(9)struct ti_sci_msg_rm_ring_cfg(9)struct ti_sci_rm_ringacc_ops(9)struct ti_sci_rm_udmap_ops(9)struct ti_sci_proc_ops(9)struct ti_sci_ops(9)struct ti_sci_handle(9)struct ti_sci_resource(9)
that's the whole group chat bestie, not one of them left on read. π
ok real talk β nothing on this page is dangerous or deprecated, it's just two function pointers and their register side effects. but you do need to know which thread maps to which channel, so read the registers carefully, mwah π
and that's the page!! π§ sign-off time: this little beauty comes from ./include/linux/soc/ti, dated October 2026, and yeah β it's still struct ti_sci_rm_psil_ops(9) at the bottom, periodt. πβ¨π
π¦ 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