STRUCT DPU_MDSS_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct dpu_mdss_cfg(9) β€” the MDSS hardware lore drop

okay bestie, welcome to the Kernel API Manual, section 9. this one's a struct page, and ngl it's kind of a big deal β€” it's literally the main catalog data structure representing this HW version πŸ—‚οΈβœ¨


🌸 NAME

struct dpu_mdss_cfg β€” information of MDSS HW. This is the main catalog data structure representing this HW version. Contains dpu's major and minor versions, number of instances, register offsets, capabilities of the all MDSS HW sub-blocks. πŸ’–

so like. it's the whole vibe-check file for one specific hardware revision. everything the driver wants to know about this chip lives in here 🫢


✨ SYNOPSIS

struct dpu_mdss_cfg {
    const struct dpu_mdss_version *mdss_ver;
    const struct dpu_caps *caps;
    const struct dpu_mdp_cfg *mdp;
    u32 ctl_count;
    const struct dpu_ctl_cfg *ctl;
    u32 sspp_count;
    const struct dpu_sspp_cfg *sspp;
    u32 mixer_count;
    const struct dpu_lm_cfg *mixer;
    u32 pingpong_count;
    const struct dpu_pingpong_cfg *pingpong;
    u32 merge_3d_count;
    const struct dpu_merge_3d_cfg *merge_3d;
    u32 dsc_count;
    const struct dpu_dsc_cfg *dsc;
    u32 intf_count;
    const struct dpu_intf_cfg *intf;
    const struct dpu_vbif_cfg *vbif;
    u32 wb_count;
    const struct dpu_wb_cfg *wb;
    const struct dpu_cdm_cfg *cdm;
    u32 ad_count;
    u32 dspp_count;
    const struct dpu_dspp_cfg *dspp;
    u32 cwb_count;
    const struct dpu_cwb_cfg *cwb;
    const struct dpu_perf_cfg *perf;
    const struct dpu_format_extended *dma_formats;
    const struct dpu_format_extended *cursor_formats;
    const struct dpu_format_extended *vig_formats;
};

look at that pattern fr fr β€” *_count u32 next to a const struct ... * pointer, over and over again. it's giving "how many of these do we have, and here's where the table lives" πŸŽ€ the way it just commits to the bit. iconic.


πŸ¦‹ Members

okay so the page has a Members heading, but it doesn't lay out a per-field rundown there β€” the actual descriptions show up in Description below, and only for the three format fields. no cap, that's genuinely all it gives us πŸ™ˆ

🌈 Description

  • dma_formats β€” Supported formats for dma pipe 🌟
  • cursor_formats β€” Supported formats for cursor pipe πŸ–±οΈβœ¨
  • vig_formats β€” Supported formats for vig pipe πŸ’«

those three are the whole description section. short and sweet, and honestly? she said what she said πŸ’…


πŸ‘‘ SEE ALSO

Kernel file ./drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h, plus this whole friend group:

  • struct dpu_scaler_blk(9)
  • struct dpu_pp_blk(9)
  • struct dpu_dsc_blk(9)
  • struct dpu_sspp_v13_rec_blk(9)
  • enum dpu_qos_lut_usage(9)
  • struct dpu_qos_lut_entry(9)
  • struct dpu_qos_lut_tbl(9)
  • struct dpu_rotation_cfg(9)
  • struct dpu_caps(9)
  • struct dpu_sspp_sub_blks(9)
  • struct dpu_lm_sub_blks(9)
  • struct dpu_dspp_sub_blks(9)
  • struct dpu_dsc_sub_blks(9)
  • struct dpu_sspp_cfg(9)
  • struct dpu_lm_cfg(9)
  • struct dpu_dspp_cfg(9)
  • struct dpu_pingpong_cfg(9)
  • struct dpu_merge_3d_cfg(9)
  • struct dpu_dsc_cfg(9)
  • struct dpu_intf_cfg(9)
  • struct dpu_wb_cfg(9)
  • struct dpu_vbif_dynamic_ot_cfg(9)
  • struct dpu_vbif_dynamic_ot_tbl(9)
  • struct dpu_vbif_qos_tbl(9)
  • struct dpu_vbif_cfg(9)
  • struct dpu_cdm_cfg(9)
  • struct dpu_perf_cdp_cfg(9)
  • struct dpu_mdss_version(9)
  • struct dpu_perf_cfg(9)

like genuinely a whole ensemble cast. main character energy all around πŸ‘‘


πŸŽ€ cute little sign-off: this page ships from ./drivers/gpu/drm/msm/disp/dpu1, dated October 2026, and it's filed under struct dpu_mdss_cfg(9). that's the whole manual entry bestie β€” go read the header file, mwah πŸ«ΆπŸ’œ
πŸ“¦ where this page comes from