__ssam_register_clients(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– __ssam_register_clients(9) πŸ’–

okay so bestie, welcome to the kernel API manual for __ssam_register_clients β€” section 9, the driver/kernel-API girlies. this one's a function, it's got a leading double underscore (so you know it's an internal-ish vibe), and it's about registering client devices under a firmware node. let's get into it 🫢


✨ NAME ✨

__ssam_register_clients β€” register client devices that are defined under the given firmware node as children of the given device. like, literal parenting, but for devices πŸ‘‘


🌸 SYNOPSIS 🌸

int __ssam_register_clients (struct device *parent , struct
ssam_controller *ctrl , struct fwnode_handle *node );

πŸŽ€ ARGUMENTS πŸŽ€

  • parent β€” the parent device, aka the one under which the clients should be registered. it's giving main character who's about to adopt a bunch of children πŸ’…
  • ctrl β€” the controller with which the client should be registered. yes, that's the original wording (singular "client", we don't ask questions, we respect the source fr fr).
  • node β€” the firmware node that's holding the definitions of the devices to be added. it's the ✨list✨ of children basically.

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea: this function registers all the clients that have been defined as children of the given root firmware node as children of the given parent device. every respective child firmware node gets associated with the correspondingly created child device. matching them up like a group chat where everyone actually gets their name right for once 🧚

the given controller gets used to instantiate the new devices. lowkey, see ssam_device_add for the details on that part β€” it's the receipts.

⚠️ important vibe check: generally, you should prefer using either ssam_device_register_clients or ssam_register_clients, because they directly use the firmware node and/or the controller associated with the given device. no cap.

this function is only intended for when different device specifications (e.g. ACPI and firmware nodes) need to be combined β€” which is exactly what happens in the platform hub of the device registry. so like, it's the special-occasion function, not the everyday one πŸ’€


⭐ RETURN ⭐

returns zero on success, nonzero on failure. that's it, that's the whole plot 😭 (zero = slay, nonzero = not slay)


🌈 SEE ALSO 🌈

kernel file ./drivers/platform/surface/aggregator/bus.c β€” go read it, iykyk πŸ“–

like the whole friend group honestly πŸ’œ


also the source path in the footer is truncated in the original as ./drivers/platform/surface/agg... β€” that's where this page comes from πŸ“

and that's the whole page bestie!! sign-off time: this iconic little number lives in the Kernel API Manual, dated October 2026, and it's __ssam_register_clients(9) β€” periodt. go forth and register your clients, you absolute legend πŸ‘‘πŸ’–βœ¨

πŸ“¦ where this page comes from