dpu_encoder_vblank_callback(9)
π dpu_encoder_vblank_callback(9) β Kernel API Manual π
okay so bestie, welcome to the dpu_encoder_vblank_callback(9) page β yes that's the manual name, it's a whole kernel API manual situation, and honestly? it's giving "small function, big responsibilities." let's get into it β¨
πΈ NAME πΈ
dpu_encoder_vblank_callback β Notify virtual encoder of vblank IRQ reception
like, it literally tells the virtual encoder "hey girl, a vblank IRQ just showed up" π¦
β¨ SYNOPSIS β¨
void dpu_encoder_vblank_callback (struct drm_encoder *drm_enc , struct dpu_encoder_phys *phy_enc );
no cap, that's the whole signature. it returns void β she gives nothing back, she only serves π
π ARGUMENTS π
drm_encβ Pointer to drm encoder structure. that's the DRM-side encoder babe π«Άphy_encβ Pointer to physical encoder. the physical one, the real one, the main character of this duo π
π§ NOTE π§
β οΈ This is called from IRQ handler context. so likeβ¦ behave. interrupt context is NOT the place for a lil nap or a blocking call, iykyk π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c and the whole friend group:
enum dpu_enc_rc_events(9)struct dpu_encoder_virt(9)dpu_encoder_get_drm_fmt(9)dpu_encoder_needs_periph_flush(9)dpu_encoder_is_widebus_enabled(9)dpu_encoder_is_dsc_enabled(9)dpu_encoder_get_crc_values_cnt(9)dpu_encoder_setup_misr(9)dpu_encoder_get_crc(9)dpu_encoder_helper_report_irq_timeout(9)dpu_encoder_helper_wait_for_irq(9)dpu_encoder_get_vsync_count(9)dpu_encoder_get_linecount(9)dpu_encoder_helper_split_config(9)dpu_encoder_use_dsc_merge(9)dpu_encoder_get_dsc_config(9)dpu_encoder_prepare_wb_job(9)dpu_encoder_cleanup_wb_job(9)dpu_encoder_virt_runtime_resume(9)dpu_encoder_underrun_callback(9)dpu_encoder_assign_crtc(9)dpu_encoder_toggle_vblank_for_crtc(9)dpu_encoder_frame_done_callback(9)_dpu_encoder_trigger_flush(9)_dpu_encoder_trigger_start(9)dpu_encoder_helper_trigger_start(9)_dpu_encoder_kickoff_phys(9)dpu_encoder_trigger_kickoff_pending(9)dpu_encoder_vsync_time(9)dpu_encoder_prepare_for_kickoff(9)dpu_encoder_is_valid_for_commit(9)dpu_encoder_start_frame_done_timer(9)dpu_encoder_kickoff(9)dpu_encoder_helper_phys_cleanup(9)dpu_encoder_helper_phys_setup_cdm(9)dpu_encoder_get_clones(9)dpu_encoder_init(9)dpu_encoder_wait_for_commit_done(9)dpu_encoder_wait_for_tx_complete(9)dpu_encoder_get_intf_mode(9)dpu_encoder_helper_get_cwb_mask(9)dpu_encoder_helper_get_dsc(9)
like yes that's a lot of siblings but they're all iconic in their own way, go read them fr fr π
and that's the page bestie!! π source/version is ./drivers/gpu/drm/msm/disp/dpu1, dated October 2026, and it's still filed under dpu_encoder_vblank_callback(9) β slay, eat, no crumbs left π
β¨π¦
π¦ 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