DMC WAKELOCK SUPPORT(9)
πΈ DMC wakelock support πΈ
okay so bestie, welcome to section 9 of the Kernel API Manual, this is the whole glow-up on DMC wakelocks and honestly it's giving "the display engine finally got boundaries" energy π
β¨ DESCRIPTION β¨
so. a wake lock is the mechanism that makes the display engine exit DC states, so you're actually allowed to program registers that are powered down in those states. that's the whole vibe: no wakelock, no register access, no service π
back in the day (previous projects, iykyk), the display engine just exited DC states automatically whenever it detected programming. cute, but lowkey chaotic. now? software is the main character β it controls the exit by programming the wake lock itself. the way this improves system performance and system interactions?? obsessed. it also fits the flip queue style of programming so much better. π¦
okay but important: wake lock is only required whenDC5,DC6, orDC6vhave been enabled inDC_STATE_EN, and the wake lock mode of operation has been enabled. both. don't skip the vibe check.
the wakelock mechanism in DMC lets the display engine exit DC states explicitly, before programming registers that may be powered down. with earlier hardware this just happened automatically and implicitly the moment the display engine accessed a register β no cap, that's literally how it worked. but with the wakelock implementation, the driver asserts a wakelock in DMC, which forces it to exit the DC state until the wakelock is deasserted. hold it, then release it. periodt. π
you can enable and disable the whole mechanism by writing to the DMC_WAKELOCK_CFG register. and there are also 13 control registers that can be used to hold and release different wakelocks. in the current implementation we only need one wakelock, so only DMC_WAKELOCK1_CTL is used. the other definitions are literally just sitting there for potential future use. saving them for later, as one does. π
π«Ά the compatibility tea
this is available starting with Xe2_LPD (display version 20) as an experimental feature, and on Xe3_LPD (display version 30) as the first display release with official support.
that means we only enable the feature by default on the latter π and using it on the former requires explicitly using the enable_dmc_wl module parameter β you gotta ask for it, bestie, it will not come to you.
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/i915/display/intel_dmc_wl.c
alright bestie that's the whole page, go forth and assert those wakelocks responsibly β¨ this was brought to you by ./drivers/gpu/drm/i915/display, dated October 2026, from the DMC wakelock support(9) era β slay, stay powered, and remember to deassert π§ββοΈπ
π¦ 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