STRUCT IOSM_PM(9)
π«Ά struct iosm_pm(9) β Power management instance π«Ά
okay so this is a page from the Kernel API Manual, section 9, and it's all about one lil struct that handles power management. bestie, it's giving "the main character of sleep/wake energy" and honestly? iconic. let's get into it π
β¨ NAME β¨
struct iosm_pm β the Power management instance. that's her. that's the whole vibe. π
πΈ SYNOPSIS πΈ
here's the struct, copied exactly, no cap, don't touch a single character:
struct iosm_pm {
struct iosm_pcie *pcie;
struct device *dev;
enum ipc_mem_host_pm_state host_pm_state;
unsigned long host_sleep_pend;
struct completion host_sleep_complete;
union ipc_pm_cond pm_cond;
enum ipc_mem_dev_pm_state ap_state;
enum ipc_mem_dev_pm_state cp_state;
u32 device_sleep_notification;
u8 pending_hpda_update:1;
};
look at all those fields. so organized. so structured. we love a type that knows itself π
π¦ Members π¦
bestie, meet the whole cast. every single one of them, no skipping, periodt:
pcieβ Pointer toiosm_pciestructure. literally the link to the PCIe side of things π«Άdevβ Pointer todevicestructure. the device's whole identity, right there.host_pm_stateβ PM states for host. that's the host's power-management mood ring πhost_sleep_pendβ Variable to indicate Host Sleep Pending. it's the "are we napping or not" flag πhost_sleep_completeβ Generic wait-for-completion used in case of Host Sleep. the "okay we're actually awake now" notification β¨pm_condβ Conditions for power management. the rules of the game.ap_stateβ Current power management state, the initial state isIPC_MEM_DEV_PM_ACTIVEeq.0. so yeah, she starts at0, that's the whole default, don't come for her.cp_stateβ PM State of CP.device_sleep_notificationβ last handleddevice_sleep_notfication. (yes that's spelled that way, i'm just the messenger π)pending_hpda_updateβ is a HPDA update pending? that's it. that's the question.u8 ... :1so it's literally a single bit doing its best π
ngl, "is a HPDA update pending?" as a description is highkey the most Gen Z thing in this whole file. a yes/no bit that just asks a question. we stan.
π SEE ALSO π
go read these next, bestie, they're all connected iykyk:
- Kernel file
./drivers/net/wwan/iosm/iosm_ipc_pm.h union ipc_pm_cond(9)enum ipc_mem_host_pm_state(9)enum ipc_mem_dev_pm_state(9)enum ipc_pm_unit(9)ipc_pm_init(9)ipc_pm_deinit(9)ipc_pm_dev_slp_notification(9)ipc_pm_set_s2idle_sleep(9)ipc_pm_prepare_host_sleep(9)ipc_pm_prepare_host_active(9)ipc_pm_wait_for_device_active(9)ipc_pm_signal_hpda_doorbell(9)ipc_pm_trigger(9)
like a whole friend group of functions fr fr π₯
and that's the page!! mwah π this one comes from ./drivers/net/wwan/iosm, dated October 2026, and it's filed under struct iosm_pm(9). take care of her, she manages power π§ββοΈβ¨
π¦ 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