STRUCT DRM_CLIENT_DEV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct drm_client_dev(9) β€” the Kernel API Manual glow-up

okay so bestie, welcome to the Kernel API Manual, and today's main character is struct drm_client_dev β€” literally the DRM client instance itself. this is the one, no cap πŸŽ€


✨ NAME ✨

struct drm_client_dev β€” DRM client instance πŸ¦‹


🌸 SYNOPSIS 🌸

okay here's the whole vibe, verbatim, don't touch it, it's perfect:

struct drm_client_dev {
    struct drm_device *dev;
    const char *name;
    struct list_head list;
    const struct drm_client_funcs *funcs;
    struct drm_file *file;
    struct mutex modeset_mutex;
    struct drm_mode_set *modesets;
    bool suspended;
    bool hotplug_pending;
    bool hotplug_failed;
 };

(that last brace lowkey has its own little indent situation going on. we respect it. we leave it. periodt πŸ’…)


πŸ’– Members πŸ’–

time for the character-by-character compatibility check of every field, iykyk:

  • dev β€” the DRM device. your fave's home base 🏠
  • name β€” the name of the client. yes it has a name, it's iconic, let it have this ✨
  • list β€” the list of all clients of a DRM device, linked into drm_device.clientlist. protected by drm_device.clientlist_mutex β€” so mind the lock, bestie, fr fr πŸ”’
  • funcs β€” the DRM client functions. optional! it's giving "if you know you know" 🫢
  • file β€” the DRM file πŸ“
  • modeset_mutex β€” protects modesets. it's a struct mutex and it's doing the most so nobody touches the modesets at the same time 😀
  • modesets β€” CRTC configurations. that's the whole point right there πŸ’«
  • suspended β€” bool that says the client has been suspended. it's napping. do not disturb πŸ’€
  • hotplug_pending β€” a hotplug event has been received while the client was suspended. try again on resume β€” like when your group chat blows up while you're asleep and you have to scroll back in the morning, except it's hotplug events 🌈
  • hotplug_failed β€” set by client hotplug helpers if the hotplugging failed before. it is usually not tried again β€” so yeah, that ship has sailed, don't come for it πŸ’€
lowkey a warning-ish vibe on those last two: hotplug_pending means retry on resume, but hotplug_failed means nobody's trying that again. keep them straight or things get weird πŸ“

πŸ‘‘ SEE ALSO πŸ‘‘

go read these next, they're all linked in the kernel file ./include/drm/drm_client.h:

literally a whole friend group, go say hi 🧚


and that's the page!! this little beauty lives in ./include/drm, it's from October 2026, and it's titled struct drm_client_dev(9). mwah. slay. go forth and configure your CRTCs responsibly πŸ’œπŸŽ€

πŸ“¦ where this page comes from