dpu_encoder...one_callback(9)
πΈ dpu_encoder_frame_done_callback β NAME π
Okay bestie, so this one is literally called dpu_encoder_frame_done_callback, and its whole personality is: "hey virtual encoder, your physical encoder just finished the last request frame, jsyk" β that's the vibe check, notifying the virtual encoder that this phys encoder completes the last request frame. Periodt.
This page is from the Kernel API Manual, and we're living in dpu_encoder...one_callback(9) territory, iykyk. π¦
β¨ SYNOPSIS β¨
void dpu_encoder_frame_done_callback (struct drm_encoder *drm_enc , struct dpu_encoder_phys *ready_phys , u32 event );
No cap, that's the whole signature β copy it exactly, commas and spacing and all, because the compiler is not your bestie and will absolutely not forgive you. π
π ARGUMENTS π
drm_encβ pointer to thedrm encoderstructure π₯οΈ β the DRM-side encoder hangout.ready_physβ pointer to the physical encoder π₯ β the phys one that's ready and out here completing things.eventβ the event to process π β the thing you're actually here to handle.
Three args, three little besties. Slay. π«Ά
π SEE ALSO π
Okay this is the part where the manpage just starts listing everybody in the group chat, and honestly? Iconic. Not me reading all 42 of these. π
- Kernel file
./drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.cπ 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_vblank_callback(9)dpu_encoder_underrun_callback(9)dpu_encoder_assign_crtc(9)dpu_encoder_toggle_vblank_for_crtc(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)
Heads up bestie: the note at the bottom says these all live in ./drivers/gpu/drm/msm/disp/dpu1 β so that's where you go when you inevitably need to read all of them. π§
Anyways, that's the page! It's giving "tiny callback, huge friend group." Go read the neighbors, they're waiting. π
kisses, and remember: the frame isn't done until the callback says it's done π β this was dpu_encoder...one_callback(9) from the Kernel API Manual, sourced from ./drivers/gpu/drm/msm/disp/dpu1, dated October 2026. byeee π
β¨
π¦ 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