drm_crtc_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ drm_crtc_init(9) β€” the Kernel API Manual, bestie edition πŸŽ€

okay so we're in the Kernel API Manual today and the vibe is legacy. Strap in, this one's a little retro but we're gonna make it make sense. πŸ’…


✨ NAME ✨

drm_crtc_init β€” the Legacy CRTC initialization function. yes, the word legacy is right there in the name, we'll get to that, don't panic 🫢


🌸 SYNOPSIS 🌸

int drm_crtc_init (struct drm_device *dev , struct drm_crtc *crtc ,
       const struct drm_crtc_funcs *funcs );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • dev β€” the DRM device. the whole situation. the parent energy. πŸ‘‘
  • crtc β€” the CRTC object you're about to init, bestie. this is the one getting the glow-up.
  • funcs β€” the callbacks for your brand-new CRTC. the personality pack, if you will. ✨

πŸ’– DESCRIPTION πŸ’–

So what does it do? It initializes a CRTC object, and it hooks you up with a default helper-provided primary plane and no cursor plane. that's it, that's the whole vibe. no cursor. none. zero. πŸ’€

now, the important part β€” and I need you to actually read this β€” it makes some assumptions about hardware limitations that, and I quote the energy here, may not be true for all hardware:

  1. Primary plane cannot be repositioned. 🚫
  2. Primary plane cannot be scaled. 🚫
  3. Primary plane must cover the entire CRTC. 😀
  4. Subpixel positioning is not supported. πŸ™ˆ
  5. The primary plane must always be on if the CRTC is enabled. ⚑

like... those are a lot of assumptions, and not every piece of hardware is gonna sign off on them, y'know? 😭

big note incoming: this is purely a backwards compatibility helper for old drivers. that's its whole job. it's giving "we keep it around for the elders." πŸ§“

Drivers should instead implement their own primary plane. and atomic drivers must do so. not "should", must. periodt. πŸ”₯


⭐ RETURN ⭐

Zero on success, an error code on failure. that's the whole return situation, slay. πŸ’œ


🌈 SEE ALSO 🌈

go read these next, bestie, they're all connected iykyk:


and that's the page!! πŸŽ€ mwah πŸ’‹ this little number lives over in ./drivers/gpu/drm, dated October 2026, and yes it's still filed under drm_crtc_init(9) β€” go forth and initialize responsibly, my love πŸ§šπŸ’–

πŸ“¦ where this page comes from