ssam_client_link(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, so this is a page from the Kernel API Manual, section 9 (the kernel API girlies ✨). Its whole personality is "link an arbitrary client device to the controller" β€” and honestly? iconic behaviour. Let's get into it 🫢


✨ SYNOPSIS ✨

int ssam_client_link (struct ssam_controller *c , struct device *client );

πŸŽ€ ARGUMENTS πŸŽ€

  • c β€” the controller you're linking to, bestie. the provider of the whole situation.
  • client β€” the client device. the consumer. the main character of this link πŸ’…

🌸 DESCRIPTION 🌸

So what it does is literally link an arbitrary client device to the controller by creating a device link between them β€” with the client as the consumer and the controller device as the provider. no cap, that's the whole vibe πŸ¦‹

And the reason this exists? It's for non-SSAM devices (or SSAM devices that aren't registered as a child under the controller) to guarantee two things:

  • that the controller is valid for as long as the driver of the client device is bound πŸ”₯
  • and that proper suspend and resume ordering is guaranteed ⭐
πŸ’€ the good news: you do not have to destruct the device link manually. It gets removed automatically once the driver of the client device unbinds. slay, it cleans up after itself. self-care queen 🧚

πŸ’– RETURN πŸ’–

  • zero on success β€” we love a clean win 😭✨
  • -ENODEV if the controller is not ready or is going to be removed soon β€” she's not available, respectfully πŸ™ˆ
  • -ENOMEM if the device link could not be created for other reasons β€” memory said no πŸ“

🌈 SEE ALSO 🌈

Kernel file ./drivers/platform/surface/aggregator/core.c

go read those too, iykyk πŸ‘‘


πŸ’… okay that's the whole page, bestie β€” no notes, she ate. this one came from ./drivers/platform/surface/agg..., dated October 2026, and it's filed under ssam_client_link(9). mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from