COMMON PRIMARY TIMING GENERATOR (CMTG)(9)
πΈ Common Primary Timing Generator (CMTG) πΈ
okay so this is a page from the Kernel API Manual, and bestie, it's about the CMTG β literally the Common Primary Timing Generator β and I promise it's more iconic than the name suggests π
π NAME π
The CMTG β short for Common Primary Timing Generator β is a timing generator that runs in parallel to the transcoders timing generators (TG), and its whole thing is being the synchronization mechanism where the CMTG acts as primary and the transcoder TGs act as secondary to it π₯
β¨ DESCRIPTION β¨
okay so picture this: the CMTG is out here outputting its TG start and frame sync signals to the transcoders that are configured as secondary, and those transcoders use those signals to sync their own timing with the CMTG's. it's giving main character energy with a group chat of secondaries following along π«Ά
the CMTG can be used only with eDP or MIPI command mode, no cap, and it supports the following use cases:
- Dual eDP β the CMTG can be used to keep two eDP TGs in sync when you're on a dual eDP configuration (with or without PSR/PSR2 enabled) π
- Single eDP as secondary β ngl, it's also possible to use a single eDP configuration with the transcoder TG as secondary to the CMTG. that would allow a flow that would not require a modeset on the existing eDP when a new eDP is added for a dual eDP configuration with CMTG. the way that saves you a modesetβ¦ obsessed π
- DC6v β in DC6v, the transcoder might be off but the CMTG keeps running to maintain frame timings π and when exiting DC6v, the transcoder TG then is synced back to the CMTG. iconic behavior, fr fr
okay so heads up π β currently, the driver does not use the CMTG, but we need to make sure that we disable it in case we inherit a display configuration with it enabled. like, don't get caught with someone else's CMTG still running, that's not the vibe π
π¦ SEE ALSO π¦
- Kernel file
./drivers/gpu/drm/i915/display/intel_cmtg.cβ go read it, iykyk π
and that's the whole page, bestie π this cutie lives in ./drivers/gpu/drm/i915/display, dated October 2026, and it's filed under the Kernel API Manual as Common Primary Timing Generator (CMTG)(9) β slay, go sync something πβ
π¦ 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