STRUCT TI_SCI_MSG_REQ_SET_DEVICE_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct ti_sci_msg_req_set_device_state(9) πŸŽ€

okay so bestie, welcome to the Kernel API Manual ✨ β€” this is the page for struct ti_sci_msg_req_set_device_state(9), and it's literally the whole "tell a device what vibe it should be in" message. let's get into it πŸ’…


🌸 NAME 🌸

struct ti_sci_msg_req_set_device_state β€” Set the desired state of the device 🫢


✨ SYNOPSIS ✨

struct ti_sci_msg_req_set_device_state {
  #define MSG_FLAG_DEVICE_WAKE_ENABLED    TI_SCI_MSG_FLAG(8);
  #define MSG_FLAG_DEVICE_RESET_ISO       TI_SCI_MSG_FLAG(9);
  #define MSG_FLAG_DEVICE_EXCLUSIVE       TI_SCI_MSG_FLAG(10);
    struct ti_sci_msg_hdr hdr;
    u32 id;
    u32 reserved;
  #define MSG_DEVICE_SW_STATE_AUTO_OFF    0;
  #define MSG_DEVICE_SW_STATE_RETENTION   1;
  #define MSG_DEVICE_SW_STATE_ON          2;
    u8 state;
 };

look at her. impeccable. no notes. πŸ‘‘


πŸ’– MEMBERS πŸ’–

  • hdr β€” the generic header 🧚 (everybody's got one, it's giving "hello, i'm a message")
  • id β€” Indicates which device to modify 🎯
  • reserved β€” Reserved space in message, must be 0 for backward compatibility πŸ‘€ don't be cute, leave it as 0
  • state β€” The desired state of the device. 🌈

πŸ”₯ DESCRIPTION πŸ”₯

Certain flags can also be set to alter the device state: πŸ’«

  • MSG_FLAG_DEVICE_WAKE_ENABLED β€” Configure the device to be a wake source. The meaning of this flag will vary slightly from device to device and from SoC to SoC 😭 but it generally allows the device to wake the SoC out of deep suspend states. ⭐
  • MSG_FLAG_DEVICE_RESET_ISO β€” Enable reset isolation for this device. πŸ›‘οΈ
  • MSG_FLAG_DEVICE_EXCLUSIVE β€” Claim this device exclusively. When passed with STATE_RETENTION or STATE_ON, it will claim the device exclusively. If another host already has this device set to STATE_RETENTION or STATE_ON, the message will fail. ❌ Once successful, other hosts attempting to set STATE_RETENTION or STATE_ON will fail. πŸ’€ like, it's your device now, no cap.

Request type is TI_SCI_MSG_SET_DEVICE_STATE, responded with a generic ACK/NACK message. βœ…/🚫 (the original "it's giving binary" moment)


πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/firmware/ti_sci.h β€” and the whole friend group πŸ‘‘:

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

and that's the page!! this came from ./drivers/firmware, dated October 2026, and the header up top was struct ti_sc...device_state(9) β€” yes the terminal truncates it, she's mysterious like that πŸ™ˆ ✨ stay hydrated, read your structs, mwah πŸ’œπŸ«Ά

πŸ“¦ where this page comes from