ssam_controller_suspend(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ NAME

ssam_controller_suspend β€” bestie, this is literally the "go the heck to sleep" button for your Surface controller ✨

(oh and hi, you're reading the Kernel API Manual page for ssam_controller_suspend(9) β€” welcome to the group chat πŸ’–)


πŸŽ€ SYNOPSIS

int ssam_controller_suspend (struct ssam_controller *ctrl);

πŸ¦‹ ARGUMENTS

  • ctrl β€” the controller you're about to tuck into bed πŸ›Œ like, this one, the one you're suspending. no other controller. just her.

πŸ’« DESCRIPTION

okay so what this does is marks the controller as suspended. that's the whole vibe. it flips the little "she's asleep" flag πŸ’€

but β€” and I need you to hear me on this β€” display-off and D0-exit notifications have to be sent manually before you transition the controller into the suspended state via this function. the function does not do it for you. it will not hold your hand. you gotta send those yourself first, then call this. iykyk πŸ™ˆ

if you wanna wake her back up later (and you will), see ssam_controller_resume for the corresponding resume function β€” it's the matching set, they're giving complementary energies fr fr 🫢

πŸ”₯ RETURN

Returns -EINVAL if the controller is currently not in the "started" state. so like, wrong state = she's not hearing it, you get -EINVAL and that's that πŸ’€


🌈 SEE ALSO

the source lives in the kernel file ./drivers/platform/surface/aggregator/controller.c β€” go read it, it ate πŸ‘‘

and here's the whole extended friend group, no cap, every single one:


🌸 okay that's the whole page, mwah πŸ’‹ this came from ./drivers/platform/surface/agg... and it's dated October 2026 β€” so like, future vibes, main character documentation energy ⭐ go put your controller to sleep responsibly, bestie, and remember: notifications first, then suspend. periodt πŸ’…πŸŽ€

πŸ“¦ where this page comes from