drm_crtc_vbl...vblank_timer(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… drm_crtc_vbl...vblank_timer(9)

okay so this is a page from the Kernel API Manual, and bestie, it's a whole little vibe about making a fake vblank out of a timer. yes it's as niche as it sounds and yes it's iconic. πŸŽ€


✨ NAME ✨

drm_crtc_vblank_helper_enable_vblank_timer β€” literally implements struct &drm_crtc_funcs.enable_vblank, that's the whole job 🫢


🌸 SYNOPSIS 🌸

int drm_crtc_vblank_helper_enable_vblank_timer (struct drm_crtc *crtc );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • crtc β€” The CRTC. that's it, that's the argument, she's the main character πŸ’…

πŸ’– DESCRIPTION πŸ’–

okay so picture this: the helper drm_crtc_vblank_helper_enable_vblank_timer implements enable_vblank of struct drm_crtc_helper_funcs, but specifically for CRTCs that require a VBLANK timer β€” like, no hardware vblank to be found, so we're doing it ourselves, no cap ⭐

the way it works: it sets up the timer on the first invocation. once started, that timer expires after the current frame duration β€” and if you wanna know what that number actually is, go look at struct drm_vblank_crtc.framedur_ns, she's holding the receipts πŸ’€

also see struct drm_crtc_helper_funcs.enable_vblank β€” same vibe, that's the callback we're filling in 🌈


πŸ”₯ RETURN πŸ”₯

0 on success, or a negative errno code otherwise 😭 (that's the "something went sideways" branch, we don't love her but she exists)


πŸ‘‘ SEE ALSO πŸ‘‘


that's the whole page bestie, go forth and timer your vblanks 🧚✨

cheers from ./drivers/gpu/drm β€” October 2026, page `drm_crtc_vbl...vblank_timer(9)**, mwah πŸ’‹

πŸ“¦ where this page comes from