STRUCT DPU_CRTC(9)
π¦ struct dpu_crtc π¦
okay so bestie, this is the Kernel API Manual entry for struct dpu_crtc β the virtualized CRTC data structure. no cap, it's basically the main-character struct for a virtualized CRTC, and every field is about to get its little moment. π
πΈ NAME πΈ
struct dpu_crtc β virtualized CRTC data structure
β¨ SYNOPSIS β¨
struct dpu_crtc {
struct drm_crtc base;
char name[DPU_CRTC_NAME_SIZE];
struct drm_pending_vblank_event *event;
u32 vsync_count;
u32 vblank_cb_count;
u64 play_count;
ktime_t vblank_cb_time;
bool enabled;
struct list_head feature_list;
struct list_head active_list;
struct list_head dirty_list;
struct list_head ad_dirty;
struct list_head ad_active;
atomic_t frame_pending;
struct dpu_crtc_frame_event frame_events[DPU_CRTC_FRAME_EVENT_SIZE];
struct list_head frame_event_list;
spinlock_t spin_lock;
struct completion frame_done_comp;
spinlock_t event_lock;
struct dpu_core_perf_params cur_perf;
struct dpu_crtc_smmu_state_data smmu_state;
};
π«Ά Members π«Ά
baseβ base drm crtc structure π«Άnameβ ASCII description of this crtceventβ pointer to last received drm vblank event. If there is a pending vblank event, this will be non-null.vsync_countβ running count of received vsync eventsvblank_cb_countβ count of vblank callback since last resetplay_countβ frame count between crtc enable and disablevblank_cb_timeβ ktime at vblank count resetenabledβ whether the DPU CRTC is currently enabled. It's updated in the commit-thread, not at state-swap time (which is earlier), so it's safe to make decisions on during VBLANK on/off work. π«‘feature_listβ list of color processing features supported on a crtcactive_listβ list of color processing features are activedirty_listβ list of color processing features are dirtyad_dirtyβ list containing ad properties that are dirtyad_activeβ list containing ad properties that are activeframe_pendingβ whether or not an update is pendingframe_eventsβ static allocation of in-flight frame eventsframe_event_listβ available frame event listspin_lockβ spin lock for frame event, transaction status, etc...frame_done_compβ for frame_event_done synchronizationevent_lockβ Spinlock around event handling codecur_perfβ current performance committed to clock/bandwidth driver
π SEE ALSO π
go check these besties, iykyk:
- Kernel file
./drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h enum dpu_crtc_client_type(9)enum dpu_crtc_smmu_state(9)enum dpu_crtc_smmu_state_transition_type(9)struct dpu_crtc_smmu_state_data(9)enum dpu_crtc_crc_source(9)struct dpu_crtc_mixer(9)struct dpu_crtc_frame_event(9)struct dpu_crtc_state(9)dpu_crtc_frame_pending(9)dpu_crtc_get_client_type(9)
xoxo, bestie π
β source/version: ./drivers/gpu/drm/msm/disp/dpu1 Β· date: October 2026 π
π¦ 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