STRUCT DPU_HW_MDP_OPS(9)
π NAME
struct dpu_hw_mdp_ops β the interface to the MDP TOP Hw driver functions, bestie. This is the Kernel API Manual page for it, and yes we're getting into it π
The one big assumption going in: these functions will be called after clocks are enabled. Like, clocks first, then everything else. No cap. β¨
π¦ SYNOPSIS
struct dpu_hw_mdp_ops {
void (*setup_split_pipe)(struct dpu_hw_mdp *mdp, struct split_pipe_cfg *p);
void (*setup_traffic_shaper)(struct dpu_hw_mdp *mdp, struct traffic_shaper_cfg *cfg);
bool (*setup_clk_force_ctrl)(struct dpu_hw_mdp *mdp, enum dpu_clk_ctrl_type clk_ctrl, bool enable);
void (*get_danger_status)(struct dpu_hw_mdp *mdp, struct dpu_danger_safe_status *status);
void (*setup_vsync_source)(struct dpu_hw_mdp *mdp, struct dpu_vsync_source_cfg *cfg);
void (*get_safe_status)(struct dpu_hw_mdp *mdp, struct dpu_danger_safe_status *status);
void (*dp_phy_intf_sel)(struct dpu_hw_mdp *mdp, enum dpu_dp_phy_sel phys[2]);
void (*intf_audio_select)(struct dpu_hw_mdp *mdp);
};
π Members π
Okay so here's the cast of characters, one function pointer at a time π
setup_split_pipeβ Programs the pipe control registers. β οΈ Heads up: these registers are not double buffered, so this function should be called before timing control enable. Params:mdpis the mdp top context driver,cfgis the upper and lower part of pipe configuration.setup_traffic_shaperβ programs traffic shaper control. Params:mdpis the mdp top context driver,cfgis the traffic shaper configuration. It's giving traffic management realness π¦setup_clk_force_ctrlβ set clock force control. Params:mdpis the mdp top context driver,clk_ctrlis the clock to be controlled,enableis force on enable. Return: if the clock is forced-on by this function. πget_danger_statusβ get danger status. Params:mdpis the mdp top context driver,statusis a Pointer to danger safe status. π danger!setup_vsync_sourceβ setup vsync source configuration details. Params:mdpis the mdp top context driver,cfgis the vsync source selection configuration. π¦get_safe_statusβ get safe status. Params:mdpis the mdp top context driver,statusis a Pointer to danger safe status. yes it takes the same pointer type asget_danger_status, we love consistency πdp_phy_intf_selβ configure intf to phy mapping. Params:mdpis the mdp top context driver,physis the list of phys the DP interfaces should be connected to. And listen β0disables the INTF. Noted. πintf_audio_selectβ select the external interface for audio. Param:mdpis the mdp top context driver. that's it, that's the whole function π§
πΈ SEE ALSO πΈ
Kernel file ./drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.h plus these iconic little structs, go read them too: struct traffic_shaper_cfg(9), struct split_pipe_cfg(9), struct dpu_danger_safe_status(9), struct dpu_vsync_source_cfg(9) π«Ά
Okay that's the whole page bestie, periodt β¨ This was the Kernel API Manual, and it lives over in ./drivers/gpu/drm/msm/disp/dpu1 β dated October 2026, so yes, from the future, main character energy fr fr ππ
π¦ 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