STRUCT TI_SCI_MSG_REQ_LPM_SET_LATENCY_CONSTRAINT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct ti_sci_msg_req_lpm_set_latency_constraint πŸ’–

okay so bestie, we're in the Kernel API Manual and today's main character is struct ti_sci_msg_req_lpm_set_latency_constraint(9) β€” literally the request struct for TISCI_MSG_LPM_SET_LATENCY_CONSTRAINT. say it with me now: low power mode, but make it polite. πŸ¦‹


✨ NAME ✨

struct ti_sci_msg_req_lpm_set_latency_constraint β€” Request for TISCI_MSG_LPM_SET_LATENCY_CONSTRAINT.


πŸŽ€ SYNOPSIS πŸŽ€

struct ti_sci_msg_req_lpm_set_latency_constraint {
    struct ti_sci_msg_hdr hdr;
    u16 latency;
    u8 state;
    u32 rsvd;
 };

look at her. immaculate. no notes. πŸ’…


🌸 Members 🌸

  • hdr β€” the TISCI header, whose whole job is carrying the ACK/NAK flags back to the host. tiny but booked and busy.
  • latency β€” the maximum acceptable latency to wake up from low power mode, in milliseconds. and the tea is: the deeper the state, the higher the latency. so pick your number accordingly, bestie. 🫢
  • state β€” the desired state of the wakeup latency constraint: set or clear.
  • rsvd β€” reserved for future use. she's just vibing in the background, do not touch her. πŸ™ˆ

πŸ”₯ Description πŸ”₯

This message is what a host sends to set the wakeup latency from low power mode. It's giving "I have needs and I'm communicating them."

Timing check, because this part matters: this can be sent anytime after boot before the prepare sleep message, and it can also be sent after the current low power mode is exited. πŸ•

Any device can set a constraint on the low power mode that the SoC can enter. It allows configurable information to be easily shared from the application β€” because this is a non-secure message, so literally anyone can send it. no gatekeeping, no velvet rope. the constraint is communal. πŸ’€

By setting a wakeup latency constraint, the host ensures that the resume time from the selected low power mode will be less than the constraint value. that's the whole promise. that's the slay. ⭐

bestie reminder: it's a non-secure message that anyone can send β€” that's not a bug, that's just how this one is designed. πŸ‘‘

🧚 SEE ALSO 🧚

Kernel file ./drivers/firmware/ti_sci.h β€” and like, the entire extended universe of TISCI structs. we stan a connected ecosystem:

  • 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_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_psil_unpair(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)

okay that's the whole page, no cap, every single struct accounted for. 🫑

and now the lil sign-off: this one lives in ./drivers/firmware, it's dated October 2026, and yes, the title at the bottom is still struct ti_sci_msg_req_lpm_set_latency_constraint(9) because she contains multitudes. mwah. πŸ’œπŸŽ€βœ¨

πŸ“¦ where this page comes from