STRUCT DC_CRTC(9)
π struct dc_crtc(9) β the kernel API manual, but make it make sense
okay so this is a page from the Kernel API Manual, all about struct dc_crtc. it lives in ./drivers/gpu/drm/imx/dc and it's dated October 2026, bestie. let's get into it π
β¨ NAME β¨
struct dc_crtc β the DC-specific drm_crtc. that's it, that's the vibe. it's the display-controller-side glow-up of a regular drm_crtc π
πΈ SYNOPSIS πΈ
here's the whole struct, verbatim, no cap:
struct dc_crtc {
struct drm_crtc base;
struct dc_de *de;
struct dc_cf *cf_cont;
struct dc_cf *cf_safe;
struct dc_ed *ed_cont;
struct dc_ed *ed_safe;
struct dc_fg *fg;
unsigned int irq_dec_framecomplete;
unsigned int irq_dec_seqcomplete;
unsigned int irq_dec_shdload;
unsigned int irq_ed_cont_shdload;
unsigned int irq_ed_safe_shdload;
struct completion dec_seqcomplete_done;
struct completion dec_shdload_done;
struct completion ed_cont_shdload_done;
struct completion ed_safe_shdload_done;
struct drm_pending_vblank_event *event;
struct dc_crtc_irq irqs[DC_CRTC_IRQS];
};
like, look at her. so many fields. so structured. main character energy fr fr π
π¦ Members π¦
okay let's go field by field, don't skip, every single one matters:
baseβ the basedrm_crtcstructure. the foundation, the roots, the blueprint π«Άdeβ display engine. the whole engine, iconic.cf_contβ the content stream constframe.cf_safeβ the safety stream constframe.ed_contβ the content stream extdst.ed_safeβ the safety stream extdst.fgβ framegen. yes bestie, framegen π«irq_dec_framecompleteβ display engine configuration frame complete interrupt.irq_dec_seqcompleteβ display engine configuration sequence complete interrupt.irq_dec_shdloadβ display engine configuration shadow load interrupt.irq_ed_cont_shdloadβ content stream extdst shadow load interrupt.irq_ed_safe_shdloadβ safety stream extdst shadow load interrupt.dec_seqcomplete_doneβ display engine configuration sequence completion.dec_shdload_doneβ display engine configuration shadow load completion.ed_cont_shdload_doneβ content stream extdst shadow load completion.ed_safe_shdload_doneβ safety stream extdst shadow load completion.eventβ cached pending vblank event. it's been waiting for this moment β¨irqsβ the interrupt list. the whole squad, lowkey π₯
π Description π
so. each display controller contains one content stream and one safety stream. in general, the two streams have the same functionality β twins, basically π―
one stream is overlaid on the other by fg. and this driver makes a very specific choice: it chooses to generate black constant color from the content stream as background color, builds plane(s) on the content stream by using layerblend(s), and always generates a constant color from the safety stream. the way that's a whole design philosophy π
note (and this is the good part): due to the decoupled timing, the safety stream still works to show the constant color properly even when the content stream has completely hung up due to mal-function of this driver. so when everything is on fire, the safety stream is still standing there serving looks. bestie is resilient. π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/imx/dc/dc-kms.h struct dc_plane(9)
and that's the page! π source/version & date tea: this one comes from ./drivers/gpu/drm/imx/dc, dated October 2026. go forth and read your structs, babe, you got this πβ¨πΈ
π¦ 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