san_client_link(9)
π
san_client_link(9) β the <pink>Kernel API Manual</pink> glow-up π
okay so bestie, welcome to san_client_link(9), the little kernel function that makes your client device and the SAN device officially besties π«Ά no cap, this is the whole page, let's get into it.
β¨ NAME β¨
san_client_link β link a client as a consumer</> to the SAN device. that's it, that's the vibe π
πΈ SYNOPSIS πΈ
int san_client_link (struct device *client );
like, you hand it a client and it gives you back an int. simple as π
π¦ ARGUMENTS π¦
clientβ the client device you wanna link. yes, that one. go link it β¨
π DESCRIPTION π
so here's the tea β β this function sets up a device link between the client device you passed in (playing the consumer role) and the SAN device (which is the provider, obviously, main character energy π).
why do you care? because this is literally how you make sure the SAN interface has been set up and will stay set up for as long as the driver of the client device is bound. the way that guarantees that, during that whole window, all dGPU events get received by any registered notifier?? iconic. obsessed. π₯
and the best part? the link is automatically removed once the client device's driver is unbound. no manual cleanup, no messy breakup, it just handles itself πβ¨
π RETURN π
- zero β success, slay, we ate π
-ENXIOβ the SAN interface hasn't been set up yet π like, give it a sec bestie-ENOMEMβ device link creation failed π memory said no
π SEE ALSO π
- Kernel file
./drivers/platform/surface/surface_acpi_notify.cβ go read the source, iykyk π san_dgpu_notifier_register(9)san_dgpu_notifier_unregister(9)
the register/unregister duo, fr fr, go check 'em out π§
π real talk: -ENXIO is not a bug, it's just the SAN interface not being ready yet. don't come for it.
k bye bestie, this page lives in ./drivers/platform/surface and it's dated October 2026 β so like, future vibes only πΈβ¨π¦π
π¦ 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